MATLAB程序设计与应用(刘卫国编)课后实验答案.pdf
《MATLAB程序设计与应用(刘卫国编)课后实验答案.pdf》由会员分享,可在线阅读,更多相关《MATLAB程序设计与应用(刘卫国编)课后实验答案.pdf(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. 实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。(1) 0122sin851ze(2) 221ln(1)2zxx,其中2120.455ix(3) 0.30.330.3sin(0.3)ln,3.0,2.9,2.9, 3.022aaeeazaa(4) 2242011122123ttzttttt,其中 t=0:0.5:2.5解:M 文件: z1=2*sin(85*pi/180)/(1+exp(2) x=2 1+2*i;-.45 5; z2=1/2*log(x+sqrt(1+x2) a=-3.0:0.1:3.0; z3=(exp(0.
2、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=2&t=0&t=1&t=2&t=A&chTp, 所以 pascal 矩阵性能更好。3. 建立一个55 矩阵,求它的行列式值、迹、秩和范数。解:M 文件如下:输出结果为:A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 d = 5070000 t = 65 c1 = 6.8500 c2 = 5.4618 cinf = 6.8500 . 4. 已知296182
3、0512885A求 A 的特征值及特征向量,并分析其数学意义。解:M 文件如图:输出结果为:V = 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050 D = -25.3169 0 0 0 -10.5182 0 0 0 16.8351 数学意义: V 的 3 个列向量是A 的特征向量, D 的主对角线上3 个是 A 的特征值,特别的,V 的 3 个列向量分别是D 的 3 个特征值的特征向量。5. 下面是一个线性方程组:1231112340.951110.673450.52111456xxx(1) 求方程的解。. (2
4、) 将方程右边向量元素b3改为 0.53 再求解,并比较b3的变化和解的相对变化。(3) 计算系数矩阵A 的条件数并分析结论。解:M 文件如下:输出结果:X = 1.2000 0.6000 0.6000 X2 = 1.2000 0.6000 0.6000 C = 1.3533e+003 由结果, X 和 X2 的值一样,这表示b 的微小变化对方程解也影响较小,而A 的条件数算得较小,所以数值稳定性较好,A 是较好的矩阵。6. 建立 A 矩阵,试比较sqrtm(A) 和 sqrt(A) ,分析它们的区别。解: M 文件如下:. 运行结果有:A = 16 6 18 20 5 12 9 8 5 b1
5、 = 3.8891 -0.1102 3.2103 3.2917 2.1436 0.3698 0.3855 2.0760 1.7305 b2 = 4.0000 2.4495 4.2426 4.4721 2.2361 3.4641 3.0000 2.8284 2.2361 b = 16.0000 6.0000 18.0000 20.0000 5.0000 12.0000 9.0000 8.0000 5.0000 分析结果知: sqrtm(A) 是类似 A 的数值平方根(这可由b1*b1=A的结果看出) ,而 sqrt(A)则是对 A 中的每个元素开根号,两则区别就在于此。. 实验三选择结构程序设计
6、一、实验目的1. 掌握建立和执行M 文件的方法。2. 掌握利用if 语句实现选择结构的方法。3. 掌握利用switch 语句实现多分支选择结构的方法。4. 掌握 try 语句的使用。二、实验内容1. 求分段函数的值。2226035605231xxxxyxxxxxxx且且及其他用 if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的 y 值。解: M 文件如下:. 运算结果有:f(-5) y = 14 f(-3) y = 11 f(1) y = 2 f(2) y = 1 f(2.5) y = -0.2500 f(3) y = 5 f(5) y = 19 .
7、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 = B . score=123 错误:输入的成绩不是百分制成绩3. 硅谷公司员工的工资计算方法如下:(1) 工作时数超过120 小时者,超过部分加发15% 。(2) 工作时数低于60 小时者,扣发700 元。(3) 其余按每
8、小时84 元计发。试编程按输入的工号和该号员工的工时数,计算应发工资。解: M 文件下4. 设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。解:. M 文件如下;运算结果例:a = 38 b = 33 输入一个运算符: c = false a = 92 b = 40 输入一个运算符:+ c = . 132 5. 建立 56 矩阵,要求输出矩阵第n 行元素。当n 值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。解:M 文件如下:运算结果如下:输入一个5 行 6 列矩阵 A=1 2 3 4 5 5;2 3
9、4 5 7 6;2 2 2 2 2 3;11 2 3 9 7 3;2 3 4 5 6 7 输入一正整数n=4 11 2 3 9 7 3 输入一个5 行 6 列矩阵 A=1 2 3 4 5 5;2 3 4 5 7 6;2 2 2 2 2 3;11 2 3 9 7 3;2 3 4 5 6 7 输入一正整数n=6 2 3 4 5 6 7 ans = Error using = disp Too many input arguments. . 实验四循环结构程序设计一、实验目的1. 掌握利用for 语句实现循环结构的方法。2. 掌握利用while 语句实现循环结构的方法。3. 熟悉利用向量运算来代替循
10、环操作的方法。二、实验内容1. 根据2222211116123n,求的近似值。当n 分别取 100、1000 、10000时,结果是多少?要求:分别用循环结构和向量运算(使用sum 函数)来实现。解: M 文件如下:. 运行结果如下:K % 循环结构计算pi 值y=0; n=input(n=); for i=1:n y=y+1/i/i; end pi=sqrt(6*y) n=100 pi = 3.1321 n=1000 pi = 3.1406 n=10000 pi = 3.1415 %向量方法计算Pi 值n=input(n=); i=1./(1:n).2; s=sum(i); pi=sqrt(
11、6*s) n=100 pi = 3.1321 n=1000 pi = 3.1406 n=10000 pi =3.1415 . 2. 根据11113521yn,求:(1) y y=0;n=0; while y3 n=n-1; end n y = 3.0033 . n = 57 n = 56 3. 考虑以下迭代公式:1nnaxbx其中 a、b 为正的学数。(1) 编写程序求迭代的结果,迭代的终止条件为|xn+1-xn|10-5,迭代初值x0=1.0 ,迭代次数不超过500 次。(2) 如果迭代过程收敛于r,那么r 的准确值是242bba,当 (a,b) 的值取 (1,1) 、(8,3) 、(10,
12、0.1) 时,分别对迭代结果和准确值进行比较。解:M 文件如下:运算结果如下;请输入正数a=1 . 请输入正数b=1 x = 0.6180 r = 0.6180 -4.7016 r = 0.6180 -1.6180 s = -0.0000 -2.2361 请输入正数a=8 请输入正数b=3 x = 1.7016 r = 1.7016 -1.6180 r = 1.7016 -4.7016 s = 0.0 -6.4031 请输入正数a=10 请输入正数b=0.1 x = 3.1127 r = 3.1127 -4.7016 r = 3.1127 -3.2127 s = -0.0000 -6.3254
13、 4. 已知12312311021323nnnnfnfnfnffffn求 f1f100中:(1) 最大值、最小值、各数之和。(2) 正数、零、负数的个数。. 解: M文件以下是运算结果:max(f)=437763282635 min(f)=-899412113528 sum(f)=-742745601951 c1=49 c2=2 c3=49 5. 若两个连续自然数的乘积减1 是素数,则称这两个边疆自然数是亲密数对,该素数是亲密素数。 例如,2 3-1=5 , 由于 5 是素数,所以 2 和 3 是亲密数, 5 是亲密素数。 求2,50区间内:(1) 亲密数对的对数。(2) 与上述亲密数对对应的
14、所有亲密素数之和。. 解:M 文件:运算结果为:j = 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
15、); 命令文件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.7854i c = 1.2985 + 0.6350i d = 0.8337 - 0.9889i 2. 一物理系统可用下列方程组来表示:11121112220cossin0sin0cos000sin000cos1ammam gmNmNm g从键盘输入m1、m2和 的值,求a1、a2、N1和 N2的值。其中g 取 9
16、.8,输入 时以角度为单位。要求:定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文件。解:M 文件函数 fc.M 文件 : function X= fc(A,B) %fc fc 是求解线性方程的函数%A A 是未知矩阵的系数矩阵X=AB ;命令 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) 0 cos(x) 0 0 m2 -sin(x) 0 0 0 -cos
17、(x) 1; B=0;m1*g;0;m2*g; X=fc(A,B) 运算结果:. 输入 m1=1 输入 m2=1 输入 theta=30 X = 7.8400 3.3948 6.7896 15.6800 3. 一个自然数是素数,且它的数字位置经过任意对换后仍为素数。例如 13 是绝对素数。 试求所有两位绝对素数。要求:定义一个判断素数的函数文件。解: M 文件:函数 prime.m 文件function p = prime(p) % 输入 p 的范围,找出其中的素数m=p(length(p); for i=2:sqrt(m) n=find(rem(p,i)=0&p=i); p(n)=; %将
18、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 = 11 31 71 13 73 17 37 97 79 4. 设2411( )(2)0.1(3)0.01f xxx,编写一个MATLAB 函数文件fx.m,使得调用 f(x) 时, x 可用矩阵代入,得出的f(x)为同阶矩阵。
19、解:. 函数 fx.m 文件:function f= fx(x) %fx fx 求算 x 矩阵下的f(x) 的函数值A=0.1+(x-2).2; B=0.01+(x-3).4; f=1./A+1./B; 命令文件:clc; x=input( 输入矩阵x=); f=fx(x) 运算结果: x=input( 输入矩阵x=); f=fx(x) 输入矩阵x=7 2;12 5 f = 0.0437 10.9901 0.0101 0.1724 5. 已知(40)(30)(20)fyff(1) 当 f(n)=n+10ln(n2+5) 时,求 y 的值。(2) 当 f(n)=1 2+2 3+34+.+n (n
20、+1) 时,求 y 的值。解: (1) 函数 f.m 文件 : function f=f(x)f=x+10*log(x2+5);命令文件:clc;n1=input(n1=);n2=input(n2=);n3=input(n3=);y1=f(n1);y2=f(n2);y3=f(n3);y=y1/(y2+y3)运算结果如下:. n1=40 n2=30 n3=20 y = 0.6390 (2). 函数 g.m 文件function s= g(n)for i=1:ng(i)=i*(i+1);ends=sum(g);命令文件:clc;n1=input(n1=);n2=input(n2=);n3=inpu
21、t(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. 掌握绘制图形的辅助操作。二、实验内容1. 设23sin0.5cos1xyxx,在 x=02 区间取 101 点,绘制函数的曲线。解: M 文件如下:clc;x=linspace(0,2*pi,101);y=(0.5+3*sin(x)./(1+x.2);plot(x,y)运行结果有:2. 已知 y1=x2, y2=cos(2 x
22、),y3=y1y2,完成下列操作:(1) 在同一坐标系下用不同的颜色和线型绘制三条曲线。(2) 以子图形式绘制三条曲线。(3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。解: (1) M 文件:clc; x=-pi:pi/100:pi; y1=x.2; . 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.2;y2=cos(2*x);y3=y1.*y2;subplot(1,3,1);plot(x,y1,b-);title(y1=x2);subplot(1,
23、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.2;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=x2);subplot(2,2,3);bar(x,y2,r);title(y2=cos(2x);subplot(2,2,4);bar(x,y3,k
24、);title(y3=y1*y2);由上面的M 文件,只要依次将“bar”改为“ stairs ” 、 “stem ” 、 “fill”,再适当更改区间取的点数,运行程序即可,即有下面的结果:. 3. 已知2201ln(1)02xxeyxxx在-5 x5 区间绘制函数曲线。解: M 文件:clc;x=-5:0.01:5;y=(x+sqrt(pi)/(exp(2).*(x0);plot(x,y)运行结果:. 由图可看出,函数在零点不连续。4. 绘制极坐标曲线=asin(b+n ),并分析参数a、b、n 对曲线形状的影响。解: M 文件如下:clc; theta=0:pi/100:2*pi; a=
25、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. 绘制函数的曲线图和等高线。22
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 程序设计 应用 卫国 课后 实验 答案
限制150内