MATLAB 课后实验答案

更新时间:2023-12-16 06:06:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 MATLAB运算基础

1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。

2sin850(1) z1?

1?e21?2i??212(2) z2?ln(x?1?x),其中x??? 2?0.455??e0.3a?e?0.3a0.3?asin(a?0.3)?ln,a??3.0,?2.9,(3) z3?22?t20?t?1?1?t?2,其中t=0:0.5:2.5 (4) z4??t2?1?t2?2t?12?t?3?,2.9,3.0

解: M文件: z1=2*sin(85*pi/180)/(1+exp(2)) x=[2 1+2*i;-.45 5]; z2=1/2*log(x+sqrt(1+x^2)) 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.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)

运算结果: z1=2*sin(85*pi/180)/(1+exp(2)) x=[2 1+2*i;-.45 5]; z2=1/2*log(x+sqrt(1+x^2)) 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.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1) z1 = 0.2375 z2 = 0.7114 - 0.0253i 0.8968 + 0.3658i 0.2139 + 0.9343i 1.1541 - 0.0044i z3 = Columns 1 through 4 0.7388 + 3.1416i 0.7696 + 3.1416i 0.7871 + 3.1416i 0.7913 + 3.1416i Columns 5 through 8 0.7822 + 3.1416i 0.7602 + 3.1416i 0.7254 + 3.1416i 0.6784 + 3.1416i Columns 9 through 12 0.6196 + 3.1416i 0.5496 + 3.1416i 0.4688 + 3.1416i 0.3780 + 3.1416i Columns 13 through 16 0.2775 + 3.1416i 0.1680 + 3.1416i 0.0497 + 3.1416i -0.0771 + 3.1416i Columns 17 through 20 -0.2124 + 3.1416i -0.3566 + 3.1416i -0.5104 + 3.1416i -0.6752 + 3.1416i Columns 21 through 24 -0.8536 + 3.1416i -1.0497 + 3.1416i -1.2701 + 3.1416i -1.5271 + 3.1416i Columns 25 through 28 -1.8436 + 3.1416i -2.2727 + 3.1416i -2.9837 + 3.1416i -37.0245 Columns 29 through 32 -3.0017 -2.3085 -1.8971 -1.5978 Columns 33 through 36 -1.3575 -1.1531 -0.9723 -0.8083 Columns 37 through 40 -0.6567 -0.5151 -0.3819 -0.2561 Columns 41 through 44

ans = 1728 39304 -64 39304 343 658503 27 274625 343 ans = 16.4000 -13.6000 7.6000 35.8000 -76.2000 50.2000 67.0000 -134.0000 68.0000 ans = 109.4000 -131.2000 322.8000 -53.0000 85.0000 -171.0000 -61.6000 89.8000 -186.2000 ans = 12 34 -4 1 3 -1 34 7 87 2 0 3 3 65 7 3 -2 7 ans = 12 34 -4 3 65 7 4 5 1 11 0 19 20 -5 40

3. 设有矩阵A和B

?1?6?A??11??16??215??3?1778910???12131415?,B??0??17181920??9?22232425???423416??69??23?4?

?70?1311??0(1) 求它们的乘积C。

(2) 将矩阵C的右下角3×2子矩阵赋给D。

(3) 查看MATLAB工作空间的使用情况。

解:. 运算结果:

E=(reshape(1:1:25,5,5))';F=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]; C= E*F H=C(3:5,2:3) C = 93 150 77 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. 设有分块矩阵A???E3?3?O2?32R3?2?,其中E、R、O、S分别为单位矩阵、随机矩阵、零矩阵和对角?S2?2??ER?RS?阵,试通过数值计算验证A???。 2OS??解: M文件如下;

输出结果:

S = 1 0 0 2 A = 1.0000 0 0 0.5383 0.4427 0 1.0000 0 0.9961 0.1067

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 = 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中的每个元素开根号,两则区别就在于此。

实验三 选择结构程序设计

一、实验目的

1. 掌握建立和执行M文件的方法。

2. 掌握利用if语句实现选择结构的方法。

3. 掌握利用switch语句实现多分支选择结构的方法。 4. 掌握try语句的使用。 二、实验内容

1. 求分段函数的值。

?x2?x?6x?0且x??3?y??x2?5x?60?x?5且x?2及x?3

?x2?x?1其他?用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

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) 其余按每小时84元计发。

试编程按输入的工号和该号员工的工时数,计算应发工资。

解:M文件下

4. 设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。 解:

M文件如下;

运算结果例: a = 38 b = 33 输入一个运算符:^ c = false a = 92 b = 40 输入一个运算符:+ c = 132 5. 建立5×6矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。 解:

M文件如下:

运算结果如下: 输入一个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=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. 熟悉利用向量运算来代替循环操作的方法。 二、实验内容

1. 根据是多少?

?26?111???122232?1,求π的近似值。当n分别取100、1000、10000时,结果n2要求:分别用循环结构和向量运算(使用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 =

4. 已知

?f1?1?f?0?2??f3?1??fn?fn?1?2fn?2?fn?3求f1~f100中:

(1) 最大值、最小值、各数之和。 (2) 正数、零、负数的个数。 解:M—文件

n?1n?2n?3n?3

以下是运算结果: 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) 与上述亲密数对对应的所有亲密素数之和。 解:

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); 命令文件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. 一物理系统可用下列方程组来表示:

?m1cos??msin??1?0??0?m10m20?sin?cos??sin??cos?0??a1??0??a??mg?0???2???1? 0??N1??0??????1??N2??m2g?从键盘输入m1、m2和θ的值,求a1、a2、N1和N2的值。其中g取9.8,输入θ时以角度为单位。

要求:定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文件。 解: M文件 函数fc.M文件: function X= fc(A,B) ü fc是求解线性方程的函数 %A A是未知矩阵的系数矩阵 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) 0 cos(x) 0 0 m2 -sin(x) 0 0 0 -cos(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)=[]; %将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. 设f(x)?11,编写一个MATLAB函数文件fx.m,使得调用f(x)?24(x?2)?0.1(x?3)?0.01时,x可用矩阵代入,得出的f(x)为同阶矩阵。

解: 函数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. 已知y?f(40)

f(30)?f(20)(1) 当f(n)=n+10ln(n2+5)时,求y的值。

(2) 当f(n)=1×2+2×3+3×4+...+n×(n+1)时,求y的值。 解:(1) 函数f.m文件: function f=f(x) f=x+10*log(x^2+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:n g(i)=i*(i+1); end s=sum(g); 命令文件: clc; n1=input('n1='); 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. 掌握绘制图形的辅助操作。 二、实验内容

1. 设y??0.5???3sinx?cosx,在x=0~2π区间取101点,绘制函数的曲线。 2?1?x?解:M文件如下:

clc; x=linspace(0,2*pi,101); y=(0.5+3*sin(x)./(1+x.^2)); plot(x,y) 运行结果有:

2. 已知y1=x,y2=cos(2x),y3=y1×y2,完成下列操作: (1) 在同一坐标系下用不同的颜色和线型绘制三条曲线。 (2) 以子图形式绘制三条曲线。

(3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 解:(1) M文件:

2

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=x^2'); 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文件:

本文来源:https://www.bwwdw.com/article/xlh5.html

Top