当前位置:文档之家› 哈工大MATLAB选修课小作业2

哈工大MATLAB选修课小作业2


(1) 建立函数: function yp=fun2(t,y) %建立相应的函数 yp=-(1.2+sin(10.*t)).*y; end 再在命令窗口输入: [t,y]=ode23('fun2',[0,5],1); [t,y] 得倒最后的结果为: ans = 0 1 1/15 384/425 254/1847 801/1024 265/1323 305/447 176/653 873/1459 675/1913 598/1107 2197/5037 1212/2339 1075/2136 529/1036 363/641 523/1051 1717/2696 643/1381 1086/1571 577/1348 173/232 494/1285 3277/4055 463/1380 921/1054 588/2003 773/806 404/1557 1597/1554 767/3106 649/592 453/1871 8736/7531 902/3787 1205/984 117/511 972/743 83/404 5579/4068 267/1468 1548/1079 197/1243
K2=polyder(P,Q); [p,q]=polyder(P,Q); p=poly2str(p,'x'); q=poly2str(q,'x'); D1=poly2str(K1,'x'); D2=poly2str(K2,'x'); D3=poly2str([p,q],'x') 运行的结果如下:
D1 = 8 x^3 - 9 x^2 + 5 D2 = 12 x^5 + 35 x^4 + 4 x^3 - 57 x^2 + 76 x + 105 D3 = x^82 + x^81 + x^80 + 4 x^79 + x^78 + x x^77 + ^ x^76 + 5 x^75 + x^74 + + x^73 + x^72 + 2 x^71 + 7 x^70 + x^69 + x x^68 + ^ x^67 + 4 x^66 + x^65 + + x^64 + x^63 + 3 x^62 + 4 x^61 + x^60 + x x^59 + ^ x^58 + 3 x^57 + x^56 + - x^55 + x^54+ 7 x^53 + 7 x^52 + x^51 + x x^50 + ^ x^49 + 2 x^48 + x^47 + - x^46 + x^45 + 2 x^44 + 6 x^43 + x^42 + x x^41 + x^40+ - x^39 + x^38 + 2 x^37 + 5 x^36 + x^35 + x^34 + x^33+ x x^32 + ^ x^31 + 4 x^30 + x^29 + + x^28 + x^27 + 1 x^26+ 0 x^25 + x^24 + x x^23 + ^ x^22 + 3 x^21 + x^20 + + x^19 + x^18 + 4 x^17 + 1 x^16 + x^15 + x x^14 + ^ x^13 + 2 x^12+ x^11 + + x^10 + x^9 + 8 x^8 + 0 x^7 + x^6 + x x^5 + x^4 + x^3 + x^2 + 6 x + 4
(2)M文件如下: function q=t(p) x=p(1); y=p(2); z=p(3); q(1)=sin(x)+y^2+log(z)-7; q(2)=3*x+2.^y-z^3+1; q(3)=x+y+z-5; end 再输入: x=fsolve('t',[1,1,1]',optimset('Display','off')) 运行结果如下: x=fsolve('t',[1,1,1]',optimset('Display','off')) x= 1013/1691 1531/639 1999/997
title('最近点法') subplot(1,3,2); y2=interp1(x,y,xx); plot(x,y,'-*',xx,yy,'rx'); title('线性法'); subplot(1,3,3); y3=interp1(x,y,xx,'spline'); plot(x,y,'-*',xx,y3,'xr'); title('3次样条法');
legend('描点显示','五次拟合')
2. 采用最近点法、线性法和3 次样条法插值计算1-100 整数间 平方根
n 1 4 9 16 25 36 49 64 81 100 Sqtr(n)1 2 3 4 5 6 7 8 9 10 解:程序如下:
x=[1,4,9,16,25,36,49,64,81,100];y=x.^0.5; xx=0:100; subplot(1,3,1); y1=interp1(x,y,xx,'nearest'); plot(x,y,'-*',xx,y2,'xr');
Байду номын сангаас
解:分别对应的程序如下: Sin x函数和tan x函数: x1= pi*(0:90)/180; y1 = sin(x1); xx1 = pi*(0:.25:90)/180; x2 = pi*(0:75)/180; y2 = tan(x2); xx2 = pi*(0:.25:75)/180; yy2 = spline(x2,y2,xx2); yy1 = spline(x1,y1,xx1); plot(x1,y1,'mo',xx1,yy1,x2,y2,'ro',xx2,yy2);
6. 求解超定方程组,采用采用左除法、求逆法和最小二乘法
2x-4y+10z=22 6x+5y-4z=32
5x-y+33z=10 x+4y-76z=33
对应的程序如下: A=[2,-4,10;6,5,-4;5,-1,33;1,4,-76]; b=[22;32;10;33]; X1=A\b;%左除法 X2=pinv(A)*b;%求逆法 X3=lsqnonneg(A,b);%最小二乘法 [X1 X2 X3] 运行的结果如下: ans = 5340/851 -333/136 -1103/2144 5340/851 1410/331 -333/136 2035/1129 -1103/2144 0
10403/6935 514/3707 1082/683 239/1951 1253/758 1818/15625 842/489 251/2202 2984/1671 303/2701 864/467 1346/12463 3035/1571 121/1242 848/425 271/3137 1929/937 267/3547 1306/615 505/7671 419/190 147/2530 14989/6590 181/3295 75/32 629/11712 2396/995 253/4783 220/89 180/3523 1553/609 132/2833 1605/614 103/2484 1347/503 71/1965 1604/585 589/18652 1841/653 144/5177 1066/367 241/9332 659/222 213/8422 2535/836 211/8466 1517/490 141/5845 682/215 187/8447 2204/681 269/13622 1789/542 47/2731 3011/895 143/9511 1479/430 83/6274 1671/473 47/3867 6578/1829 58/4873 948/259 151/12873 1672/449 623/54863 4632/1219 127/12180 313/81 63/6772 20291/5165 147/18131 1002/251 136/19201
1. 表1 用三次样条方法插值计算0-90 度内整数点的sin 值和0-75 度内整数点的 正切值,然后用5 次多项式拟合方法计算相同的函数。
a(度) 0 15 30 45 60 75 90 Sin(a) 0 0.2588 0.5000 0.7071 0.8660 0.9659 1.0000 tan(a) 0 0.2679 0.5774 1.0000 1.7320 3.732
程序如下: X1=fzero('x^41+x^3+1',-1); X2=fzero('x-sin(x)./x',0.5); X3=fzero('3*x+sin(x)-exp(x)',1.5); [X1 X2 X3] 结果如下: ans = -441/463 889/1014 1289/682
相关主题