MATLAB程序实验参考答案doc.docx

上传人:b****6 文档编号:4059548 上传时间:2022-11-27 格式:DOCX 页数:18 大小:22.33KB
下载 相关 举报
MATLAB程序实验参考答案doc.docx_第1页
第1页 / 共18页
MATLAB程序实验参考答案doc.docx_第2页
第2页 / 共18页
MATLAB程序实验参考答案doc.docx_第3页
第3页 / 共18页
MATLAB程序实验参考答案doc.docx_第4页
第4页 / 共18页
MATLAB程序实验参考答案doc.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

MATLAB程序实验参考答案doc.docx

《MATLAB程序实验参考答案doc.docx》由会员分享,可在线阅读,更多相关《MATLAB程序实验参考答案doc.docx(18页珍藏版)》请在冰豆网上搜索。

MATLAB程序实验参考答案doc.docx

MATLAB程序实验参考答案doc

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

%实验一MATLAB运算基础

%第一题

%

(1)

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

(2))

%

(2)

x=[2,l+2i;・0.45,5];

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

%(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.05,25.

z4=t/2.*(t>=0&t=l&t<2)+(t.A2-2*t+l).*(t>=2&t<3)

%第二题

A=[1234-4;34787;3657];

B=[l3-l;203;3-27];

A+6*B

A-B+eye(size(A))

A*B“

A.*B

AA3

A.A3

A/B

B\A

[A,B]

[A([1,3],:

);BA2]

%第三题

A=[l2345;678910;ll12131415;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==O))

%

(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];

AA2

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=[l/2,l/3,l/4;l/3,l/4,l/5;l/4,l/5,l/6];

b=[0.95,0.67,0.52]*;

x=inv(A)*b

%⑵:

B=[0.95,0.67,0.53]';

x=inv(A)*B

%(3):

cond(A)

%第五题方法二:

A=hilb(4)

A(:

l)=[]

A(4,:

)=[]

B=[0.95,0.67,0.52]';

X=inv(A)*B

Bl=[0.95,0.67,0.53]';

Xl=inv(A)*Bl

N=cond(B)

Nl=cond(Bl)

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

%第六题

A=[l,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];

elseifx6>=O&xOv5&x6〜=2&x0〜=3

y=[y,xO*xO-5*xO+6];

else

y=[y,x0*x0-x0-l];

end

end

X%输出所有X

y%输出所有y

%第一题程序二'

x=[-5,-3,l,2,2.5,3,5];

y=[];

fora=l:

7

ifx(a)v0&x(a)〜=・3

y=[y,(x(a))A2+x(a)-6];

elseifx(a)>=0&x(a)v5&x(a)〜=2&x(a)〜=3

y=[y,(x(a))A2-5*x(a)+6];

else

y=[y,x(a)*x(a)・x(a)-l];

end

end

%第二题程序一:

x=input("请输入一个百分制成绩:

,);

ifx>100|x<0

dispC您输入的成绩不是百分制成绩,请重新输入。

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分之I、旬):

*);

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=inputf该员工工作时数是:

ifh>120

x=(h.120)*84*(l+0.15)+120*84;

elseifh<60

x=h*84-700;

else

x=h*84;

end

disp([num2str(n)/号员工7的应发工资为,,num2str(x)]);

%为囱题(还可以用switch语句实现)

a=fix(10+(99-10)*rand(l,2))%产生两个随机整数

x=a⑴;

y=a

(2);、、一

