MATLAB程序设计与应用第二版课后实验答案.docx
- 文档编号:23756261
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:39
- 大小:636.49KB
MATLAB程序设计与应用第二版课后实验答案.docx
《MATLAB程序设计与应用第二版课后实验答案.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计与应用第二版课后实验答案.docx(39页珍藏版)》请在冰豆网上搜索。
MATLAB程序设计与应用第二版课后实验答案
Matlab课后实验题答案
实验一MATLAB运算基础
2sin85
e2
(3)7
e0.3a
0.3ae
0.3a
qnoqIoqqn
(3)z3
2
sin(au.3)in
a
2
3.0,2.9,L,2.9,3.U
t2
0t1
⑷Z4
t2
1
1t2,其中
t=0:
0.5:
2.5
t2
2t1
2t3
解:
M文件:
z1=2*sin(85*pi/180"(1+exp
(2))
x=[21+2*i;-.455];
z2=1/2*log(x+sqrt(1+xA2))
a=-3.0:
0.1:
3.0;
z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)t=0:
0.5:
2.5;
z4=(t>=0&t<1).*(t.A2)+(t>=1&t<2).*(t.A2-1)+(t>=2&t<3).*(t.A2-2*t+1)
2.已知:
12
34
4
1
3
A34
7
87,
B2
0
3
3
65
7
3
2
7
求下列表达式的值:
⑴A+6*B和A-B+I(其中I为单位矩阵)
⑵A*B和A.*B
(3)AA3和A.A3
⑷A/B及B\A
(5)[A,B]和[A([1,3],:
);BA2]解:
M文件:
A=[1234-4;34787;3657];B=[13
A+6.*B
-1;203;3-27];
A-B+eye(3)
A*B
A.*B
AA3
A.A3
A/B
B\A
[A,B]
[A([1,3],:
);BA2]
3.设有矩阵A和B
1
2
3
4
5
3
0
16
6
7
8
9
10
17
6
9
A11
12
13
14
15,B
0
23
4
16
17
18
19
20
9
7
0
21
22
23
24
25
4
13
11
(1)求它们的乘积C。
(2)将矩阵C的右下角
3X2
子矩阵赋给D。
(3)查看MATLAB工作空间的使用情况。
解:
.运算结果:
E=(reshape(1:
1:
25,5,5))';F=[3016;17-69;023-4;970;41311];
C=E*F
H=C(3:
5,2:
3)
C=
9315077
258
335
237
423
520
397
588
705
557
753
890
717
H=
520
397
705
557
890
717
4.完成下列操作:
(1)求[100,999]之间能被21整除的数的个数。
(2)建立一个字符串向量,删除其中的大写字母。
解:
(1)结果:
m=100:
999;
n=find(mod(m,21)==0);
length(n)
ans=
43
(2).建立一个字符串向量例如:
ch='ABC123d4e56Fg9:
则要求结果是:
ch='ABC123d4e56Fg9:
k=find(ch>='A'&ch<='Z');
ch(k)=[]
ch=
123d4e56g9
实验二MATLAB矩阵分析与处理
1.设有分块矩阵AE33Rq2,其中E、r、o、S分别为单位矩阵、随机矩阵、零矩
。
23§22
阵和对角阵,试通过数值计算验证
AER2RS
OS2
解:
M文件如下;
禹站M2ERRS
由ans,所以A2
OS
2.产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。
为什么?
解:
M文件如下:
BFriatnr—IJn+itled?
*
~HfflEl
Jilt『alC^llTgal:
Dt»ugDesktopFin.亦v}GJp
n1?
X
7口宙・|蛊■也勺4址四・|州•申配創・■
稻■■■■H"毬..
ians
*□■|i.o+「.:
m疇瞬q
Lclc
2H=hilh(5>
工P=pBscal(6J
圧■匚二就【屮
7?
Fennd(H)
lteood{P)|
求A的特征值及特征向量,并分析其数学意义。
解:
M文件如图:
Ed11nI一linti1Irsrl*
Zdit旦些金R©pMil-p
-石]+|+|l1谒逡|Q
A=r-296IB;20B]2;-SS51;
Pl^eigU)芽全部恃征值枸欣对角辞臥#是特征向找做均列向S描I成
Cd.
数学意义:
V的3个列向量是A的特征向量,D的主对角线上3个是A的特征值,特别的,V的3个列向量分别是D的3个特征值的特征向量。
5.
F面是一个线性方程组:
(1)
⑵
⑶
解:
求方程的解。
将方程右边向量元素
计算系数矩阵A的条件数并分析结论。
M文件如下:
b3改为0.53再求解,并比较b3的变化和解的相对变化。
0.95
Editor-Untitled?
*
输出结果:
由结果,X和X2的值一样,这表示b的微小变化对方程解也影响较小,而A的条件数算得
较小,所以数值稳定性较好,A是较好的矩阵。
6.建立A矩阵,试比较sqrtm(A)和sqrt(A),分析它们的区别。
解:
M文件如下:
分析结果知:
sqrtm(A)是类似A的数值平方根(这可由b1*b仁A的结果看出),而sqrt(A)
则是对A中的每个元素开根号,两则区别就在于此。
实验三选择结构程序设计
1.求分段函数的值。
x2x6x0且x3
yx5x60x5且x2及x3
x2x1其他
用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。
解:
M文件如下:
2.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。
其中90分~100分为A,
80分~89分为B,79分~79分为C,60分~69分为D,60分以下为E。
要求:
(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
解:
M文件如下
试算结果:
score=88
grade=
Bscore=123
错误:
输入的成绩不是百分制成绩
3.硅谷公司员工的工资计算方法如下:
(1)工作时数超过120小时者,超过部分加发15%。
(2)工作时数低于60小时者,扣发700元。
(3)其余按每小时84元计发。
试编程按输入的工号和该号员工的工时数,计算应发工资。
解:
M文件下
4.设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。
解:
M文件如下;
5•建立5x6矩阵,要求输出矩阵第n行元素。
当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。
解:
M文件如下:
实验四循环结构程序设计
2
11
1
1
1.根据
2亠2
正L
,
6
12
3
n
时,结果是多少?
要求:
分别用循环结构和向量运算(使用
求n的近似值。
当n分别取100、1000、
10000
解:
M文件如下:
sum函数)来实现。
111
2•根据y1L,求:
352n1
(1)y<3时的最大n值。
⑵与
(1)的n值对应的y值。
解:
M—文件如下:
畚-Untitled.9*匚I回区|
3.考虑以下迭代公式:
a
Xn1bXn
其中a、b为正的学数。
(1)编写程序求迭代的结果,迭代的终止条件为|Xn+1-Xn| 次数不超过500次。 by/b4a (2)如果迭代过程收敛于r,那么r的准确值是,当(a,b)的值取(1,1)、 (8,3)、(10,0.1)时,分别对迭代结果和准确值进行比较。 解: M文件如下: 4.已知 fl 1 n 1 f2 0 n 2 f3 1 n 3 fn f2ff 51n2n3 n 3 求fl~f100中: (1)最大值、最小值、各数之和。 (2)正数、零、 负数的个数。 解: M—文件 以下是运算结果: max(f)=437763282635min(f)=-899412113528sum(f)=-742745601951c1=49 c2=2 c3=49 5.若两个连续自然数的乘积减1是素数,则称这两个边疆自然数是亲密数对,该素数 是亲密素数。 例如,2X3-仁5,由于5是素数,所以2和3是亲密数,5是亲密素数。 求[2,50]区间内: (1)亲密数对的对数。 (2)与上述亲密数对对应的所有亲密素数之和。 解: M文件: 运算结果为: 29 s= 23615 实验五函数文件 、实验目的 1.理解函数文件的概念。 2.掌握定义和调用MATLAB函数的方法。 、实验内容 1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。 解: M文件如下: 函数fushu.M文件: function[e,l,s,c]=fushu(z) %fushu 复数的指数,对数,正弦,余弦的计算 %e 复数的指数函数值 %l 复数的对数函数值 %s 复数的正弦函数值 %c 复数的余弦函数值 e=exp(z); l=log(z); s=sin(z); c=cos(z); 命令文件 M: z=input('请输入一个复数z='); [a,b,c,d]=fushu(z) 运算结果如下: z=input('请输入一个复数z='); [a,b,c,d]=fushu(z) 请输入一个复数z=1+i a= 1.4687+2.2874i b= 0.3466+0.7854 c 1.2985+0.6350i d=0.8337-0.9889i 2.一物理系统可用下列方程组来表示: mcos 叶 sin 0 a 0 msin 0 cos 0 a2 mg 0 m2 sin 0 N1 0 0 0 cos 1 N2 mtg 从键盘输入m1、m2和B 的值,求 a1、 a2、N 1和N2的值。 其中g取9.8,输入B时以角度 为单位。 要求: 定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文 件。 解: M文件 函数fc.M文件: functionX=fc(A,B) %fcfc是求解线性方程的函数 %AA是未知矩阵的系数矩阵 X=A\B; 命令M文件: clc; m1=input('输入m1='); m2=input('输入m2='); theta=input('输入theta='); x=theta*pi/180; g=9.8; A=[m1*cos(x)-m1-sin(x)0 m1*sin(x)0cos(x)0 0m2-sin(x)0 00-cos(x)1]; B=[0;m1*g;0;m2*g]; X=fc(A,B) 运算结果: 输入m仁1 输入m2=1输入theta=30 7.8400 3.3948 6.7896 15.6800 3.一个自然数是素数,且它的数字位置经过任意对换后仍为素数。 例如13是绝对素数。 试 求所有两位绝对素数。 要求: 定义一个判断素数的函数文件。 解: M文件: 函数prime.m文件 function[p]=prime(p) %输入p的范围,找出其中的素数 m=p(length(p)); fori=2: sqrt(m) n=find(rem(p,i)==0&p~=i); p(n)=[]; %将p中能被i整除,而却不等于i的元素,即下标为n的元素剔除,其余的即为素数 end p; 命令文件: clc; p=10: 99; p=prime(p);%找出10到99内的所有素数 p=10*rem(p,10)+(p-rem(p,10))/10; %将p素数矩阵每个元素个位十位调换顺序 p=prime(p) %再对对换后的素数矩阵找出所有的素数 运算结果: p= 113171137317379779 11 4.设f(x)24,编写一个MATLAB函数文件fx.m,使得 (x2)0.1(x3)0.01 调用f(x)时,x可用矩阵代入,得出的f(x)为同阶矩阵。 解: 函数fx.m文件: functionf=fx(x) %fxfx求算x矩阵下的f(x)的函数值 A=0.1+(x-2).A2; B=0.01+(x-3).A4; f=1./A+1./B; 命令文件: clc; x=input('输入矩阵x=');f=fx(x) 运算结果: >>x=input('输入矩阵x=');f=fx(x) 输入矩阵x=[72;125] 0.043710.9901 0.01010.1724 5.已知y f(40) f(30)f(20) (1)当f(n)=n+101n(n2+5)时,求y的值。 (2)当f(n)=1x2+2x3+3x4+...+nx(n+1)时,求y的值。 解: ⑴ 函数f.m文件: function f=f(x) f=x+10*log(xA2+5); 命令文件: clc; n1=input( 'n1='); n2=input( 'n2='); n3=input( 'n3='); y仁f(n1); y2=f(n2); y3=f(n3); y=y1/(y2+y3) 运算结果如下: n1=40 n2=30 n3=20 y= 0.6390 函数g.m文件 functionfori=1: ng(i)=i*(i+1);ends=sum(g); s=g(n) 命令文件: clc; n1=input( 'n仁'); n2=input( 'n2='); n3=input( 'n3='); y1=g(n1); y2=g(n2); y3=g(n3); y=y1/(y2+y3) 运算结果如下: n1=40 n2=30 n3=20 y= 1.7662 实验六高层绘图操作 、实验目的 1.掌握绘制二维图形的常用函数。 2.掌握绘制三维图形的常用函数。 3.掌握绘制图形的辅助操作。 、实验内容 3sinx 1•设y0.5cosx,在x=0~2n区间取101点,绘制函数的曲线。 1X2 解: M文件如下: clc; x=linspace(0,2*pi,101);y=(0.5+3*sin(x)./(1+x.A2));plot(x,y) 运行结果有: 2.已知y1=x2,y2=cos(2x),y3=y1xy2,完成下列操作: (1)在同一坐标系下用不同的颜色和线型绘制三条曲线。 (2)以子图形式绘制三条曲线。 (3)分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 解: (1)M文件: clc; x=-pi: pi/100: pi; y1=x.A2; y2=cos(2*x); y3=y1.*y2; plot(x,y1,'b-',x,y2,'r: ',x,y3,'k--') 运行结果: (2)M文件: clc;x=-pi: pi/100: pi; y1=x.A2;y2=cos(2*x);y3=y1.*y2; subplot(1,3,1); plot(x,y1,'b-');title('y1=xA2'); subplot(1,3,2); plot(x,y2,'r: ');title('y2=cos(2x)'); subplot(1,3,3); plot(x,y3,'k--');title('y3=y1*y2'); .运行结果: (3)M文件: clc; x=-pi: pi/100: pi; y1=x.A2; y2=cos(2*x); y3=y1.*y2; subplot(2,2,1); plot(x,y1,'b-',x,y2,'r: ',x,y3,'k--'); subplot(2,2,2); bar(x,y1,'b'); title('y1=xA2'); subplot(2,2,3); bar(x,y2,'r'); title('y2=cos(2x)'); subplot(2,2,4); bar(x,y3,'k'); title('y3=y1*y2'); 由上面的M文件,只要依次将"bar”改为"stairs”、“stem”、“fill”,再适当更改区间取的点数,运行程序即可, 即有下面的结果: 3.已知 如(X口X0 在-5 解: M文件: clc; x=-5: 0.01: 5;y=(x+sqrt(pi))/(exp (2)).*(x<=0)+0.5*log(x+sqrt(1+x.A2)).*(x>0); plot(x,y) 运行结果: 由图可看出,函数在零点不连续。 4.绘制极坐标曲线p=asin(b+n0),并分析参数a、b、n对曲线形状的影响。 解: M文件如下: clc; theta=0: pi/100: 2*pi; a=input('输入a='); b=input('输入b='); n=input('输入n='); rho=a*sin(b+n*theta); polar(theta,rho,'m') 采用控制变量法的办法,固定两个参数,变动第三个参数观察输出图象的变化。 分析结果: 由这8个图知道, 当a,n固定时,图形的形状也就固定了,b只影响图形的旋转的角度; 当a,b固定时,n只影响图形的扇形数,特别地,当n是奇数时,扇叶数就是n,当是偶 数时,扇叶数则是2n个; 当b,n固定时,a影响的是图形大小,特别地,当a是整数时,图形半径大小就是a。 5.绘制函数的曲线图和等高线。 x2y2 zcosxcosye4 其中x的21个值均匀分布[-5,5]范围,y的31个值均匀分布在[0,10],要求使用subplot(2,1,1)和subplot(2,1,2)将产生的曲面图和等高线图画在同一个窗口上。 解: M文件: clc; x=linspace(-5,5,21); y=linspace(0,10,31);[x,y]=meshgrid(x,y); z=cos(x).*cos(y).*exp(-sqrt(x.A2+y.A2)/4);subplot(2,1,1); surf(x,y,z); title('曲面图'); subplot(2,1,2);surfc(x,y,z);title('等高线图'); 运行结果: 甜面图 0-5 等高綾图 1-: ■■■■■■" 0-5 6.绘制曲面图形,并进行插值着色处理。 xCOSScost 3ycosssint0s,0t 22 zsins 解: M文件: clc; s=0: pi/100: pi/2; t=0: pi/100: 3*pi/2; [s,t]=meshgrid(s,t); x=cos(s).*cos(t); y=cos(s).*sin(t); z=sin(s); subplot(2,2,1); mesh(x,y,z); title('未着色的图形'); subplot(2,2,2); surf(x,y,z); title('shadingfaceted(缺省)'); subplot(2,2,3); surf(x,y,z);shadingflat; title('shadingflat'); subplot(2,2,4); surf(x,y,z);shadinginterp;%插值着色 title('shadinginterp'); TileEditViInsertTools.BesisLopWindowHelp 运行结果有: 芒已h窃®遲復□ElH 未着色处理的图形 shadingfacetad(缺省) 1T shadingflat shadinginterp 11 0 ”1 实验八数据处理与多项式计算 、实验内容 1.利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质: (1)均值和标准方差。 (2)最大元素和最小元素。 (3)大于0.5的随机数个数占总数的百分比。 解: M文件: clc; x=rand(1,30000); mu=mean(x)%求这30000个均匀分布随机数的平均值 sig=std(x)%求其标准差di y=length(find(x>0.5));%找出大于0.5数的个数 p=y/30000%大于0.5的所占百分比 运行结果: mu= 0.499488553231043sig= 0.288599933559786 P= 0.4994 2.将100个学生5门功课的成绩存入矩阵P中,进行如下处理: (1)分别求每门课的最高分、最低分及相应学生序号。 (2)分别求每门课的平均分和标准方差。 (3)5门课总分的最高分、最低分及相应学生序号。 (4)将5门课总分按从大到小顺序存入zcj中,相应学生序号存入xsxh。 提示: 上机调试时,为避免输入学生成绩的麻烦,可用取值范围在[45,95]之间的随机 矩阵来表示学生成绩。 解: M文件: clc; t=45+50*rand(100,5);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 程序设计 应用 第二 课后 实验 答案