Matlab程序设计上机报告.docx
《Matlab程序设计上机报告.docx》由会员分享,可在线阅读,更多相关《Matlab程序设计上机报告.docx(21页珍藏版)》请在冰豆网上搜索。
Matlab程序设计上机报告
Matlab程序设计上机报告
Matlab程序设计上机报告
第2章
1.求下列表达式的值。
(1)
>>w=sqrt
(2)*(1+0.34245*10^(-6))
w=
1.4142
(2)
,其中a=3.6,b=5,c=-9.8
>>a=3.5;
b=5;
c=-9.8;
x=(2*pi*a+(b+c)/(pi+a*b*c)-exp
(2))/(tan(b+c)+a)
x=
0.9829
(3)
其中α=3.32,β=-7.9。
a=3.32;
b=-7.9;
y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a)
y=
-128.4271
(4)
,其中t=
。
>>t=[2,1-3i;5,-0.65];
z=0.5*exp(2*t)*log(t+sqrt(1+t*t))
z=
1.0e+04*
0.0057-0.0007i0.0049-0.0027i
1.9884-0.3696i1.7706-1.0539i
2.已知
求下列表达式的值
(1)A+6B和A2-B+I
(2)A*B、A.*B和B*A
(3)A/B及B/A
(4)[A,B]和[A([1,3],:
);B^2]
>>A=[-1,5,-4;0,7,8;3,61,7];
>>B=[8,3,-1;2,5,3;-3,2,0];
>>A+6*B
ans=
4723-10
123726
-15737
>>A^2-B+eye(3)
ans=
-18-21717
22533109
21867526
>>A*B
ans=
141416
-105121
125328180
>>A.*B
ans=
-8154
03524
-91220
>>A.*B
ans=
-8154
03524
-91220
>>A/B
ans=
1.2234-0.92552.9787
-0.94682.3511-0.9574
4.61703.872313.8936
>>B/A
ans=
-5.3173-3.56610.8942
-1.2768-0.47430.2411
2.12291.3173-0.2924
>>[A,B]
ans=
-15-483-1
078253
3617-320
>>[A([1,3],:
);B^2]
ans=
-15-4
3617
73371
173713
-2019
3.已知
完成下列操作:
(1)输出A在[10,25]范围内的全部元素。
(2)取出A前3行构成矩阵B,前两列构成矩阵C,右下角3×2只矩阵构成矩阵D,B与C的乘积构成矩阵E。
(3)分别求表达式E>>find(A>=10&A<=25)
ans=
1
5
>>B=A(1:
3,:
)
B=
23.000010.0000-0.77800
41.0000-45.000065.00005.0000
32.00005.0000032.0000
>>C=A(:
1:
2)
C=
23.000010.0000
41.0000-45.0000
32.00005.0000
6.0000-9.5400
>>D=A(2:
4,3:
4)
D=
65.00005.0000
032.0000
54.00003.1400
>>E=B*C
E=
1.0e+03*
0.9141-0.2239
1.20802.7123
1.1330-0.2103
>>Eans=
01
00
01
>>Eans=
01
00
01
>>E&D
ans=
11
01
11
>>E|D
ans=
11
11
11
>>~E|~D
ans=
00
10
00
4.产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好,为什么?
>>H=hilb(5);
P=pascal(5);
Hh=det(H)
Hh=
3.7493e-12
>>Hp=det(P)
Hp=
1
>>Th=cond(H)
Th=
4.7661e+05
>>Tp=cond(P)
Tp=
8.5175e+03
Tp比Th好,更接近于1。
5.已知:
求A的特征值及特征向量,并分析其数学意义。
>>A=[-29,6,18;20,5,12;-8,8,5];
[V,D]=eig(A)
V=
0.71300.28030.2733
-0.6084-0.78670.8725
0.34870.55010.4050
D=
-25.316900
0-10.51820
0016.8351
设A为n阶矩阵,若存在常数λ及非零的n维向量x,使得
Ax=λx,
则称λ是矩阵A的特征值,x是A属于特征值λ的特征向量
第3章
1.从键盘输入一个3位整数,将它反向输出。
>>a=input('输入一个3位整数:
','s');fliplr(a)
输入一个3位整数:
345
ans=
543
2.输入一个百分之成绩,要求输出等级A、B、C、D、E。
其中90~100分为A,80~89分为B,70分~79分为C,60分~69分为D,60分以下为E。
要求:
(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
>>m=input('请输入一个百分制的成绩:
');
ifm>=0&m<=100
switchfix(m/10)
case{9,10}
disp('这个成绩所属的成绩等级:
A');
case{8}
disp('这个成绩所属的成绩等级:
B');
case{7}
disp('这个成绩所属的成绩等级:
C');
case{6}
disp('这个成绩所属的成绩等级:
D');
otherwise
disp('这个成绩所属的成绩等级:
E')
end
else
disp('输入有误');
end
>>m=input('请输入一个百分制的成绩:
');
ifm>=90&m<=100
disp('这个成绩所属的成绩等级:
A');
elseifm>=80&m<=89
disp('这个成绩所属的成绩等级:
B');
elseifm>=70&m<=79
disp('这个成绩所属的成绩等级:
C');
elseifm>=60&m<=69
disp('这个成绩所属的成绩等级:
C');s
elseifm>=0&m<=59
disp('这个成绩所属的成绩等级:
E');
else
disp('错误:
输入的成绩不合理');
end
3.输入20个数,求其中最大数和最小数。
要求分别用循环结构和调用matlab的max函数、min函数来实
>>fori=1:
20
s=strcat('输入第',num2str(i),'个数字');
a(i)=input(s);
end
b=a
(1);
c=a
(1);
fori=1:
20
ifa(i)>b
b=a(i);
end
ifa(i)c=a(i);
end
end
b
c
>>max(a)
>>min(a)
5.
当a取-3.0、-2.9、-2.8、-2.8、···、2.8、2.9、3.0时,求各点的函数值。
要求分别用顺序结构和循环结构实现。
>>a=[-3:
0.1:
3];
b=((exp(0.3.*a)-exp(-0.3.*a))./2);
c=sin(a+0.3);
y=b.*c+log((0.3+a)./2)
>>a=[-3:
0.1:
3];
fori=1:
61
y=(exp(0.3*a(i))-exp(-0.3*a(i)))/2*sin(a(i)+0.3)+log((0.3+a(i))/2)
End
5.当n分别取100、1000、10000时,求下列格式的值:
要求分别用顺序结构和向量运算(使用sum函数)来实现。
(1)
>>A=[0,0,0];
n=[100,1000,10000];
fori=1:
3
forj=1:
n(i)
A(i)=1/(j^2)+A(i);
end
end
A
A=
1.63501.64391.6448
>>A=[0,0,0];
n=[100,1000,10000];
fori=1:
3
j=1:
1:
n(i);
A(i)=sum(1./j.^2);
end
A
A=
1.63501.64391.6448
(2)
>>A=[1,1,1];
n=[100,1000,10000];
fori=1:
3
forj=1:
n(i)
A(i)=A(i)*((2*j)^2)/((2*j-1)*(2*j+1));
end
end
>>A
A=
1.56691.57041.5708
6.建立5×6矩阵,要求输出矩阵第n行元素。
当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。
>>A=rand(5,6)
n=input('输入第几行?
');
ifn>5
n=5;
disp('超出范围,输出最后一行的元素');
A(n,:
)
else
A(n,:
)
end
第4章
1.绘制下列曲线
(1)
>>x=0:
pi/100:
2*pi;
>>y=x-x.^3/factorial(3);
>>plot(x,y)
(2)
>>ezplot('x.^2+2*y.^2-64',[-8,8,-6,6])
2,设
在同一图形窗口采用子图的形式绘制条形图、阶梯图、杆图、和对数坐标图等不同图形,并对不同图形加标注说明
>>t=-pi:
pi/100:
pi;
>>y=1./(1+exp(-t));
>>subplot(2,2,1),stairs(t,y),title'阶梯图';
>>t=-pi:
pi/10:
pi;
>>y=1./(1+exp(-t));
>>subplot(2,2,1),stairs(t,y),title'阶梯图';
>>subplot(2,2,2),bar(t,y),title'条形图';
>>subplot(2,2,3),stem(t,y),title'杆图';
>>subplot(2,2,4),semilogx(y),gridon,title'对数坐标图'
3.绘制下列及坐标图
(1)
>>x=-2*pi:
pi/20:
pi;
>>y=5.*cos(x)+4;
>>polar(x,y)
(2)
>>x=-pi/3:
pi/30:
pi/3;
>>y=5.*(sin(x).^2)./cos(x);
>>polar(x,y)
4.绘制下列三维图形。
(1)
>>t=0:
pi/100:
2*pi;
>>x=exp(-t/20).*cos(t);
>>y=exp(-t/20).*sin(t);
>>z=t;
>>plot3(x,y,z)
(2)z=5,|x|≤5,|y|≤5。
要求应用插值着色处理。
>>[x,y]=meshgrid(-10:
0.1:
10);
>>z=x;
>>z(:
:
)=5;
>>shadinginterp
>>i=find(abs(x)>5&abs(y)>5);
>>z1=z;
>>z1(i)=NaN;
>>surf(x,y,z1);
>>shadinginterp;
5.播放一个直径不断变化的球体。
>>n=30;
[x,y,z]=sphere;
m=moviein(n);
forj=1:
n
surf(j*x,j*y,j*z);
m(:
j)=getframe;
>>end
>>movie(m,2)
第9章
1.建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标左键后显示出LeftButtonPressed字样。
>>co=figure('Color','r','WindowButtonDownFcn','axisoff;text(0.1,0.5,''LeftButtonPressed'',''fontsize'',30)')
co=
2
2.利用图形对象回执下列曲线,要求先利用默认属性绘制曲线,然后通过图形句柄操作来改变曲线的颜色、线性和线宽,并利用文本对象给曲线添加文字标注。
(1)
>>x=0:
0.1:
20;
y=log(x+sqrt(1+x.^2))./2;
fi=plot(x,y);
set(fi,'color','r','linestyle',':
','linewidth',1)
(2)
>>t=0:
0.1:
20;
x=t.^2;
y=5.*t.^2;
fi=plot3(t,x,y);
set(fi,'color','g','linestyle','-.','linewidth',2)
4.利用图形对象绘制下列三维图形,要求对图形进行光照处理。
(1)
>>[x,y]=meshgrid(0:
0.1:
10);
z=x.*2+y.*2-5*sin(x.*y);
>>surf(x,y,z);
light('style','local')
(2)
>>[x,y]=meshgrid(0:
0.1:
10);
>>z=y.^3;
>>surf(x,y,z);
light('posi',[0,0,1])
4.以任意位置子图形绘制出正弦、余弦、正切和余切函数曲线。
>>t=linspace(0,4*pi,50);
x=sin(t);
y=cos(t);
z=tan(t);
w=cot(t);
axes('Position',[0.2,0.6,0.3,0.3],'GridLineStyle','-');
plot(t,x);
title('sint');
axes('Position',[0.6,0.6,0.3,0.3],'GridLineStyle','-');
plot(t,y);
title('cost');
axes('Position',[0.2,0.2,0.3,0.3],'GridLineStyle','-');
plot(t,z);
title('tant');
axes('Position',[0.6,0.2,0.3,0.3],'GridLineStyle','-');
plot(t,w);
title('cott')
5.用patch函数绘制一个填充渐变色的正五变形。
>>t=linspace(0,2*pi,6);
k=t(1:
length(t)-1);
patch(sin(k),cos(k),rand(1,length(k)),'facecolor','interp');
axisequal