t=input(请输入运算符号:

ift=='+'

z=x+y;

elseift=='・'

z=x-y;

elseift==*

z=x*y;

elseift==7'

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([*矩阵的第0um2str(n),行为:

*])

a(n,:

end

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

%第一题程序一

s=0;

n=input(^n=?

^);

fori=l:

n

s=s+l/i/i;

end

PI=sqrt(6*s)

Pi

%第一题程序二

n=input('n=?

');

a=l:

n;

b=l./a.A2;

PI=sqrt(6*sum(b))

Pi

%第二题

y=o;

n=l;

while(y<3)

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

n=n+l;

end

y=y-l/(2*(n-l)-l)

n=n-2

%昆三题

a=input('a=?

');

b=input(^b=?

^);

Xn=l;

Xnl=a/(b+Xn);

n=0;

whileabs(Xn1-Xn)>1e-5

Xn=Xnl;

Xnl=a/(b+Xn);

n=n+l;

ifn==500

break;

end

end

n

Xnl

rl=(-b+sqrt(b*b+4*a))/2

r2=(-b-sqrt(b*b+4*a))/2

%第四题

fori=l:

100

ifi==l

f(i)=l;

elseifi==2

f(i)=0;

elseifi==3

f(i)=l;

else

f(i)=Hi-l)-2*f(i-2)+f(i-3);

end

end

max(f)

min(f)

sum(f)

length(find(f>0))

length(find(f==O))

length(find(f<0))

%第五题:

s=O;n=O;

fori=2:

49

b=i*(i+l)-l;

m=fix(sqrt(b));

forj=2:

m

ifrem(b,j)==0

break

end

end

ifj==m

n=n+l;

s=s+b;

end

end

n

s

%实验五函数文件

%第_题

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

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

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

y=matl(l+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=[O,9.8*m,O,6.§*n];

C=inv(A)*B';

a=C(l);

b=C⑵;

N=C⑶;

M=C(4);

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

m]=input('m]=');

m2=input('m2=');

theta=input(,theta=,);

[al,a2,N1,N2]=shiyanwu2(ml,m2,theta)

%第二题程序二

functionX=mat2(ml,m2,t)

g=9.8;

A=[ml*cos(t*pi/l80),-ml,-sin(t*pi/l80),0;ml*sin(t*pi/l80),0,cos(t*pi/l80),0;0,m2,-sin(t*pi/l80)

0;0,0,・cos(t*pi/180),1];

B=[0;ml*g;0;m2*g];

X=inv(A)*B;

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

X=mat2(l,l,60)

%第=题

functionflag=mat3(x)

flag=l;

fori=2:

sqrt(x)

ifrem(x,i)==0

flag=O;

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=l./((x-2).A2+0.1)+1./((x-3).A4+0.01);

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

y=fx

(2)

a=[l,2;3,4];

y=fx(a)

%第五题

%(D

functionfl=mat5(n)

fl=n+10*log(n*n+5);

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

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

%

(2)方法一

functionf2=mat6(n)

f2=0;

fori=l:

n

f2=f2+i*(i+l);

end

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

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

%

(2)歹法二

functionf2=mat7(n)

i=l:

n;

m=i.*(i+l);

f2=sum(m);

end

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

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

%实验六高层绘图操作

%第一题:

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

y=(0.5+3*sin(x)./(l+x.A2)).*cos(x);

plot(x,y)

%第二题:

%

(1)

x=linspace(-2*pi,2*pi,l00);

yl=x.A2;

y2=cos(2*x);

y3=yl.*y2;

plot〔x,yl,3,x,y2,k「,x,y3」y--,);

text(4,16,Meftarrowyl=xA2*);

text(6*pi/4,-1/\downarrowy2=cos(2*x)');

text(-1.5*pi,-2.25*pi*pi,*\uparrowy3=yl*y2');

%

(2),

x=linspace(-2*pi,2*pi,100);

yl=x.A2;

y2=cos(2*x);

y3=y].*y2;

subplot(1,3,1);%分区

plot(x,yl);

title('yl=xA2');%设置标题

subplot(l,3,2);

plot(x,y2);

title(,y2=cos(2*x)*);

subplot(l,3,3);

plot(x,y3);

title(*y3=xA2*cos(2*x)*);

%(3)

x=linspace(-2*pi,2*pi,20);

yl=x.A2;

subplot(2,2,l);%分区

bar(x,yl);

titlefyl=xA2的条形图,);%设置标题

subplot(2,2,2);

stairs(x,yl);

title(*yl=xA2的阶梯图

subplot(2,2,3);

stem(x,yl);

title(*yl=xA2的杆图);

subplot(2,2,4);

fill(x,y1如果少了F则会出错

titleCyl=xQ的填充图);

%其他的函数照样做。

%第三题

x—_5.001.5.

y=[];%•起焰'设y为空向量

forxO=x

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

y=[y,(xO+sqrt(pi))/exp⑵];%将x对应的函数值放到y中

y=[y,0.5*log(xO+sqrt(l+xOA2))];end

a=input('a=');

b^input(^');

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.A2+y.A2)/4);

subplot(2,l,l);

surf(x,y,z);

subplot(2,l,2);

contour3(x,y,z,50);%其中50为高度的等级数,越大越密

%第六题

ezsurf('cos(s)*cos(t)7cos(s)*sin(t)7sin(s),,[0,0.5*pi,0,1.5*pi]);%利用ezsurf隐函数

shadinginterp%遂行插值着色处理

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

%第一题

%

(1)

A=rand(1,30000);

b=mean(A)

std(A,0,2)

%Q)

max(A)

min(A)

%(3)

n=0;

fori=l:

30000ifA(i)>0.5n=n+l;

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;

tl=[18,20,22,25,30,28,24];t2=[15,19,24,28,34,32,30];Tl=spline(h,tl,x)T2=spline(h,t2,x)%第四题

x=l:

0.1:

101;

yl=logl0(x);

p=polyfit(x,yl,5)

y2=polyval(p,x);

plot(x,yl,?

x,y2,=)%第五题

%

(1)

pl=[l,2,4,0,5];

p2=[l,2];

p3=[l,2,3];

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

%Q)

A=roots(p)

%(3)

A=[-l,1.2,.1.4;0.75,2,3.5;0,5,2.5];

polyval(p,A)

%(4)

polyvalm(p,A)

%实验十五综合实验

%第一题

%定义函数文件

functionzp=fs(z,n)

zp=0;

z=0;

fork=l:

n;

z=l+imag(z)-1.4*real(z)A2+i*real(z)*0.3;

zp=[zp,z];

end

%在主窗口调用该函数:

n=30000;

z=0;

zp=fs(z,n);

 

plot(zp,'p','markersize',2,'color',F)

%第二题

quad('l/sqrt(2*pi)*exp(・x.*x/2)',0,1)

symsx

int(l/sqrt(2*pi)*exp(-x.*x/2),0,1)

%第三题

%定义函数文件

functiondx=apollo(t,x)

mu=l/82.45;

mustar=l-mu;

rl=sqrt((x

(1)+mu)A2+x(3)A2);

r2=sqrt((x

(1)-mustar)A2+x(3)A2);

dx=[x

(2);2*x(4)+x

(1)-mustar*(x

(1)+mu)/r1A3-mu*(x(l)-mustar)/r2A3;

x(4);-2*x

(2)+x(3)-mustar*x(3)/rlA3-mu*x(3)/r2A3];

%在主窗口调用该函数:

x0=[1.2;0;0;-1.04935751];

options=odeset(,reltor,1e-8);

%该命令的另一种写法是options=odeset;options.reltol=1e-8;

[t,y]=ode45(@apollo,[0,20],x0,options);

plot(y(:

l),y(:

3))%绘制x和y图像,也就是卫星的轨迹

titlefAppollo卫星运动轨迹)

xlabel('X')

ylabel(Y)

%第四题

%这是一个力矩平衡问题,可列方程:

500x1,5xcosa=400x2.0xcos(7r/3-a)

%解得a=26.8021°o

%程序一:

迭代法解方程

xl=input('xl=?

');

x=pi/3.0-acos(15.0*cos(x1)/16);

whileabs(x-xl)>=10e-8

xl=x;

x=pi/3.0-acos(15.0*cos(x1)/16);

ifx>pi/3.0

end

disp(,error,);

end

尸xl*180/pi

%程序二:

利用绘图功能

%分别绘制两个小孩所产生力矩随a变化的曲线,两曲线的交点即是跷跷板平衡时的a

%第一个小孩产生的力矩

%第二个小孩产生的力矩

%找平衡点

alpha=linspace(0,pi/2,80000);

ml=500*1.5*cos(alpha);

m2=400*2*cos(pi/3-alpha);1

k=find(abs(ml-m2)

alphaO=alpha(k);

m0=500*i.5*cos(alpha0);

plot(alpha,ml,alpha,m2,alpha。

m0,kp,);

alpha=alpEaO*180/pi%化为角度

%第五题

clear;close;

fplotC18-tA(2/3)',[0,20]);gridon;holdon;

fjplot(,5+t+2*tA(2/3),,[0,20];r,);holdoff;

%发现t约为4

[t,f,h]=fsolve(,18-xA(2/3)-5-x-2*xA(2/3),,4)

%求得t=4.6465

t=linspace(0,t,100);y=18-t.A(2/3)-5-t-2*t.A(2/3);

trapz(t,y)-20

%最大利润6.3232(百万元)

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

当前位置:首页 > 表格模板 > 调查报告

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

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