matlab作业.docx
《matlab作业.docx》由会员分享,可在线阅读,更多相关《matlab作业.docx(21页珍藏版)》请在冰豆网上搜索。
matlab作业
《MATLAB及其应用》上机作业
学院名称:
专业班级:
学生姓名:
学生学号:
20**年**月**日
作业1
1.用MATLAB可以识别的格式输入下面两个矩阵
再求出它们的乘积矩阵
并将
矩阵的右下角
子矩阵赋给
矩阵。
赋值完成后,调用相应的命令查看MATLAB工作空间的占有情况。
解:
A=[1234;2357;1357;3239;1894];
B=[1+4i43677;233554+2i;26+7i5342;189543];
C=A*B
D=C(4:
5,4:
6);
whos;
运行结果:
C=
1.0e+002*
Columns1through5
0.1500+0.0400i0.6000+0.2100i0.60000.45000.4500
0.2500+0.0800i1.0300+0.3500i1.03000.77000.7700
0.2400+0.0400i0.9900+0.3500i1.00000.71000.7000
0.2200+0.1200i1.0800+0.2100i1.11000.82000.7900
0.3900+0.0400i1.1400+0.6300i1.08000.93000.9900
Column6
0.3300+0.0400i
0.5700+0.0600i
0.5000+0.0600i
0.6200+0.0400i
0.6900+0.1600i
D=
82.000079.000062.0000+4.0000i
93.000099.000069.0000+16.0000i
NameSizeBytesClass
A5x4160doublearray
B4x6384doublearray(complex)
C5x6480doublearray(complex)
D2x396doublearray(complex)
Grandtotalis80elementsusing1120bytes
2.设矩阵
求
并求矩阵
的特征值和特征向量。
解:
A=[162313;511108;97612;414152];
a=norm(A)
B=inv(A)
C=A^3
D=2*A+inv(A)
E=3*inv(A)-A
G=eig(A)
[V,D]=eig(A)
运行结果:
a=34.2545
B=
1.02942.9338-2.9044-1.0000
2.55888.4926-7.9338-3.0000
-2.5294-8.30887.77943.0000
-1.0000-3.00003.00001.0000
C=
104789488958110485
9578101381006610083
99149874980610387
974710575106339921
D=
33.02946.93383.095625.0000
12.558830.492612.066213.0000
15.47065.691219.779427.0000
7.000025.000033.00005.0000
E=
-12.91183.8015-17.7132-7.0000
5.676514.4779-30.8015-23.0000
-10.5882-34.926517.3382-6.0000
-16.0000-17.0000-3.00001.0000
G=
34.2542
8.8722
-8.1811
0.0547
V=
-0.4981-0.82710.3813-0.2390
-0.49590.40750.0097-0.6708
-0.49750.01740.44080.6581
-0.50840.3868-0.81250.2445
D=
34.2542000
08.872200
00-8.18110
0000.0547
3.解下列矩阵方程:
解:
A=[010;100;001;];
B=[100;001;010;];
C=[1-43;20-1;1-20;];
X=inv(A)*C*inv(B)
运行结果:
X=
01.00000
1.0000-0.00000
-0.0000-0.00001.0000
4.一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。
求它在第10次落地时,共经过多少米?
第10次反弹有多高?
解:
sum=100;
i=0;
while(i<=9)
i=i+1;
h=100/2^i
sum=sum+2*h
end
结果
299.9023
0.0977
5.用MATLAB语言实现下面的分段函数
解:
clear;
x=input('x=')
a1=0;
a2=0;
a3=0;
ifx>10
a1=5
elseifabs(x)<=10
a2=(1/2)*x
else
a3=-5
end
end
运行结果:
x=15
a1=5
x=-15
a3=-5
x=8
a2=4
6.分别用for和while循环编写程序,求出
并考虑一种避免循环的简洁方法来进行求和,并比较各种算法的运行时间。
解:
%while循环
i=1;
sum=0;
while(i<=63)
sum=sum+(2^i);
i=i+1;
end
sum
运行结果:
sum=1.8447e+019
%for循环
sum=0
fori=1:
1:
63
sun=sum+(2^i)
i=i+1
end
sum
运行结果:
sum=1.8447e+019
7.应用MATLAB语言及二分法编写求解一元方程
在区间[3,6]的实数解的算法,要求绝对误差不超过0.001。
解:
A=[1-1459-70];
a=3;
b=6;
c=0.001;
whilec<0.5*(b-a),x1=(a+b)/2;
f1=polyval(A,x1);
fa=polyval(A,a);
fb=polyval(A,b);
iff1==0;x=x1;
elseiff1*fa>0;
a=x1;
elsef1*fb>0;
b=x1;
end
end
8.二阶系统的单位阶跃响应为
,在同一平面绘制
分别为0,0.3,0.5,0.707的单位阶跃响应曲线。
要求:
(1)
(1)四条曲线的颜色分别为蓝、绿、红、黄,线型分别为“——”、“……”、“oooooo”、“++++++”;
(2)添加横坐标轴和纵坐标轴名分别为“时间t”和“响应y”,并在平面图上添加标题“二阶系统曲线”和网格;
(3)在右上角添加图例(即用对应的字符串区分图形上的线),并分别在对应的响应曲线的第一个峰值处标示“zeta=0”、“zeta=0.3”、“zeta=0.5”、“zeta=0.707”。
解:
t=[0:
0.1:
10];
kos=0;
y=1-1/sqrt(1-kos^2)*exp(-kos*t).*sin(sqrt(1-kos^2)*t+2*cos(kos));
plot(t,y,'b-')
holdon;
kos=0.3;
y=1-1/sqrt(1-kos^2)*exp(-kos*t).*sin(sqrt(1-kos^2)*t+2*cos(kos));
plot(t,y,'g.')
holdon;
xlabel('时间t');
ylabel('响应y');
gridon;
title('二阶系统曲线');
legend('kos=0','kos=0.3')
gtext('kos=0')
gtext('kos=0.3')
9.绘制如下图所示的图形,把图形窗口分割为2行2列,窗口左上角画一正弦曲线
;窗口右上角画3条单边指数曲线
;窗口左下角画一矩形脉冲信号,脉冲宽度为1,高为2,开始时间为1;窗口右下角画一单位圆。
t=0:
0.01:
2;
subplot(2,2,1);plot(t,sin(2*pi*t));title('plot(x,2*PI*t)');gridon;
subplot(2,2,2);
plot(t,exp(-t));holdon;
plot(t,exp(-2*t),'g');holdon;
plot(t,exp(-3*t),'r');holdon;
title('exp(-t),exp(-2*t),exp(-3*t)');gridon;
x=[0112234];
y=[0022000];
subplot(2,2,3);
plot(x,y);
axis([04-0.53]);
title('pulsesignal');
symsxy
subplot(2,2,4);
ezplot(x^2+y^2-1);
axis([-1.51.5-1.21.2]);
title('circle');
xlabel('')
ylabel('')
10.已知函数
,试分别应用三维曲线图绘制命令plot3、三维网线图绘制命令mesh、三维曲面图绘制命令surf在同一窗口中绘制出3个子图。
x=-2:
0.1:
2;
[X,Y]=meshgrid(x);
Z=1./sqrt((1-X).^2+Y.^2)+1./sqrt((1+X).^2+Y.^2);
subplot(311);
plot3(X,Y,Z);
gridon;
axis([-11-11-19]);
subplot(312);
mesh(X,Y,Z);
axis([-11-11-19]);
subplot(313);
surf(X,Y,Z);
axis([-11-11-19]);
11.对合适的
范围选取分别绘制出下列极坐标图形:
(1)
(2)
clc
theta=0:
0.01:
2*pi;rho1=cos(7*theta./2);polar(theta,rho1),title('p=cos(7o/2)')
figure
(2);
rho2=1-cos(7*theta).^3;polar(theta,rho2),title('p=1-(cos(7o))^3')
12.求解下面两个方程构成的联立方程组在区间
内的解,并用绘图的方法绘出两曲线在同一坐标上的图,以验证求得的解的正确性。
解
clc
[x,y]=solve('(x-2)^2+3*(y-1)^2-3=0','y-6*(x-2)^2=0')
ezplot('(x-2)^2+3*(y-1)^2-3');holdon
ezplot('y-6*(x-2)^2=0');gridon
axis([04-14]);
作业2
1.求多项式
的乘积并求
的导数。
解:
a=[15713];b=[153];c=[13];
d=conv(a,b);
e=conv(d,c)
k=polyder(e)
运行结果:
e=11365168275297117
k=665260504550297
2.求当
时多项式
的值。
解:
a=[153513];b=[1453];c=[313];
d=conv(a,b);
e=conv(d,c);
polyval(e,3)
运行结果:
ans=2681280
3.试用不同的方法展开多项式
并比较其结果。
a=[11];b=[15];c=[147];
n=conv(conv(a^3,b^2),c)
运行结果:
n=Columns1through7
1171174299151107695
Column8
175
4.求下列多项式的根和导数
1)
解:
g=[1-615-4];
x=roots(g)
k=polyder(g)
运行结果:
x=
2.8494+2.2726i
2.8494-2.2726i
0.3011
k=3-1215
2)
解:
h=[1-5-14-10-3]
x=roots(h)
k=polyder(h)
运行结果:
x=
7.1589
-1.2754
-0.4418+0.3653i
-0.4418-0.3653i
k=4-15-28-10
5.对于有理多项式
(1)计算该多项式相除的结果;
(2)将该多项式展开为部分分式的形式;(3)计算
。
解:
P=[10,0,40,50,60,7];
Q=[1,3,2];
Z=[1,3];
A=conv(Q,Z)
[p,a]=polyder(P,A)
[r,p,k]=residue(P,A)
结果
A=16116
p=20180440490760889516283
a=1125814419313236
r=
1.0e+003*
-1.6165
0.5530
-0.0265
p=-3.0000
-2.0000
-1.0000
k=10-60290
6.在某次传感器输入输出特性实验中测得输入输出的一组数据如下表所示:
(输入)
1
2
3
4
5
(输出)
1.3
1.8
2.2
2.9
3.5
已知输入
和输出
可以近似成线性关系,即
求系数
和
并求当输入
时输出
的值。
解:
x=1:
1:
5;
y=[1.3,1.8,2.2,2.9,3.5];
A=polyfit(x,y,1)
x=8;
y=polyval(A,x)
结果
A=0.55000.6900
y=5.0900
7.根据人口理论的马尔萨斯模型可知,人口总数
可以采用指数函数
对人口数据进行拟合。
据统计,六十年代世界人口数据如下(单位:
亿)
t
1960
1961
1962
1963
1964
1965
1966
1967
1968
y
3.3918
3.4213
3.4503
3.4698
3.4763
3.4920
3.5133
3.5322
3.5505
试求马尔萨斯模型中的a,b值,并画出拟合曲线图,同时预测一下2010年的人口数值。
解:
t=1960:
1968;
t0=2010;
N=[29.7230.6131.5132.1332.3432.8533.5634.2034.83];
y=log(N);
p=polyfit(t,y,1);
plot(t,y,'ro');
holdon
y1=polyval(p,t);
plot(t,y1,'-')
y2010=exp(polyval(p,t0))
如图:
y2010=76.1543
8.某实验测得强度随时间变化的一组数据:
0
0.5
1
1.5
2
2.5
3
0
0.4794
0.8415
0.9915
0.9093
0.5985
0.1411
1)利用二次曲线拟合求出
秒处强度指标
。
2)利用样条曲线插值求出
秒处强度指标
。
解:
(1)解:
t=0:
0.5:
3;
y=[00.47940.84150.99150.90930.59850.1411];
p=polyfit(t,y,2);
plot(t,y,':
o');
holdon
y1=polyval(p,t);
plot(x,y1,'-*')
y(2.25)=polyval(p,2.25)
(2)解:
t=0:
0.5:
3;
y=[00.47940.84150.99150.90930.59850.1411];
t1=2.25;
x1=interpl(t,y,t1,'spline')
plot(t,y,'o-',t1,x1,'*:
')
9.因式分解
解:
g=30*x^6+157*x^5+460*x^4+800*x^3+851*x^2+534*x+108
factor(g)
结果
ans=223555771119