MATLAB程序设计与应用刘卫国编课后实验答案.docx

上传人:b****0 文档编号:25731622 上传时间:2023-06-12 格式:DOCX 页数:87 大小:1.08MB
下载 相关 举报
MATLAB程序设计与应用刘卫国编课后实验答案.docx_第1页
第1页 / 共87页
MATLAB程序设计与应用刘卫国编课后实验答案.docx_第2页
第2页 / 共87页
MATLAB程序设计与应用刘卫国编课后实验答案.docx_第3页
第3页 / 共87页
MATLAB程序设计与应用刘卫国编课后实验答案.docx_第4页
第4页 / 共87页
MATLAB程序设计与应用刘卫国编课后实验答案.docx_第5页
第5页 / 共87页
点击查看更多>>
下载资源
资源描述

MATLAB程序设计与应用刘卫国编课后实验答案.docx

《MATLAB程序设计与应用刘卫国编课后实验答案.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计与应用刘卫国编课后实验答案.docx(87页珍藏版)》请在冰豆网上搜索。

MATLAB程序设计与应用刘卫国编课后实验答案.docx

MATLAB程序设计与应用刘卫国编课后实验答案

实验一MATLAB运算基础

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

(1)

(2)

,其中

(3)

(4)

,其中t=0:

:

解:

M文件:

z1=2*sin(85*pi/180)/(1+exp

(2))

x=[21+2*i;5];

z2=1/2*log(x+sqrt(1+x^2))

a=:

:

;

z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2)

t=0:

:

;

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=[21+2*i;5];

z2=1/2*log(x+sqrt(1+x^2))

a=:

:

;

z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2)

t=0:

:

;

z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^2-2*t+1)

z1=

z2=

-+

+-

z3=

Columns1through4

++++

Columns5through8

++++

Columns9through12

++++

Columns13through16

++++

Columns17through20

++++

Columns21through24

++++

Columns25through28

+++

Columns29through32

Columns33through36

Columns37through40

Columns41through44

Columns45through48

Columns49through52

Columns53through56

Columns57through60

Column61

z4=

00

2.已知:

求下列表达式的值:

(1)A+6*B和A-B+I(其中I为单位矩阵)

(2)A*B和A.*B

(3)A^3和A.^3

(4)A/B及B\A

(5)[A,B]和[A([1,3],:

);B^2]

解:

M文件:

A=[1234-4;34787;3657];B=[13-1;203;3-27];

A+6.*B

A-B+eye(3)

A*B

A.*B

A^3

A.^3

A/B

B\A

[A,B]

[A([1,3],:

);B^2]

运算结果:

A=[1234-4;34787;3657];B=[13-1;203;3-27];

A+6.*B

A-B+eye(3)

A*B

A.*B

A^3

A.^3

A/B

B\A

[A,B]

[A([1,3],:

);B^2]

ans=

1852-10

467105

215349

ans=

1231-3

32884

0671

ans=

684462

309-72596

154-5241

ans=

121024

680261

9-13049

ans=

3722623382448604

247370149188600766

78688454142118820

ans=

172839304-64

39304343658503

27274625343

ans=

ans=

ans=

1234-413-1

34787203

36573-27

ans=

1234-4

3657

451

11019

20-540

3.设有矩阵A和B

(1)求它们的乘积C。

(2)将矩阵C的右下角3×2子矩阵赋给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

258335237

423520397

588705557

753890717

H=

520397

705557

890717

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.设有分块矩阵

,其中E、R、O、S分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证

解:

M文件如下;

输出结果:

S=

10

02

A=

00

00

00

0000

0000

a=

00

00

00

0000

0000

ans=

00000

00000

00000

00000

00000

由ans,所以

2.产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。

为什么?

解:

M文件如下:

输出结果:

H=

P=

11111

12345

1361015

14102035

15153570

Hh=

Hp=

1

Th=

+005

Tp=

+003

因为它们的条件数Th>>Tp,所以pascal矩阵性能更好。

3.建立一个5×5矩阵,求它的行列式值、迹、秩和范数。

解:

M文件如下:

输出结果为:

A=

17241815

23571416

46132022

101219213

11182529

d=

5070000

t=

65

c1=

c2=

cinf=

4.已知

求A的特征值及特征向量,并分析其数学意义。

解:

M文件如图:

输出结果为:

V=

D=

00

00

00

数学意义:

V的3个列向量是A的特征向量,D的主对角线上3个是A的特征值,特别的,V的3个列向量分别是D的3个特征值的特征向量。

5.下面是一个线性方程组:

(1)求方程的解。

(2)将方程右边向量元素b3改为再求解,并比较b3的变化和解的相对变化。

(3)计算系数矩阵A的条件数并分析结论。

解:

M文件如下:

输出结果:

X=

X2=

C=

+003

由结果,X和X2的值一样,这表示b的微小变化对方程解也影响较小,而A的条件数算得较小,所以数值稳定性较好,A是较好的矩阵。

6.建立A矩阵,试比较sqrtm(A)和sqrt(A),分析它们的区别。

解:

M文件如下:

运行结果有:

A=

16618

20512

985

b1=

b2=

b=

分析结果知:

sqrtm(A)是类似A的数值平方根(这可由b1*b1=A的结果看出),而sqrt(A)则是对A中的每个元素开根号,两则区别就在于此。

实验三选择结构程序设计

一、实验目的

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

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

3.掌握利用switch语句实现多分支选择结构的方法。

4.掌握try语句的使用。

二、实验内容

1.求分段函数的值。

用if语句实现,分别输出x=,,,,,,时的y值。

解:

M文件如下:

运算结果有:

f(-5)

y=

14

>>f(-3)

y=

11

>>f

(1)

y=

2

>>f

(2)

y=

1

>>f

y=

>>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=[123455;234576;222223;1123973;234567]

输入一正整数n=4

1123973

输入一个5行6列矩阵A=[123455;234576;222223;1123973;234567]

输入一正整数n=6

234567

ans=

Errorusing==>disp

Toomanyinputarguments.

实验四循环结构程序设计

一、实验目的

1.掌握利用for语句实现循环结构的方法。

2.掌握利用while语句实现循环结构的方法。

3.熟悉利用向量运算来代替循环操作的方法。

二、实验内容

1.根据

,求π的近似值。

当n分别取100、1000、10000时,结果是多少?

要求:

分别用循环结构和向量运算(使用sum函数)来实现。

解:

M文件如下:

运行结果如下:

K>>%循环结构计算pi值

y=0;

n=input('n=');

fori=1:

n

y=y+1/i/i;

end

pi=sqrt(6*y)

n=100

pi=

n=1000

pi=

n=10000

pi=

%向量方法计算Pi值

n=input('n=');

i=1./(1:

n).^2;

s=sum(i);

pi=sqrt(6*s)

n=100

pi=

n=1000

pi=

n=10000

pi=

2.根据

,求:

(1)y<3时的最大n值。

(2)与

(1)的n值对应的y值。

解:

M—文件如下:

运行结果如下:

K>>y=0;n=0;

whiley<3

n=n+1;

y=y+1/(2*n-1);

end

y

n

ify>3

n=n-1;

end

n

y=

n=

57

n=

56

3.考虑以下迭代公式:

其中a、b为正的学数。

(1)编写程序求迭代的结果,迭代的终止条件为|xn+1-xn|≤10-5,迭代初值x0=,迭代次数不超过500次。

(2)如果迭代过程收敛于r,那么r的准确值是

,当(a,b)的值取(1,1)、(8,3)、(10,时,分别对迭代结果和准确值进行比较。

解:

M文件如下:

运算结果如下;

请输入正数a=1

请输入正数b=1

x=

r=

r=

s=

请输入正数a=8

请输入正数b=3

x=

r=

r=

s=

1.0

请输入正数a=10

请输入正数b=

x=

r=

r=

s=

 

4.已知

求f1~f100中:

(1)最大值、最小值、各数之和。

(2)正数、零、负数的个数。

解:

M—文件

以下是运算结果:

max(f)=2635

min(f)=-3528

sum(f)=-1951

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文件如下:

函数文件:

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=

+

b=

+

c=

+

d=

-

2.一物理系统可用下列方程组来表示:

从键盘输入m1、m2和θ的值,求a1、a2、N1和N2的值。

其中g取,输入θ时以角度为单位。

要求:

定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文件。

解:

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=;

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)

运算结果:

输入m1=1

输入m2=1

输入theta=30

X=

3.一个自然数是素数,且它的数字位置经过任意对换后仍为素数。

例如13是绝对素数。

试求所有两位绝对素数。

要求:

定义一个判断素数的函数文件。

解:

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

4.设

,编写一个MATLAB函数文件,使得调用f(x)时,x可用矩阵代入,得出的f(x)为同阶矩阵。

解:

函数文件:

functionf=fx(x)

%fxfx求算x矩阵下的f(x)的函数值

A=+(x-2).^2;

B=+(x-3).^4;

f=1./A+1./B;

 

命令文件:

clc;

x=input('输入矩阵x=');

f=fx(x)

运算结果:

>>x=input('输入矩阵x=');

f=fx(x)

输入矩阵x=[72;125]

f=

5.已知

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

(2)当f(n)=1×2+2×3+3×4+...+n×(n+1)时,求y的值。

解:

(1)

函数文件:

functionf=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=

(2).

函数文件

functions=g(n)

fori=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.掌握绘制二维图形的常用函数。

2.掌握绘制三维图形的常用函数。

3.掌握绘制图形的辅助操作。

二、实验内容

1.设

,在x=0~2π区间取101点,绘制函数的曲线。

解:

M文件如下:

clc;

x=linspace(0,2*pi,101);

y=+3*sin(x)./(1+x.^2));

plot(x,y)

运行结果有:

2.已知y1=x2,y2=cos(2x),y3=y1×y2,完成下列操作:

(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=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文件:

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

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.已知

在-5≤x≤5区间绘制函数曲线。

解:

M文件:

clc;

x=-5:

:

5;

y=(x+sqrt(pi))/(exp

(2)).*(x<=0)+*log(x+sqrt(1+x.^2)).*(x>0);

plot(x,y)

 

运行结果:

由图可看出,函数在零点不连续。

4.绘制极坐标曲线ρ=asin(b+nθ),并分析参数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个

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1