MATLAB程序设计方案与应用第二版实验参考答案.docx

上传人:b****7 文档编号:9452057 上传时间:2023-02-04 格式:DOCX 页数:33 大小:21.31KB
下载 相关 举报
MATLAB程序设计方案与应用第二版实验参考答案.docx_第1页
第1页 / 共33页
MATLAB程序设计方案与应用第二版实验参考答案.docx_第2页
第2页 / 共33页
MATLAB程序设计方案与应用第二版实验参考答案.docx_第3页
第3页 / 共33页
MATLAB程序设计方案与应用第二版实验参考答案.docx_第4页
第4页 / 共33页
MATLAB程序设计方案与应用第二版实验参考答案.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

MATLAB程序设计方案与应用第二版实验参考答案.docx

《MATLAB程序设计方案与应用第二版实验参考答案.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计方案与应用第二版实验参考答案.docx(33页珍藏版)》请在冰豆网上搜索。

MATLAB程序设计方案与应用第二版实验参考答案.docx

MATLAB程序设计方案与应用第二版实验参考答案

封面

作者:

PanHongliang

仅供个人学习

MATLAB程序设计与应用(第二版)实验参考答案

%实验一MATLAB运算基础

%第一题

%

(1)

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

(2))

%

(2)

x=[2,1+2i。

-0.45,5]。

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

%(3)

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)

%(4)

t=0:

0.5:

2.5。

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

%第二题

A=[1234-4。

34787。

3657]。

B=[13-1。

203。

3-27]。

A+6*B

A-B+eye(size(A))

A*B

A.*B

A^3

A.^3

A/B

B\A

[A,B]

[A([1,3],:

)。

B^2]

%第三题

A=[12345。

678910。

1112131415。

1617181920。

2122232425]

B=[3016。

17-69。

023-4。

970。

41311]

C=A*B

F=size(C)

D=C(F

(1)-2:

F

(1),F

(2)-1:

F

(2))

whos

%第四题

%

(1):

A=100:

999。

B=rem(A,21)。

C=length(find(B==0))

%

(2):

A='lsdhKSDLKklsdkl'。

k=find(A>='A'&A<='Z')。

A(k)=[]

%实验二MATLAB矩阵分析与处理

%第一题

E=eye(3)。

R=rand(3,2)。

O=zeros(2,3)。

S=diag([2,3])。

A=[E,R。

O,S]。

A^2

B=[E,(R+R*S)。

O,S^2]

%第二题

H=hilb(5)

P=pascal(5)

Hh=det(H)

Hp=det(P)

Th=cond(H)

Tp=cond(P)

%第三题:

A=fix(10*rand(5))

H=det(A)

Trace=trace(A)

Rank=rank(A)

Norm=norm(A)

%第四题:

A=[-29,6,18。

20,5,12。

-8,8,5]

[V,D]=eig(A)

%数学意义略

%第五题方法一:

%

(1):

A=[1/2,1/3,1/4。

1/3,1/4,1/5。

1/4,1/5,1/6]。

b=[0.95,0.67,0.52]'。

x=inv(A)*b

%

(2):

B=[0.95,0.67,0.53]'。

x=inv(A)*B

%(3):

cond(A)

%第五题方法二:

A=hilb(4)

A(:

1)=[]

A(4,:

)=[]

B=[0.95,0.67,0.52]'。

X=inv(A)*B

B1=[0.95,0.67,0.53]'。

X1=inv(A)*B1

N=cond(B)

N1=cond(B1)

Na=cond(A)%矩阵A为病态矩阵

%第六题

A=[1,4,9。

16,25,36。

49,64,81]

B=sqrtm(A)

C=sqrt(A)%sqrtm函数是以矩阵为单位进行计算,sqrt函数是以矩阵中的元素进行计算

%实验三选择程序结构设计

%第一题程序一

x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0]。

y=[]。

%建立存放所有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

y%输出所有y

%第一题程序二

x=[-5,-3,1,2,2.5,3,5]。

y=[]。

fora=1:

7

ifx(a)<0&x(a)~=-3

y=[y,(x(a))^2+x(a)-6]。

elseifx(a)>=0&x(a)<5&x(a)~=2&x(a)~=3

y=[y,(x(a))^2-5*x(a)+6]。

else

y=[y,x(a)*x(a)-x(a)-1]。

end

end

%第二题程序一:

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

%第二题程序二:

s=input('请输入一个成绩(0分到100分之间):

')。

%s用于存放成绩

while1%判断输入成绩的合理性

ifs<0|s>100

disp('输入的成绩需在0到100之间,请重新输入:

')

s=input('请输入一个成绩(0分到100分之间):

')。

else

break。

end

end

switchfix(s/10)%对成绩做出等级判断

case{9,10}

disp('A')

case8

disp('B')

case7

disp('C')

case6

disp('D')

otherwise

disp('E')

end

%第三题

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)])。

