MATLAB程序设计与应用.docx
- 文档编号:25361524
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:65
- 大小:190.17KB
MATLAB程序设计与应用.docx
《MATLAB程序设计与应用.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计与应用.docx(65页珍藏版)》请在冰豆网上搜索。
MATLAB程序设计与应用
实验一MATLAB运算基础
第二题:
已知
A=
B=
求下列问题:
1)A+6*B和A-B+I
2)A*B和A.*B
3)A^3A.^3
4)A/BB\A
5)[A,B][A(1,3),:
B.^2]
解:
>>A=[1234-4;34787;3657];B=[13-1;203;3-27];I=[100;010;001];
(1)
>>A+6*B
ans=
1852-10
467105
215349
>>A-B+I
ans=
1231-3
32884
0671
(2)
>>A*B
ans=
684462
309-72596
154-5241
>>A.*B
ans=
121024
680261
9-13049
(3)
>>A^3
ans=
3722623382448604
247370149188600766
78688454142118820
>>A.^3
ans=
172839304-64
39304343658503
27274625343
(4)
>>A/B
ans=
16.4000-13.60007.6000
35.8000-76.200050.2000
67.0000-134.000068.0000
>>B\A
ans=
109.4000-131.2000322.8000
-53.000085.0000-171.0000
-61.600089.8000-186.2000
(5)
>>[A,B]
ans=
1234-413-1
34787203
36573-27
>>[A([1,3],:
);B^2]
ans=
1234-4
3657
451
11019
20-540
第三题:
设有矩阵A和B
A=
B=
1)求他们的乘积C
2)将矩阵C的右下角3*2子矩阵赋给D
3)查看matlab工作空间的使用情况
解:
>>A=[12345;678910;1112131415;1617181920;2122232425];B=[3016;17-69;023-4;970;41311];
(1)
>>C=A*B
C=
9315077
258335237
423520397
588705557
753890717
(2)
>>D=C(3:
5,2:
3)
D=
520397
705557
890717
第四题:
完成下列操作:
1)求【100,999】之间能被21的数的个数
2)建立一个字符串向量,删除其中的大写字母
解:
(1)
>>A=100:
999;
>>B=rem(A,21);
>>C=length(find(B==0))
C=
43
(2)
>>A='lsdhKSDLKklsdkl';
>>k=find(A>='A'&A<='Z');
>>A(k)=[]
A=
Lsdhklsdkl
实验二MATLAB矩阵分析与处理
第三题:
建立一个5
5矩阵,求它的行列式的值,迹,秩,和范数。
解:
>>A=[18947;458926170;958523136;7565705463;572619112];
>>H=det(A)
H=
13739916
>>Trace=trace(A)
Trace=
169
>>Rank=rank(A)
Rank=
5
>>Norm=norm(A)
Norm=
218.5530
第四题:
已知
A=
求A的特征值及特征向量,并分析其数学意义。
解:
>>A=[-29618;20512;-885];
>>[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
第五题:
下面是一个线性方程组:
(1)求方程的解。
(2)将方程右边向量元素
改为0.53,再求解,并比较
的变化和解的相对变化。
(3)计算系数矩阵A的条件数并分析结论。
解:
(1)
>>A=[1/21/31/4;1/31/41/5;1/41/51/6];
>>b=[0.95,0.67,0.52]';
>>x=inv(A)*b
x=
1.2000
0.6000
0.6000
(2)
>>B=[0.95,0.67,0.53]';
>>x=inv(A)*B
x=
3.0000
-6.6000
6.6000
(3)
>>cond(A)
ans=
1.3533e+003
实验三选择程序结构设计
第一题:
求分段函数的值
Y=
用if语句实现,分别输入x=-5.0,3.0,1.0,2.5,3.0,5.0时的y值
解:
>>x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];
>>y=[];
>>forx0=x
ifx0<0&x0~=-3
y=[y,x0*x0+x0-6];
elseifx0>=0&x0<5&x0~=2&x0~=3
y=[y,x0*x0-5*x0+6];
else
y=[y,x0*x0-x0-1];
end
end
>>x
x=
-5.0000-3.00001.00002.00002.50003.00005.0000
>>y
y=
14.000011.00002.00001.0000-0.25005.000019.0000
第二题:
输入一个百分制的成绩,要求输出成绩等级ABCDE。
其中90~80为A,80~89为B,70~79为C,60~69为D60以下为E
要求
1)分别写入if语句和switch语句实现
2)输入百分制成绩要判断该成绩的合理性,对不合理的成绩应输出出错的信息
解:
>>x=input('请输入一个百分制成绩:
');
请输入一个百分制成绩:
>>ifx>100|x<0
disp('您输入的成绩不是百分制成绩,请重新输入。
');
else
ifx<=100&x>=90
disp('A');
elseifx<=89&x>=80
disp('B');
elseifx<=79&x>=70
disp('C');
elseifx<=69&x>60
disp('D');
else
disp('E');
end
end
第三题:
硅谷公司员工的工资计算方法为
1)工作时间超过120小时者,超过的部分加15%
2)工作时数低于60小时的,扣发700元
3)其余按每小时84元
解:
>>n=input('请输入员工工号:
');
请输入员工工号:
>>h=input('该员工工作时数是:
');
该员工工作时数是:
>>ifh>120
x=(h-120)*84*(1+0.15)+120*84;
elseifh<60
x=h*84-700;
else
x=h*84;
end
disp([num2str(n),'号员工','的应发工资为',num2str(x)]);
号员工的应发工资为
第四题:
设计程序,完成两位数的加减乘除四则运算,即产生两位随机整数,再输入一个运算符号,作相应的运算,并显示相应的结果。
解:
>>a=fix(10+(99-10)*rand(1,2))
x=a
(1);
y=a
(2);
t=input('请输入运算符号:
','s');
ift=='+'
z=x+y;
elseift=='-'
z=x-y;
elseift=='*'
z=x*y;
elseift=='/'
z=x/y;
end
disp([num2str(x),t,num2str(y),'=',num2str(z)])
a=
8122
请输入运算符号:
第五题:
建立5*6矩阵,要求输出第n行元素。
当n超过矩阵的行数时,自动转入输出矩阵最后一行的元素,并给出出错信息。
解:
>>a=rand(5,6);
>>n=input('请输入您要输出矩阵的第几行:
');
请输入您要输出矩阵的第几行:
>>ifn>5
disp('超出了矩阵的行数,矩阵的最后一行为:
')
a(5,:
)
else
disp(['矩阵的第',num2str(n),'行为:
'])
a(n,:
)
end
矩阵的第行为:
ans=
Emptymatrix:
0-by-6
实验四循环结构程序设计
第一题:
根据公式
,求
的近似值。
当n分别取100,1000,10000时,结果是多少?
(要求是:
分别用循环结构和向量运算(使用sum函数)来实现。
)
解:
>>s=0;
>>n=100;
>>fori=1:
n
s=s+1/i/i;
end
PI=sqrt(6*s)
pi
PI=
3.1321
>>s=0;
>>n=1000;
>>fori=1:
n
s=s+1/i/i;
end
PI=sqrt(6*s)
pi
PI=
3.1406
>>s=0;
>>n=10000;
>>fori=1:
n
s=s+1/i/i;
end
PI=sqrt(6*s)
pi
PI=
3.1415
第二题:
根据
,求:
(1)y<3时的最大n值。
(2)与
(1)的n值对应的y值。
解:
>>y=0;
>>n=1;
>>while(y<3)
y=y+1/(2*n-1);
n=n+1;
end
y=y-1/(2*(n-1)-1)
n=n-2
y=
2.9944
n=
56
第三题:
考虑以下迭代公式:
其中a,b为正的常数。
(1)编写程序求迭代的结果,迭代的终止条件为
,迭代初值
=1.0,迭代次数不超过500次。
(2)如果迭代过程收敛于r,那么r的准确值是
,当(a,b)的值取(1,1),(8,3),(10,0.1)时,分别对迭代结果和准确值进行比较。
解:
>>a=input('a=?
');
a=?
>>b=input('b=?
');
b=?
>>Xn=1;
Xn1=a/(b+Xn);
n=0;
whileabs(Xn1-Xn)>1e-5
Xn=Xn1;
Xn1=a/(b+Xn);
n=n+1;
ifn==500
break;
end
end
n
Xn1
r1=(-b+sqrt(b*b+4*a))/2
r2=(-b-sqrt(b*b+4*a))/2
n=
0
Xn1=
[]
r1=
[]
r2=
[]
第四题:
已知:
求
--
中:
(1)最大值,最小值,各数之和。
(2)正数,零,负数的个数。
解:
(1)
>>fori=1:
100
ifi==1
f(i)=1;
elseifi==2
f(i)=0;
elseifi==3
f(i)=1;
else
f(i)=f(i-1)-2*f(i-2)+f(i-3);
end
end
>>max(f)
ans=
4.3776e+011
>>min(f)
ans=
-8.9941e+011
>>sum(f)
ans=
-7.4275e+011
(2)
>>length(find(f>0))
ans=
49
>>length(find(f==0))
ans=
2
>>length(find(f<0))
ans=
49
第五题:
若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。
例如,2
3-1=5,由于5是素数,所以2和3是亲密数对,5是亲密对数。
求{2,50}区间内:
(1)亲密数对的对数。
(2)与上述亲密数对对应的所有亲密素数之和。
解:
>>s=0;n=0;
>>fori=2:
49
b=i*(i+1)-1;
m=fix(sqrt(b));
forj=2:
m
ifrem(b,j)==0
break
end
end
ifj==m
n=n+1;
s=s+b;
end
end
n
s
n=
28
s=
21066
实验六高层绘图操作
第二题:
已知y1=x^2,y2=cos(2x),y3=y1*y2,完成下列操作
1)在同一坐标系中的不同颜色和线型绘制三条曲线
2)以子图像绘制三条曲线
3)分别用条形图,阶梯图,杆图和填充图绘制三条曲线
解:
(1)
>>x=linspace(-2*pi,2*pi,100);
>>y1=x.^2;
>>y2=cos(2*x);
>>y3=y1.*y2;
>>plot(x,y1,'b-',x,y2,'r:
',x,y3,'y--');
>>
>>text(4,16,'\leftarrowy1=x^2');
>>text(6*pi/4,-1,'\downarrowy2=cos(2*x)');
>>text(-1.5*pi,-2.25*pi*pi,'\uparrowy3=y1*y2');
(2):
>>x=linspace(-2*pi,2*pi,100);
>>y1=x.^2;
>>y2=cos(2*x);
>>y3=y1.*y2;
>>subplot(1,3,1);
>>plot(x,y1);
>>
>>title('y1=x^2');
>>subplot(1,3,2);
>>plot(x,y2);
>>
>>title('y2=cos(2*x)');
>>subplot(1,3,3);
>>plot(x,y3);
>>
>>title('y3=x^2*cos(2*x)');
(3)
>>x=linspace(-2*pi,2*pi,20);
>>y1=x.^2;
>>subplot(2,2,1);
>>bar(x,y1);
>>
>>title('y1=x^2的条形图');
>>subplot(2,2,2);
>>stairs(x,y1);
>>
>>title('y1=x^2的阶梯图');
>>subplot(2,2,3);
>>stem(x,y1);
>>
>>title('y1=x^2的杆图');
>>subplot(2,2,4);
>>fill(x,y1,'r');
>>
>>title('y1=x^2的填充图');
(2)
>>x=linspace(-2*pi,2*pi,20);
y2=cos(2*x);
subplot(2,2,1);
bar(x,y2);
title('y2=cos(2*x)的条形图');
subplot(2,2,2);
stairs(x,y2);
title('y2=cos(2*x)的阶梯图');
subplot(2,2,3);
stem(x,y2);
title('y2=cos(2*x)的杆图');
subplot(2,2,4);
fill(x,y2,'r');
title('y2=cos(2*x)的填充图');
(3)
>>x=linspace(-2*pi,2*pi,20);
y1=x.^2;
y2=cos(2*x);
y3=y1.*y2;
subplot(2,2,1);%分区
bar(x,y3);
title('y3=y1.*y2;的条形图');%设置标题
subplot(2,2,2);
stairs(x,y3);
title('y3=y1.*y2;的阶梯图');
subplot(2,2,3);
stem(x,y3);
title('y3=y1.*y2;的杆图');
subplot(2,2,4);
fill(x,y3,'r');%如果少了'r'则会出错
title('y3=y1.*y2;的填充图');
第三题:
已知
Y=
在-5《x《5区间绘制曲线。
解:
>>x=-5:
0.01:
5;
>>y=[];
>>forx0=x
ifx0<=0
y=[y,(x0+sqrt(pi))/exp
(2)];
else
y=[y,0.5*log(x0+sqrt(1+x0^2))];
end
end
plot(x,y)
>>
第五题:
绘制函数的曲面图形和等高线。
Z=cosxcosy
其中x的21个值均匀分布在【-5,5】范围,y的31的值巨晕分布在【0,10】,要求用subplot(2,1,1)和subpolt(2,1,1)将曲面图画在一个窗口上。
解:
>>x=linspace(-5,5,21);
>>y=linspace(0,10,31);
>>[x,y]=meshgrid(x,y);
>>z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4);
>>subplot(2,1,1);
>>surf(x,y,z);
>>
>>subplot(2,1,2);
>>contour3(x,y,z,50);
实验七低层绘图操作
第一题:
建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且按下列鼠标器的左键之后显示出leftbottonpressed字样
解:
>>h=figure('MenuBar','figure','color','r','WindowButtonDownFcn','disp(''LeftButtonPressed'')')
h=
1
LeftButtonPressed
第二题:
先利用默认属性绘制曲线y=x^2*e^2x,然后通过图形句柄操作改变曲线的颜色,线性和线宽,并利用文字对象添加文字标注。
解:
>>x=-2:
0.01:
2;
>>y=x.^2.*exp(2*x);
>>h=line(x,y);
>>
>>set(h,'color','r','linestyle',':
','linewidth',2)
>>text(1,exp
(2),'y=x^2*exp(2*x)')
实验八数据处理与多项式运算
第一题:
利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:
(1)均值和标准方差。
(2)最大元素和最小元素。
(3)大于0.5的随机数个数占总数的百分比。
解:
(1)
>>A=rand(1,30000);
>>b=mean(A)
b=
0.4988
>>std(A,0,2)
ans=
0.2890
(2)
>>max(A)
ans=
1.0000
>>min(A)
ans=
4.8345e-005
(3)
>>n=0;
>>fori=1:
30000
ifA(i)>0.5
n=n+1;
end
end
>>p=n/30000
p=
0.5006
第二题:
将100个学生的5门功课的成绩存入矩阵P中,进行如下处理:
(1)分别求每门课的最高分,最低分,以及相应学生序号。
(2)分别求每门课的平均分和标准方差。
(3)5门课总分的最高分,最低分,以及相应的学生序号。
(4)将5门课总分按照从大到小的顺序存入zcj中,相应的学生序号存入xsxh。
提示:
上机调试时,为避免学生输入成绩的麻烦,可用取值范围在{45,95}之间的随机矩阵来表示学生成绩。
解:
(1)
>>A=45+51*rand(100,5);
>>[Y,U]=max(A)
Y=
95.998595.965695.502095.703295.5696
U=
2966554769
>>[a,b]=min(A)
a=
45.242345.882845.009245.253045.6793
b=
368526748
(2)
>>m=mean(A)
s=std(A)
m=
70.917169.785973.535072.828871.6800
s=
15.137814.129615.011615.162214.8254
(3)
>>sum(A,2)
[Y,U]=max(ans)
[a,b]=min(ans)
ans=
310.9073
300.1903
381.2853
399.3692
367.1891
360.3795
353.3803
302.8869
399.8438
427.2878
336.4110
358.9261
351.2553
331.9469
413.0334
344.4165
361.9468
337.9836
340.1552
382.3467
337.6998
329.6321
290.0841
335.4717
413.6694
387.8507
348.4086
320.4340
418.2465
416.0586
371.3836
356.8309
384.2258
317.6676
351.3684
342.2732
339.9799
393.7629
401.0900
387.0595
354.1276
398.4044
369.0955
368.0804
358.5997
350.1610
384.3793
340.3847
270.1099
351.2449
390.4362
355.4126
343.743
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 程序设计 应用