MATLAB在數學建模中的應用
阿新 • • 發佈:2018-08-14
整數規劃 ... .net 6.4 2.4 down 課本 sdn 曲線
1)p23 eg2.2
接下來的三周都會研讀《MATLAB在數學建模中的應用》這本書,在此把敲過的課本習題代碼,以及更詳細的代碼註釋Po出。
插值與擬合
1)指定函數的擬合
1 x1=[0 0.4 1.2 2 2.8 3.6 4.4 5.2 6 7.2 8 9.2 10.4 ... 2 11.6 12.4 13.6 14.4 15]; 3 x=x1.‘; 4 y1=[1 0.85 0.29 -0.27 -0.53 -0.4 -0.12 0.17 ... 5 0.28 0.15 -0.03 -0.15 -0.071 0.059... 6 0.08 0.032 -0.015 -0.032]; 7 y=y1.‘; 8 plot(x,y,‘r*‘); 9 syms t %定義一個符號t 10 f=fittype(‘a*cos(k*t)*exp(w*t)‘,‘independent‘,‘t‘,‘coefficients‘,{‘a‘,‘k‘,‘w‘} ); 11 %f為用戶自定義的函數,independent代表T為獨立變量,AKW為系數。此函數的目的為清晰定義出何為未知數,何為普通參數。 12 cfun=fit(x,y,f); 13 %fit()函數為擬合函數,給出一組測量數據+自定義的擬合函數即可擬合成一條擬合曲線 14 xi=0:0.1:20; 15 yi=cfun(xi);16 plot(x,y,‘r*‘,xi,yi,‘b-‘);
2)二維插值
1 [x,y]=meshgrid(1:10);%測量值構成的網絡 2 h=[100個數據]; 3 [xi,yi]=meshgrid(1:.1:10);%插值構成的網絡 4 hi=interp2=(x,y,h,xi,yi,‘spline‘); 5 %x,y,h+interp2內部隱藏的算法=插值之後的網絡三維圖 6 %xi,yi為一組插值的(x,y),返回其對應的Z值 7 surf(hi); 8 xlable(‘x‘),ylable(‘y‘),zlable(‘h‘);
線性規劃與非線性規劃和整數規劃
1 c=[2;3;1]; 2 a=[1 4 2;3 2 0]; 3 b=[8;6]; 4 l=[0;0;0];%zeros(3,1) 5 [x,y]=linprog(c,-a,-b,[],[],l) 6 x = 7 8 0.8066 9 1.7900 10 0.0166 11 12 13 y = 14 15 7.0000
2)p23 eg2.3
1 c=[-5;-4;-6]; 2 a=[1 -1 1;3 2 4;3 2 0]; 3 b=[20;42;30]; 4 l=[0;0;0];%zeros(3,1) 5 [x,y]=linprog(c,a,b,[],[],l) 6 x = 7 8 0.0000 9 15.0000 10 3.0000 11 12 13 y = 14 15 -78.0000
3)p24 eg2.4
1 c=[2;3;-5]; 2 a=[2 -5 1]; 3 b=-10; 4 l=[0;0;0];%zeros(3,1) 5 aeq=[1 1 1];%為何這是行向量 6 beq=7; 7 [x,y]=linprog(-c,-a,b,aeq,beq,l) 8 9 10 11 x = 12 13 6.4286 14 0.5714 15 0.0000 16 17 18 y = 19 20 -14.5714
4)p24 eg2.5
1 c=[170.858;-17.725;41.258;2.218;131.818;-500000]; 2 a=[1 -0.17 -0.532 0 1 0; 3 0 0.17 0.532 0 0 0; 4 1 0.32 1 0 0 0; 5 0 1 0 0 0 0; 6 0 0 1 1 0 0; 7 0 0 0 -1 -1 0]; 8 b=[0;888115;166805;521265.625;683400;-660000]; 9 aeq=[0 0 0 0 0 1]; 10 beq=1; 11 l=zeros(6,1); 12 [x,y]=linprog(-c,a,b,aeq,beq,l) 13 14 15 16 17 x = 18 19 1.0e+05 * 20 21 0.0000 22 1.7096 23 1.1210 24 5.7130 25 0.8870 26 0.0000 27 28 29 y = 30 31 -1.4054e+07
MATLAB在數學建模中的應用