哈工大MATLAB选修课第2次小作业.docx
- 文档编号:5998482
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:14
- 大小:433.85KB
哈工大MATLAB选修课第2次小作业.docx
《哈工大MATLAB选修课第2次小作业.docx》由会员分享,可在线阅读,更多相关《哈工大MATLAB选修课第2次小作业.docx(14页珍藏版)》请在冰豆网上搜索。
哈工大MATLAB选修课第2次小作业
1.表1用三次样条方法插值计算0-90度内整数点的sin值和0-75度内整数点的正切值,然后用5次多项式拟合方法计算相同的函数。
a(度)0153045607590
Sin(a)00.25880.50000.70710.86600.96591.0000
tan(a)00.26790.57741.00001.73203.732
解:
分别对应的程序如下:
正弦函数:
x=pi*(0:
90)/180;
y=sin(x);
xx=pi*(0:
.25:
90)/180;
yy=spline(x,y,xx);
plot(x,y,'o',xx,yy)
正切函数:
x=pi*(0:
75)/180;
y=tan(x);
xx=pi*(0:
.25:
75)/180;
yy=spline(x,y,xx);
plot(x,y,'o',xx,yy)
正弦拟合:
figure
x=pi*(0:
15:
90)/180;
y=[0,0.2588,0.5,0.7071,0.866,0.9659,1.0];
xx=pi*(1:
0.05:
90)/180;
p2=polyfit(x,y,5);
yy=polyval(p2,xx);
plot(x,y,'-ro',xx,yy);
正切拟合:
figure
x=pi*(0:
15:
75)/180;
y=[0,0.2679,0.5774,1,1.732,3.732];
xx=pi*(1:
0.05:
75)/180;
p2=polyfit(x,y,5);
yy=polyval(p2,xx);
plot(x,y,'-ro',xx,yy);
legend('描点显示','五次拟合')
2.采用最近点法、线性法和3次样条法插值计算1-100整数间平方根
n149162536496481100
Sqtr(n)12345678910
解:
程序如下:
x=[1,4,9,16,25,36,49,64,81,100];
y=[1,2,3,4,5,6,7,8,9,10];
xx=1:
100;
yy=interp1(x,y,xx)
subplot(2,2,1)
plot(x,y,'-ro',xx,yy,'dr');
title('线性法');
subplot(2,2,2);
y2=interp1(x,y,xx,'nearest');
plot(x,y,'-ro',xx,y2,'dr');
title('最近点法')
subplot(2,2,3);
y3=interp1(x,y,xx,'spline');
plot(x,y,'-ro',xx,y3,'dr');
title('3次样条法')
仿真的结果:
3.已知p(x)=2x^4-3x^3+5x+13,求p(x)的全部根,由方程p(x)=0的根构造
一个多项式f(x),并和p(x)比较。
解:
程序如下:
P=[2,-3,0,5,13];
Y=poly2str(P,'X');
K=roots(P);
L=poly(K);
F=poly2str(L,'x');
原函数Y,运行后得到根K,用根构造的函数F为如下:
4.有两个多项式p(x)=2x^4-3x^3+5x+13;q(x)=x^2+5x+8,求p(x),p(x)q(x)和
p(x)/q(x)的导数。
解:
对应的程序如下:
P=[2,-3,0,5,13];
Q=[1,5,8];
formatrat
K1=polyder(P);
K2=polyder(P,Q);
[p,q]=polyder(P,Q);
Dzi=poly2str(p,'x');
Dmu=poly2str(q,'x');
D1=poly2str(K1,'x');
D2=poly2str(K2,'x');
Dzi为P/Q导数的分子,Dmu为P/Q导数的分母;
D1为P的导数,D2为P*Q的导数,运行的结果如下:
5.求解恰定方程组,采用左除法、求逆法、lu和qr分解法
2x+3y+5z=10
3x+7y+4z=3
x-7y+z=5
程序如下:
A=[2,3,5;3,7,4;1,-7,1];
b=[10;3;5];
det(A);
rank(A);
x=A\b;;
Xx=inv(A)*b;
[L,U]=lu(A);
[Q,R]=qr(A);
X=U\(L\b);
X1=R\(Q\b);
相应的仿真的结果如下:
x代表左除法,Xx代表求逆法,X表示LU法,X1表示QR分解法:
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];
x=A\b;
Xx=pinv(A)*b;
X1=lsqnonneg(A,b);
运行的结果如下:
程序如下:
z1=fzero('x^41+x^3+1',-1);
z2=fzero('x-sin(x)./x',0.5);
z3=fzero('3*x+sin(x)-exp(x)',1.5);
结果如下:
(1)的函数为
functionq=myfun(p)
x=p
(1);
y=p
(2);
q
(1)=x^2+y^2-9;
q
(2)=x+y-1;
再输入:
x=fsolve('myfun',[3,0]',optimset('Display','off'))
显示的结果如下:
(2)的函数如下:
functionq=fun1(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('fun1',[1,1,1]',optimset('Display','off'))
显示的结果如下:
(1)建立函数:
functionyp=fun2(t,y)%建立相应的函数
yp=-(1.2+sin(10*t))*y;
end
再在命令窗口输入:
t0=0;
tf=5;
y0=1;
[t,y]=ode23('fun2',[t0,tf],y0);%求数值解
[t,y]
得倒最后的结果为:
最终t=5,y=0.0025
(2)
函数如下:
functiondy=zzd(t,y)
dy=zeros(2,1);
dy
(1)=dy
(2);
dy
(2)=(2-2.*t.*dy
(1)-3.*y
(1))./(1+t.^2);
end
再在命令窗口输入:
[t,y]=ode23(@zzd,[05],[01]),[t,y]
显示的结果为:
(1)
函数:
functionf=fe(x)
f=1./((x-0.3)^2+0.01)-1./((x-0.9)^2+0.04)-6;
End
再输入:
K=quad('fe',0,1)
得到如下结果:
(2)
函数为:
functionf=fsk(t)%创建一个新函数
f=sqrt(cos(t.*t)+4*sin((2.*t).^2)+1);%函数的表达式
End
再输入:
L=quad('fsk',0,2*pi);
得到如下结果:
(1)函数如下:
functionf=fxy(x,y)
globalki;
ki=ki+1;%ki用于统计被积函数的调用次数
f=exp(-(x.^2+y.^2));
end
再输入:
globalki;
ki=0;
I=dblquad('fxy',0,1,0,1)
显示的结果就为该积分:
(2)函数为:
functionf=fzz(x,y)
globalki;
ki=ki+1;%ki用于统计被积函数的调用次数
f=cos(x+y);
end
再输入:
globalki;
ki=0;
I=dblquad('fzz',0,pi,0,pi)
ki
得到的显示的积分结果为:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈工大 MATLAB 选修课 作业