理學院數學建模 matlab上機實習_第1頁
理學院數學建模 matlab上機實習_第2頁
理學院數學建模 matlab上機實習_第3頁
理學院數學建模 matlab上機實習_第4頁
理學院數學建模 matlab上機實習_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一、矩陣運算矩陣建立,轉置、加、減、乘、求逆等運算。解:>> a=1 3 9; 2 4 6; 5 7 8a = 1 3 9 2 4 6 5 7 8>> a' ans = 1 2 5 3 4 7 9 6 8>> b = 1 2 3;2 1 2;3 2 1;>> sum = a + bsum = 2 5 12 4 5 8 8 9 9>> devide = a - bdevide = 0 1 6 0 3 4 2 5 7>> mutiply = a * b mutiply = 34 23 18 28 20 20 43 33

2、 37>> qinuni = inv(a)qinuni = 0.4545 -1.7727 0.8182 -0.6364 1.6818 -0.54550.2727 -0.3636 0.0909二、M文件的編寫與運行 例:輸出10003000年的閏年。解:1.建立year.m文件,如下:for year0 = 1000:3000 if mod(year0 , 4) = 0 & mod (year0 , 100) =0 disp(year0); elseif mod (year0 , 4) = 0 & mod (year0 , 400) = 0 disp(year0);

3、else disp(' '); endend2.運行year.m文件,結果為:1004 1008 1012 1016 1020 1024 1028 1032 1036 1040 1044 1048 1052 1056 1060 1064 1068 1072 1076 1080 1084 1088 1092 1096 1104 1108 1112 1116 1120 1124 1128 1132 1136 1140 1144 1148 1152 1156 1160 1164 1168 1172 1176 1180 1184 1188 1192 1196 1200 1204 120

4、8 1212 1216 1220 1224 1228 1232 1236 1240 1244 1248 1252 1256 1260 1264 1268 1272 1276 1280 1284 1288 1292 1296 1304 1308 1312 1316 1320 1324 1328 1332 1336 1340 1344 1348 1352 1356 1360 1364 1368 1372 1376 1380 1384 1388 1392 1396 1404 1408 1412 1416 1420 1424 1428 1432 1436 1440 1444 1448 1452 145

5、6 1460 1464 1468 1472 1476 1480 1484 1488 1492 1496 1504 1508 1512 1516 1520 1524 1528 1532 1536 1540 1544 1548 1552 1556 1560 1564 1568 1572 1576 1580 1584 1588 1592 1596 1600 1604 1608 1612 1616 1620 1624 1628 1632 1636 1640 1644 1648 1652 1656 1660 1664 1668 1672 1676 1680 1684 1688 1692 1696 170

6、4 1708 1712 1716 1720 1724 1728 1732 1736 1740 1744 1748 1752 1756 1760 1764 1768 1772 1776 1780 1784 1788 1792 1796 1804 1808 1812 1816 1820 1824 1828 1832 1836 1840 1844 1848 1852 1856 1860 1864 1868 1872 1876 1880 1884 1888 1892 1896 1904 1908 1912 1916 1920 1924 1928 1932 1936 1940 1944 1948 195

7、2 1956 1960 1964 1968 1972 1976 1980 1984 1988 1992 1996 2000 2004 2008 2012 2016 2020 2024 2028 2032 2036 2040 2044 2048 2052 2056 2060 2064 2068 2072 2076 2080 2084 2088 2092 2096 2104 2108 2112 2116 2120 2124 2128 2132 2136 2140 2144 2148 2152 2156 2160 2164 2168 2172 2176 2180 2184 2188 2192 219

8、6 2204 2208 2212 2216 2220 2224 2228 2232 2236 2240 2244 2248 2252 2256 2260 2264 2268 2272 2276 2280 2284 2288 2292 2296 2304 2308 2312 2316 2320 2324 2328 2332 2336 2340 2344 2348 2352 2356 2360 2364 2368 2372 2376 2380 2384 2388 2392 2396 2400 2404 2408 2412 2416 2420 2424 2428 2432 2436 2440 244

