《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的值:');
i=1:n; y=1./i.^2; f=sum(y); pi=sqrt(f*6)
2. y=0;
n=0; while 1 n=n+1;
y=y+1/(2*n-1); if y>=3 break end end n
y=y-1/(2*n-1)
3. a=input('输入a的值:');
b=input('输入b的值:'); x0=1.0; n=1;
x1=a/(b+x0);
while abs(x1-x0)>=10^(-5)|n<=500 x1=a/(b+x0); x0=x1; n=n+1; end x1
4. f(1)=1;
f(2)=0; f(3)=1; for n=4:100
f(n)=f(n-1)-2*f(n-2)+f(n-3); end
a=max(f) %最大值 b=min(f) %最小值 c=sum(f) %各数之和 d=length(find(f>0)) %正数的个数 e=length(find(f==0)) %零的个数 f=length(find(f<0)) %负数的个数
5. n=0;
s=0;
MATLAB程序设计与应用(刘卫国)》(第二版)-课后实验答案
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)