《MATLAB程序设计与应用(刘卫国)》(第二版) 答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《MATLAB程序设计与应用(刘卫国)》(第二版)实验一MATLAB运算基础
1.(1) z1=2*sin(pi*85/180)/(1+exp(2))
(2)x=[2,1+2i;-0.45,5];
z2=log(x+sqrt(1+x.^2))/2
(3)a=-3.0:0.1:3.0;
z3=0.5*(exp(0.3*a)-exp(-0.3*a)).*sin(a+0.3)+log((0.3+a)/2)
(4)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)
2. A=[12,34,-4;34,7,87;3,65,7];
B=[1,3,-1;2,0,3;3,-2,7];
(1)a=A+6*B
b=A-B+eye(size(A)) %I=eye(size(A))
(2)c=A*B
d=A.*B
(3)e=A^3
f=A.^3
(4)g=A/B
h=B\A
(5)m=[A,B]
n=[A([1,3],:);B^2]
3. A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20;21,22,23,24,25];
B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11];
(1)C=A*B
(2)D=C(3:end,2:end)
4.(1) a=100:999;
b=rem(a,21)==0;
c=find(b);
d=length(c)
(2)ch='Just as Bianhaiman said,Xiehong is ...';
e=find(ch>='A'&ch<='Z');
ch(e)=[]
实验二 MATLAB矩阵分析与处理
1.E=eye(3);
R=rand(3,2);
O=zeros(2,3);
S=diag([1,2]);
A=[E,R+R*S;O,S^2];
a=A^2
2. H=hilb(5);
P=pascal(5);
Hh=det(H)
Hp=det(P)
Th=cond(H)
Tp=cond(P)
3. A=rand(5,5);
a=det(A) %行列式的值
b=trace(A) %行列式的迹
c=rank(A) %行列式的秩
d=norm(A) %行列式的范数
4. A=[-29,6,18;20,5,12;-8,8,5];
[V,D]=eig(A)
5. 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]';
(1)x=inv(A)*b
(2)b1=[0.95,0.67,0.53]';
x=inv(A)*b1
(3)c=cond(A)
6. A=rand(3,3);
B=sqrtm(A)
C=sqrt(A)
实验三选择结构程序设计
1. x=input('请输入x的值:');
if x<0&x~=-3
y=x*x+x-6;
elseif x>=0&x<5&x~=2&x~=3
y=x*x-5*x+6;
else
y=x*x-x-1;
end
y
2.(if语句)
score=input('请输入成绩:');
if score>=0&score<60
disp('E');
elseif score>=60&score<70
disp('D');
elseif score>=70&score<80
disp('C');
elseif score>=80&score<90
disp('B');
elseif score>=90&score<=100
disp('A');
else
disp('您输入的成绩有误,请重新输入!');
end
(switch语句)
score=input('请输入成绩:');
switch fix(score/10)
case num2cell(0:5)
disp('E');
case {6}
disp('D');
case {7}
disp('C');
case {8}
disp('B');
case {9}
disp('A');
otherwise
disp('您输入的成绩有误,请重新输入!'); end
3. a=input('请输入工号:','s');
b=input('请输入该员工的工时数:');
if b>120
y=120*84+(b-120)*(1+15/100)*84;
elseif b<60
y=b*84-700;
else
y=b*84;
end
y
4.a=10+fix(89*rand());
b=10+fix(89*rand());
c=input('请输入一个运算符:','s'); if c=='+'
disp(a+b);
elseif c=='-'
disp(a-b);
elseif c=='*'
disp(a*b);
else
disp(a/b);
end
5. A=rand(5,6);
n=1:5;
n=input('请输入n的值:');
try
B=A(n,:);
catch
B=A(end,:);
end
B
lasterr
实验四循环结构程序设计1.(循环结构)
n=input('请输入n的值:');
y=0;
for i=1:n
y=y+1/i/i;
pi=sqrt(6*y);
end
pi
(向量运算)
n=input('请输入n的值:');