9、4 2448 2452 2456 2460 2464 2468 2472 2476 2480 2484 2488 2492 2496 2504 2508 2512 2516 2520 2524 2528 2532 2536 2540 2544 2548 2552 2556 2560 2564 2568 2572 2576 2580 2584 2588 2592 2596 2604 2608 2612 2616 2620 2624 2628 2632 2636 2640 2644 2648 2652 2656 2660 2664 2668 2672 2676 2680 2684 2688 269

10、2 2696 2704 2708 2712 2716 2720 2724 2728 2732 2736 2740 2744 2748 2752 2756 2760 2764 2768 2772 2776 2780 2784 2788 2792 2796 2800 2804 2808 2812 2816 2820 2824 2828 2832 2836 2840 2844 2848 2852 2856 2860 2864 2868 2872 2876 2880 2884 2888 2892 2896 2904 2908 2912 2916 2920 2924 2928 2932 2936 294

11、0 2944 2948 2952 2956 2960 2964 2968 2972 2976 2980 2984 2988 2992 2996三、數據文件的建立與讀取例:建立班級一門課成績數據庫,編程讀取并排序、另存。解:(1) 建立scores.dat的空文件然后在主窗口中輸入如下:其中將成績存放在數組score中>> score=96,89,86,68,46,87,65,55,76,78,70;>>%將成績寫入到scores.dat的文件中>> Fid=fopen('scores.dat', 'w');>> c

12、nt=fwrite(Fid, score, 'float');>> fclose(Fid);>>%從scores.dat的文件中讀取成績>> Fid=fopen('scores.dat', 'r');>> B,cnt=fread(Fid, 'float');>> B%從文件中讀取的數據結果:B=96 89 86 68 46 87 65 55 76 78 70>> sortScore=sort(B,1)%排序%排序后的結果:sortScore= 46 55 65

13、 68 70 76 78 87 89 92 96 四、繪二維、三維圖 例:畫雙紐線,螺線,球面。1. 二維(1) 繪制曲線 程序如下:>> t = -pi:pi/100:pi;>> x = t.*cos(3*t);>> y = t.*sin(t).*sin(t);>> plot(x,y)結果如下: (2)繪制正弦和余弦曲線程序如下:>> x=linspace(0,2*pi,100);>> y=sin(x);cos(x);>> plot(x,y)>> 結果如下:2. .三維 (1)螺旋線程序如下:&g

14、t;> t = 0 : 0.01 : 27 ;>> x = sin(t);>> y = cos(t);>> z = t;>> plot3(x,y,z)結果如下: (2)球面程序如下:>> a=input('please input the centure a: ')>>b=input('please input the centure b: ')>>c=input('please input the centure c: ')>>r=input(

15、'please input the radius:')>>x,y,z=sphere(30);>>x=x*r+a;>>y=y*r+b;>>z=z*r+c;>>mesh(X,Y,Z)結果如下:五、多項式運算例:多項式運算求值、求根。1.多項式運算建立ployadd.m文件,如下:functionpoly=polyadd(poly1,poly2)if length(poly1)<length(poly2)short=poly1;long=poly2;elseshort=poly2;long=poly1;endmz=le

16、ngth(long)-length(short);if mz>0poly=zeros(1,mz),short+long;elsepoly=long+short;end(1)在命令行里輸入>> a=1,2,3,4;>> b=1,4,7,9;>> c=polyadd(a,b)結果(多項式相加)如下:c = 2 6 10 13(2)在命令行里輸入>> a = 1,3,5,4;>> b = 2,3,4,6;>> c = conv(a,b)結果(多項式相乘)如下:c = 2 9 23 41 50 46 24(3)在命令行里輸入