%第四题(还可以用switch语句实现)

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=rand(5,6)%产生5x6的随机矩阵

n=input('请输入您要输出矩阵的第几行:

')。

ifn>5

disp('超出了矩阵的行数,矩阵的最后一行为:

')

a(5,:

else

disp(['矩阵的第',num2str(n),'行为:

'])

a(n,:

end

%实验四循环结构程序设计

%第一题程序一

s=0。

n=input('n=?

')。

fori=1:

n

s=s+1/i/i。

end

PI=sqrt(6*s)

pi

%第一题程序二

n=input('n=?

')。

a=1:

n。

b=1./a.^2。

PI=sqrt(6*sum(b))

pi

%第二题

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

%第三题

a=input('a=?

')。

b=input('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

%第四题

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)

min(f)

sum(f)

length(find(f>0))

length(find(f==0))

length(find(f<0))

%第五题:

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

%实验五函数文件

%第一题

functiony=mat1(x)%建立函数文件mat1.m

y=[exp(x),log(x),sin(x),cos(x)]。

%在命令窗口调用上述函数文件:

y=mat1(1+i)

%第二题程序一

function[a,b,N,M]=shiyanwu2(m,n,t)

A=[m*cos(t*pi/180),-m,-sin(t*pi/180),0。

m*sin(t*pi/180),0,cos(t*pi/180),0。

0,n,-sin(t*pi/180),0。

0,0,-cos(t*pi/180),1]。

B=[0,9.8*m,0,9.8*n]。

C=inv(A)*B'。

a=C

(1)。

b=C

(2)。

N=C(3)。

M=C(4)。

%在命令窗口调用该函数文件:

m1=input('m1=')。

m2=input('m2=')。

theta=input('theta=')。

[a1,a2,N1,N2]=shiyanwu2(m1,m2,theta)

%第二题程序二

functionX=mat2(m1,m2,t)

g=9.8。

A=[m1*cos(t*pi/180),-m1,-sin(t*pi/180),0。

m1*sin(t*pi/180),0,cos(t*pi/180),0。

0,m2,-sin(t*pi/180),0。

0,0,-cos(t*pi/180),1]。

B=[0。

m1*g。

0。

m2*g]。

X=inv(A)*B。

%在命令窗口调用该函数文件:

X=mat2(1,1,60)

%第三题

functionflag=mat3(x)

flag=1。

fori=2:

sqrt(x)

ifrem(x,i)==0

flag=0。

break。

end

end

%在命令窗口调用该函数文件:

fori=10:

99

j=10*rem(i,10)+fix(i/10)。

ifmat3(i)&mat3(j)

disp(i)

end

end

%第四题

functiony=fx(x)

y=1./((x-2).^2+0.1)+1./((x-3).^4+0.01)。

%在命令窗口调用该函数文件:

y=fx

(2)

a=[1,2。

3,4]。

y=fx(a)

%第五题

%

(1)

functionf1=mat5(n)

f1=n+10*log(n*n+5)。

%在命令窗口中调用该函数文件:

y=mat5(40)/(mat5(30)+mat5(20))

%

(2)方法一

functionf2=mat6(n)

f2=0。

fori=1:

n

f2=f2+i*(i+1)。

end

%在命令窗口中调用该函数文件如:

y=mat6(40)/(mat6(30)+mat6(20))

%

(2)方法二

functionf2=mat7(n)

i=1:

n。

m=i.*(i+1)。

f2=sum(m)。

end

%在命令窗口中调用该函数文件如:

y=mat7(40)/(mat7(30)+mat7(20))

%实验六高层绘图操作

%第一题:

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

y=(0.5+3*sin(x)./(1+x.^2)).*cos(x)。

plot(x,y)

%第二题:

%

(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')。

%如果少了'r'则会出错

title('y1=x^2的填充图')。

%其他的函数照样做。

%第三题

x=-5:

0.01:

5。

y=[]。

%起始设y为空向量

forx0=x

ifx0<=0%不能写成x0=<0

y=[y,(x0+sqrt(pi))/exp

(2)]。

%将x对应的函数值放到y中

else

y=[y,0.5*log(x0+sqrt(1+x0^2))]。

end

end

plot(x,y)

%第四题:

a=input('a=')。

b=input('b=')。

n=input('n=')。

t=-2*pi:

0.01:

2*pi。

r=a*sin(b+n*t)。

polar(t,r)

%第五题

x=linspace(-5,5,21)。

y=linspace(0,10,31)。

[x,y]=meshgrid(x,y)。

%在[-5,5]*[0,10]的范围内生成网格坐标

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)。

%其中50为高度的等级数,越大越密

%第六题

ezsurf('cos(s)*cos(t)','cos(s)*sin(t)','sin(s)',[0,0.5*pi,0,1.5*pi])。

%利用ezsurf隐函数

shadinginterp%进行插值着色处理

%实验七低层绘图操作

%第一题

h=figure('MenuBar','figure','color','r','WindowButtonDownFcn','disp(''LeftButtonPressed'')')

%第二题

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)')

%第三题

t=0:

0.00001:

0.001。

[t,x]=meshgrid(t)。

v=10*exp(-0.01*x).*sin(2000*pi*t-0.2*x+pi)。

axes('view',[-37.5,30])。

h=surface(t,x,v)。

title('v=10*exp(-0.01*x).*sin(2000*pi*t-0.2*x+pi)')。

xlabel(Ct'),ylabel('x'),zlabel('v')

%第四题

x=0:

0.01:

2*pi。

y1=sin(x)。

y2=cos(x)。

y3=tan(x)。

y4=cot(x)。

subplot(2,2,1)。

plot(x,y1)。

subplot(2,2,2)。

plot(x,y2)。

subplot(2,2,3)。

plot(x,y3)。

subplot(2,2,4)。

plot(x,y4)。

%第五题

cylinder(5)。

light('Position',[0,1,1])。

materialshiny

%实验八数据处理与多项式运算

%第一题

%

(1)

A=rand(1,30000)。

b=mean(A)

std(A,0,2)

%

(2)

max(A)

min(A)

%(3)

n=0。

fori=1:

30000

ifA(i)>0.5

n=n+1。

end

end

p=n/30000

%第二题

%

(1)

A=45+51*rand(100,5)。

[Y,U]=max(A)

[a,b]=min(A)

%

(2)

m=mean(A)

s=std(A)

%(3)

sum(A,2)

[Y,U]=max(ans)

[a,b]=min(ans)

%(4)

[zcj,xsxh]=sort(ans)

%第三题

h=6:

2:

18。

x=6.5:

2:

17.5。

t1=[18,20,22,25,30,28,24]。

t2=[15,19,24,28,34,32,30]。

T1=spline(h,t1,x)

T2=spline(h,t2,x)

%第四题

x=1:

0.1:

101。

y1=log10(x)。

p=polyfit(x,y1,5)

y2=polyval(p,x)。

plot(x,y1,':

',x,y2,'-')

%第五题

%

(1)

p1=[1,2,4,0,5]。

p2=[1,2]。

p3=[1,2,3]。

p=p1+[0,conv(p2,p3)]%为使两向量大小相同,所以补0

%

(2)

A=roots(p)

%(3)

A=[-1,1.2,-1.4。

0.75,2,3.5。

0,5,2.5]。

polyval(p,A)

%(4)

polyvalm(p,A)

实验十

程序:

x=sym('6')。

y=sym('5')。

z=(x+1)/(sqrt(3+x)-sqrt(y))

1、分解因式

(1)

程序:

symsxy。

A=x^4-y^4。

factor(A)

(2)

程序:

factor(sym('5135'))

3、化简表达式

(1)

程序:

symsbeta1beta2

y=sin(beta1)*cos(beta2)-cos(beta1)*sin(beta2)

simple(y)

(2)

程序:

symsx

y=(4*x^2+8*x+3)/(2*x+1)

simple(y)

5、用符号方法求下列极限或导数

(1)

程序:

symsx

f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/(sin(x))

limit(f)

(2)

程序:

symsx

y=(sqrt(pi)-sqrt(acos(x)))/(sqrt(x+1))。

limit(f,x,-1,'right')

(3)

程序:

symsx

y=(1-cos(2*x))/x。

y1=diff(y)

y2=diff(y,x,2)

6、用符号方法求下列积分

(1)

程序:

symsx

f=1/(1+x^4+x^8)

int(f)

(2)

程序:

symsx

f=1/(((asin(x))^2)*sqrt(1-x^2))

int(f)

(3)

程序:

symsx

f=(x^2+1)/(x^4+1)

int(f,x,0,inf)

(4)

程序:

symsx

f=exp(x)*(1+exp(x))^2

y=int(f,x,0,log

(2))

double(y)

0

0

版权申明

本文部分内容,包括文字、图片、以及设计等在网上搜集整理。

版权为潘宏亮个人所有

Thisarticleincludessomeparts,includingtext,pictures,anddesign.CopyrightisPanHongliang'spersonalownership.

用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。

除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。

Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebythe

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

当前位置:首页 > 工程科技 > 能源化工

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

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