17、>> x,y = deconv(a,b)結果(多項式相除,除數為x,余數為y)如下:x = 0.5000y = 0 1.5000 3.0000 1.00002.多項式求值程序及結果如下:>> p = 1,2,-1,4;>> x = 2;>> polyval(p,x)ans = 183.多項式求根程序及結果如下:>> p = 3,-1,1,5;>> x = roots(p)x = 0.6667 + 1.1055i 0.6667 - 1.1055i -1.0000 六、曲線擬合例:數據的多項式擬合。解: x=0 30 60 9

18、0 120 150 180 210 240 270 300 330 360 y=-0.0167 -1.0927 -1.8725 -2.3586 -2.3061 -1.9576 -0.9574 -0.0080 0.8896 1.3877 1.1139 0.8517 -0.0167通過y=-0.52-1.90sin(2t/360-0.079)進行二次多項式擬合程序如下:>> x=0 30 60 90 120 150 180 210 240 270 300 330 360;>> y=-0.0167 -1.0927 -1.8725 -2.3586 -2.3061 -1.9576

19、 -0.9574 -0.0080 0.8896 1.3877 1.1139 0.8517 -0.0167;>> fun=(a,t) a(1)+a(2)*sind(t+a(3) >> a0=-0.5 -1.9 -0.079;>>a=nlinfit(x,y,fun,a0)>> t=0:5:360;>> yf=fun(a,t);>> plot(x,y,'*',t,yf)結果如下:七、線性規(guī)劃例:線性規(guī)劃求解(如教材中)。求解下列線性規(guī)劃問題 程序如下:>> c=2;3;-5;>> a=-2

20、,5,-1;>> b=-10;>> Aeq=1,1,1;>> beq=7;>> x=linprog(-c,a,b,Aeq,beq,zeros(3,1)>> value=c'*x結果如下:x = 6.4286 0.5714 0.0000value = 14.5714八、微分方程數值解例:常微分方程數值解。利用:dsolve(方程1, 方程2,方程n, 初始條件, 自變量)用于求常微分方程的通解或特解例:求解方程 的通解。程序如下:>>u=dsolve('Du=1+u2','t')結果如

21、下:u=tan(C3 + t)九、插值問題例:樣條插值。例:由可計算出一些稀疏的網格數據,對整個函數曲面進行插值模擬,并比較插值效果。(1) 已知數據網格程序如下:x,y=meshgrid(-3:0.6:3,-2:0.4:2);z=(x.2-2*x).*exp(-x.2-y.2-x.*y);surf(x,y,z);axis(-3,3,-2,2,-0.7,1.5);結果如下:(2) 線性插值算法程序如下:x,y=meshgrid(-3:0.6:3,-2:0.4:2);z=(x.2-2*x).*exp(-x.2-y.2-x.*y);surf(x,y,z);axis(-3,3,-2,2,-0.7,1

22、.5);x1,y1=meshgrid(-3:0.2:3,-2:0.2:2);z1=interp2(x,y,z,x1,y1);surf(x1,y1,z1);axis(-3,3,-2,2,-0.7,1.5);結果如下:(3) 樣條插值算法程序如下:x,y=meshgrid(-3:0.6:3,-2:0.4:2);z=(x.2-2*x).*exp(-x.2-y.2-x.*y);surf(x,y,z);axis(-3,3,-2,2,-0.7,1.5);x1,y1=meshgrid(-3:0.2:3,-2:0.2:2);z1=interp2(x,y,z,x1,y1);surf(x1,y1,z1);axis

23、(-3,3,-2,2,-0.7,1.5);z2=interp2(x,y,z,x1,y1,'cubic');surf(x1,y1,z2);axis(-3,3,-2,2,-0.7,1.5);figure;z3=interp2(x,y,x1,y1,'spline');surf(x1,y1,z3);axis(-3,3,-2,2,-0.7,1.5);結果如下:十、綜合練習:計算機模擬1、正方形ABCD的四個頂點各有一人.在某一時刻,四人同時出發(fā)以勻速v=1米/秒按順時針方向追逐下一人,如果他們始終保持對準目標,則最終按螺旋狀曲線于中心點O.試求出這種情況下每個人的行進軌跡. (

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論