MATLAB第二版课后答案unit3-8 unit3
实验指导
1、 n=input('请输入一个三位数:');
a=fix(n/100);
b=fix((n-a*100)/10);
c=n-a*100-b*10;
d=c*100+b*10+a
2(1)
n=input('请输入成绩');
switch n
case num2cell(90:100)
p='A';
case num2cell(80:89)
p='B';
case num2cell(70:79)
p='C';
case num2cell(60:69)
p='D';
otherwise
p='E';
end
price=p
(2)n=input('请输入成绩');
if n>=90&n<=100
p='A';
elseif n>=80&n<=89
p='B';
elseif n>=70&n<=79
p='C';
elseif n>=60&n<=69
p='D';
else
p='E';
end
price=p
(3)try
n;
catch
price='erroe'
end
3
n=[1,5,56,4,3,476,45,6,3,76,45,6,4,3,6,4,23,76,908,6]; a=n(1);
b=n(1);
for m=2:20
if n(m)>a
a=n(m);
elseif n(m)
b=n(m);
end
end
max=a
min=b
法2
n=[1,5,56,4,3,476,45,6,3,76,45,6,4,3,6,4,23,76,908,6];
min=min(n)
max=max(n)
4
b=[::];
for n=1:61
a=b(n);
y(n)=(exp*a)-exp*a))/2*sin(a++log(+a)/2);
end
y
5
y1=0;
y2=1;
n=input('请输入n的值:');
for i=1:n
y1=y1+1/i^2;
y2=y2*((4*i*i)/((2*i-1)*(2*i+1)));
end
y1
y2
6
A=[1,1,1,1,1,1;2,2,2,2,2,2;3,3,3,3,3,3;4,4,4,4,4,4;5,5,5,5,5,5;6,6,6,6,6,6]; n=input('请输入n的值:');
if n<=5&n>=0
disp(A([n],:));
elseif n<0
disp(lasterr);
else disp(A([6],:));
disp(lasterr);
end
7(1)
f=[];
for n=1:40
f(n)=n+10*log(n^2+5);
end
y=f(40)/(f(30)+f(20))
(2)
f=[];a=0;
for n=1:40
f(n)=a+n*(n+1);
a=f(n);
end
y=f(40)/(f(30)+f(20))
8
y=0;
m=input('输入m的值:');
n=input('输入n值:');
for i=1:n
y=y+i^m;
end
y
************************************************************
function s=shi8_1(n,m)
s=0;
for i=1:n
s=s+i^m;
end
************************************************************ shi8_1(100,1)+shi8_1(50,2)+shi8_1(10,1/2)
思考练习
2
N=[1,2,3,4,5];
2.*N
N./2
1./N
1./N.^2
3
s=fix(100*rand(1,20)*9/10+10)
y=sum(s)/20
j=0;
for i=1:20
if s(i) j=j+1; A(j)=s(i); else continue; end end A 4 y1=0;y2=0; n=input('请输入n的值:'); for i=1:n y1=y1+-(-1)^i/(2*i-1); y2=y2+1/4^i; end y1 y2 unit4 实验指导 1(1) x=-10::10; y=x-x.^3./6; plot(x,y) (2) x=-10::10; ezplot('x^2+2*y^2-64',[-8,8]); grid on; 2 t=-pi:pi/10:pi; y=1./(1+exp(-t)); subplot(2,2,1);bar(t,y); title('条形图(t,y)'); axis([-pi,pi,0,1]); subplot(2,2,2); stairs(t,y,'b'); title('阶梯图(t,y)'); axis([-pi,pi,0,1]); subplot(2,2,3); stem(t,y,'k'); title('杆图(t,y)'); axis([-pi,pi,0,1]); subplot(2,2,4); loglog(t,y,'y'); title('对数坐标图(t,y)'); 3(1) t=0:pi/50:2*pi; r=5.*cos(t)+4; polar(t,r); title('\rho=5*cos\theta+4');(2) t=-pi/3:pi/50:pi/3; r=5.*((sin(t)).^2)./cos(t); polar(t,r); 4(1) t=0:pi/50:2*pi; x=exp(-t./20).*cos(t); y=exp(-t./20).*sin(t); z=t; plot3(x,y,z); grid on; (2) [x,y]=meshgrid(-5:5); z=zeros(11)+5; mesh(x,y,z); shading interp; 5 [x,y,z]=sphere(20); surf(x,y,z); axis off; shading interp; m=moviein(20); for i=1:20 axis([-i,i,-i,i,-i,i]) m(:,i)=getframe; end movie(m,4); 思考练习 2(1) x=-5::5; y=(1./(2*pi)).*exp((-(x.^2))/2); plot(x,y); (2) t=-2*pi::2*pi; x=t.*sin(t); y=t.*cos(t); plot(x,y); grid on; 3 t=0:pi/1000:pi; x=sin(3.*t).*cos(t); y1=sin(3.*t).*sin(t); y2=2.*; plot(x,y1,'k',x,y2); hold on; k=find(abs(y1-y2)<1e-2); x1=x(k); y3=2.*; plot(x1,y3,'rp'); 4 x=-2::2; y=sin(1./x); subplot(2,1,1); plot(x,y); subplot(2,1,2); fplot('sin(1./x)',[-2,2],1e-4); 5(1) i=-4*pi::10; j=12./sqrt(i); polar(i,j); title('{\rho}=12/sqrt(\theta)') (2) a=-pi/6::pi/6; b=3.*asin(a).*cos(a)./((sin(a)).^3+(cos(a)).^3); polar(a,b); 6(1) [u,v]=meshgrid(-4::4); x=3.*u.*sin(v); y=2.*u.*cos(v); z=4.*u.^2; subplot(2,1,1); mesh(x,y,z); subplot(2,1,2); surf(x,y,z); (2) [x,y]=meshgrid(-3::3); z=-5./(1+x.^2+y.^2); subplot(1,2,1); mesh(x,y,z); subplot(1,2,2); surf(x,y,z); unit5 实验指导 1 A=randn(10,5) x=mean(A) y=std(A) Max=max(max(A)) Min=min(min(A)) Sumhang=sum(A,2) SumA=sum(Sumhang) B=sort(A); C=sort(B,2,'descend'); C 2(1) a=0:15:90; b=a./180.*pi; s=sin(b) c=0:15:75; d=c./180.*pi; t=tan(d) e=input('请输入想计算的值:'); S=sin(e/180*pi) T=tan(e/180*pi) S1=interp1(a,s,e,'spline') T1=interp1(c,t,e,'spline') P1=polyfit(a,s,5); P2=polyfit(c,t,5); S2=polyval(P1,e) T2=polyval(P2,e) (2) n=[1,9,16,25,36,49,64,81,100]; N=sqrt(n); x=input('ji suan zhi : '); interp1(n,N,x,'cubic') 3 N=64; T=5; t=linspace(0,T,N); h=exp(-t); dt=t(2)-t(1); f=1/dt; X=fft(t); F=X(1:N/2+1); f=f*(0:N/2)/N; plot(f,abs(F),'-*') 4 P=[2,-3,0,5,13]; Q=[1,5,8]; p=polyder(P) q=polyder(P,Q) [a,b]=polyder(P,Q) 5 P1=[1,2,4,0,5]; P2=[0,1,2]; P3=[1,2,3]; P=P1+conv(P2,P3) X=roots(P) A=[-1,,;,2,;0,5,]; p=polyval(P,A) 思考练习 4 A=rand(1,30000); a=mean(A) b=std(A) Max=max(A) Min=min(A) n=0; for i=1:30000 if(A(i)> n=n+1; end end n y=n/30000 5 p=[45,74,54,55,14;78,98,45,74,12;87,98,85,52,65] [M,S]=max(p) [N,H]=min(p) junzhi=mean(p,1) fangcha=std(p,1,1) zong=sum(p,2); [Max,wei]=max(zong) [Min,wei]=min(zong) [zcj,xsxh]=sort(zong,'descend') 6 x=[1:10:101]; y=[0,,,,,,,,,,]; [p,s]=polyfit(x,y,5) a=1:5:101; y1=polyval(p,a); plot(x,y,':o',a,y1,'-*') unit6 实验指导 1 A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; p=[,,]'; x=A\p A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; p=[,,]'; x=A\p cond(A) 2(1) x1=fzero(@funx1,-1) function fx=funx1(x) fx=x^41+x^3+1; (2) x2=fzero(@funx2, function fx=funx2(x) fx=x-sin(x)/x; (3) options=optimset('Display','off'); x=fsolve(@fun3,[1,1,1]',options) q=fun3(x) function q=fun3(p) x=p(1); y=p(2); z=p(3); q(1)=sin(x)+y^2+log(z)-7; q(2)=3*x+2^y-z^3+1; q(3)=x+y+z-5; t0=0; tf=5; y0=1; [t,y]=ode23(@fun4,[t0,tf],y0); t' y' function yp=fun4(t,y) yp=-+sin(10*t))*y; (2) t0=0; tf=5; y0=1; [t,y]=ode23(@fun5,[t0,tf],y0); t' y' function yp=fun5(t,y) yp=cos(t)-y/(1+t^2); 4 x=fminbnd(@mymin,0,2); -mymin(x) function fx=mymin(x) fx=-(1+x.^2)/(1+x.^4); 5 options=optimset('Display','off'); [x,fval]=fmincon(@fun6,[0,0,0],[],[],a,b,lb,ub) function f=fun6(x) f=-(sqrt(x(1))+(400-x(1))*+(sqrt(x(2))+(400-x(1))*(2))*+sqrt(3)+(((400-x(1) )*(2))*(3))*+sqrt(x(x4))); 思考练习 1(1) A=[2,3,5;3,7,4;1,-7,1]; B=[10,3,5]'; C1=inv(A)*B C2=A\B [L,U]=lu(A); x=U\(L\B) (2) A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2]; B=[-4,13,1,11]'; C1=inv(A)*B C2=A\B [L,U]=lu(A); x=U\(L\B) 2(1) x1=fzero(@funx1, function fx=funx1(x) fx=3*x+sin(x)-exp(x); (2) x1=fzero(@funx2,1) function fx=funx2(x) fx=x-1/x+5; (3) options=optimset('Display','off'); x=fsolve(@fun3,[3,0]',options) q=fun3(x) function q=fun3(p) x=p(1); y=p(2); q(1)=x^2+y^2-9; q(2)=x+y-1; 3(1) t0=0; tf=5; y0=[0,1]; [t,y]=ode45(@vdpol,[t0,tf],y0); [t,y] function ydot=vdpol(t,y); ydot(1)=(2-3*y(2)-2*t*y(1))./(1+t^2); ydot(2)=y(1); ydot=ydot'; (2) t0=0; tf=5; y0=[1;0;2]; [t,y]=ode45(@vdpoll,[t0,tf],y0); [t,y] function ydot=vdpoll(t,y); ydot(1)=cos(t)-y(3)./(3+sin(t))+5*y(1).*cos(2*t)/((t+1).^2)-y(2); ydot(2)=y(1); ydot(3)=y(2); ydot=ydot'; 4 x=fminbnd(@mymin,0,pi); -mymin(x) function fx=mymin(x) fx=-sin(x)-cos(x.^2); 5 [x,y1]=fminbnd(@mymax,0,; -y1 function fx=mymax(x); fx=-(9*x+4*x.^3-12*x.^2); unit7 实验指导 1(1) format long fx=inline('sin(x)./x'); [I,n]=quadl(fx,0,2,1e-10) (2) format long fx=inline('1./(.^2+-1./(.^2+-6'); [I,n]=quad(fx,0,1,1e-10) 2(1) global ki; ki=0; I=dblquad(@fxy,0,1,0,1) ki (2) f=inline('abs(cos(x+y))','x','y'); I=dblquad(f,0,pi,0,pi) 3 X=::; F=[,,,,,,]; trapz(X,F) 4 p=0:pi/5:2*pi; for n=1:3 n DX=diff(sin(p),n) end 5 f=inline('sin(x)./(x+cos(2.*x))'); g=inline('(cos(x).*(x+cos(2*x))-sin(x).*(1-2.*sin(2*x)))/(x+cos(2.*x)).^2') ; x=-pi::pi; p=polyfit(x,f(x),5); dp=polyder(p); dpx=polyval(dp,x); %求dp在假设点的函数值 dx=diff(f([x,]))/; %直接对f(x)求数值导数 gx=g(x); %求函数f的导函数g在假设点的导数 plot(x,dpx,x,dx,'.',x,gx,'-'); %作图 思考练习 2 format long fx=inline('1./(1+x.^2)'); [I,n]=quad(fx,-Inf,Inf,1e-10) [I,n]=quadl(fx,-Inf,Inf,1e-10) x=-100000:100000; y=1./(1+x.^2); trapz(x,y) format short 3(1) format long fx=inline('log(1+x)./(1+x.^2)'); [I,n]=quad(fx,0,1,1e-10) (2) format long fx=inline('sqrt(cos(t.^2)+4*sin((2*t).^2)+1)'); [I,n]=quad(fx,0,2*pi,1e-10) 4 f=inline('4.*x.*z.*exp(-z.^2.*y-x.^2)'); I=triplequad(f,0,pi,0,pi,0,1) 5 f=inline('sin(x)'); g=inline('cos(x)'); x=0::2*pi; 《MATLAB及应用》实验指导书《MATLAB及应用》实验指导书 班级:T1243-7 姓名:柏元强 学号:20120430724 总评成绩: 汽车工程学院 电测与汽车数字应用中心 目录 实验04051001 MATLAB语言基础 (1) 实验04051002 MATLAB科学计算及绘图 (18) 实验04051003 MATLAB综合实例编程 (31) 实验04051001 MATLAB语言基础 1实验目的 1)熟悉MATLAB的运行环境 2)掌握MATLAB的矩阵和数组的运算 3)掌握MATLAB符号表达式的创建 4)熟悉符号方程的求解 2实验内容 第二章 1.创建double的变量,并进行计算。 (1)a=87,b=190,计算 a+b、a-b、a*b。 clear,clc a=double(87); b=double(190); a+b,a-b,a*b (2)创建 uint8 类型的变量,数值与(1)中相同,进行相同的计算。 clear,clc a=uint8(87); b=uint8(190); a+b,a-b,a*b 2.计算: (1) () sin 60 (2) e3 (3) 3cos 4??π ??? clear,clc a=sind(60) b=exp(3) c=cos(3*pi/4) 3.设2u =,3v =,计算: (1) 4 log uv v (2) () 2 2 e u v v u +- (3) clear,clc u=2;v=3; a=(4*u*v)/log(v) b=((exp(u)+v)^2)/(v^2-u) c=(sqrt(u-3*v))/(u*v) 4.计算如下表达式: (1) ()() 3542i i -+ (2) () sin 28i - clear,clc (3-5*i)*(4+2*i) sin(2-8*i) 数学实验答案 Chapter 1 Page20,ex1 (5) 等于[exp(1),exp(2);exp(3),exp(4)] (7) 3=1*3, 8=2*4 (8) a为各列最小值,b为最小值所在的行号 (10) 1>=4,false, 2>=3,false, 3>=2, ture, 4>=1,ture (11) 答案表明:编址第2元素满足不等式(30>=20)和编址第4元素满足不等式(40>=10) (12) 答案表明:编址第2行第1列元素满足不等式(30>=20)和编址第2行第2列元素满足不等式(40>=10) Page20, ex2 (1)a, b, c的值尽管都是1,但数据类型分别为数值,字符,逻辑,注意a与c相等,但他们不等于b (2)double(fun)输出的分别是字符a,b,s,(,x,)的ASCII码 Page20,ex3 >> r=2;p=0.5;n=12; >> T=log(r)/n/log(1+0.01*p) Page20,ex4 >> x=-2:0.05:2;f=x.^4-2.^x; >> [fmin,min_index]=min(f) 最小值最小值点编址 >> x(min_index) ans = 0.6500 最小值点 >> [f1,x1_index]=min(abs(f)) 求近似根--绝对值最小的点 f1 = 0.0328 x1_index = 24 >> x(x1_index) ans = -0.8500 >> x(x1_index)=[];f=x.^4-2.^x; 删去绝对值最小的点以求函数绝对值次小的点 >> [f2,x2_index]=min(abs(f)) 求另一近似根--函数绝对值次小的点 f2 = 0.0630 x2_index = 65 >> x(x2_index) ans = 1.2500 第2章习题参考答案 1.创建double的变量,并进行计算。 (1)a=87,b=190,计算a+b、a-b、a*b。 (2) 创建uint8 类型的变量,数值与(1)中相同,进行相同的计算。参考答案: (1) >> a=87 a = 87 >> b=190 b = 190 >> a+b ans = 277 >> a-b ans = -103 >> a*b ans = 16530 (2) >> c=uint8(87) c = 87 >> d=uint8(190) d = 190 >> c+d ans = 255 >> c-d ans = >> c*d ans = 255 2.计算: (1) () sin60o (2) e3 (3) 3cos 4??π ??? 参考答案: (1) >> sind(60) ans = 0.8660 (2) >> exp(3) ans = 20.0855 (3) >> cos(3*pi/4) ans = -0.7071 3.设2u =,3v =,计算: (1) 4log uv v (2) ()22e u v v u +- (3) 参考答案: (1) >> u=2; >> v=3; >> 4*u*v/log(v) ans = 21.8457 (2) >> (exp(u)+v)^2/(v^2-u) ans = 15.4189 (3) >> sqrt(u-3*v)/(u*v) ans = 0 + 0.4410i 4.计算如下表达式: (1) ()() i i -+ 3542 (2) () - sin28i 参考答案: (1) >> (3-5*i)*(4+2*i) ans = 22.0000 -14.0000i (2) >> sin(2-8*i) ans = 1.3553e+03 + 6.2026e+02i 5.判断下面语句的运算结果。 (1)4 < 20 (2)4 <= 20 (3)4 == 20 (4)4 ~= 20 (5)'b'<'B' 参考答案: (1) >> 4<20 ans = 1 (2) >> 4<=20 ans = 1 (3) >> 4==20 ans = (4) >> 4~=20 ans = 1 (5) >> 'b'<'B' P16 Q2: 计算表达式()2 tan arccos x x -在0.25x =和0.78x π =时的函数值。 function y=jie(x) y=tan(-x.^2)*acos(x); >> jie(0.25) ans = -0.0825 >> jie(0.78*pi) ans = 0 + 0.4418i Q3:编写M 命令文件,求5010 2 1 1 1k k k k ==+ ∑∑ 的值。 a=0;b=0; for i=1:50 a=a+i*i; end for j=1:10 b=b+1/j; end c=a+b; >> c c = 4.2928e+004 P27 Q2:矩阵1234567 8 9A ????=??????,4 685563 2 2B ?? ?? =? ????? ,计算A B *,.A B *,并比较两者的区别。 >> A=[1 2 3;4 5 6;7 8 9]; >> B=[4 6 8;5 5 6;3 2 2]; >> A*B ans = 23 22 26 59 61 74 95 100 122 >> A.*B ans = 4 12 24 20 25 36 21 16 18 A*B表示A与B两矩阵相乘。 A.*B表示A与B对应元素相乘。 P34 Q2:编写一个转换成绩等级的程序,其中成绩等级转换标准为:考试分数在[] 90,100显示为优秀;分数在[) 0,60的 60,80的显示为及格;分数在[) 80,90的显示为良好;分数在[) 显示为不及格。 if x>=90 disp('优秀'); elseif x>=80 disp('良好'); elseif x>=60 disp('及格'); else disp('不及格'); end >> x=85 x = 85 良好 第2章符号运算 习题2及解答 1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度” 对象,还是“符号”符号对象 3/7+; sym(3/7+; sym('3/7+'); vpa(sym(3/7+) 〖目的〗 不能从显示形式判断数据类型,而必须依靠class指令。 〖解答〗 c1=3/7+ c2=sym(3/7+ c3=sym('3/7+') c4=vpa(sym(3/7+) Cs1=class(c1) Cs2=class(c2) Cs3=class(c3) Cs4=class(c4) c1 = c2 = 37/70 c3 = c4 = Cs1 = double Cs2 = sym Cs3 = sym Cs4 = sym 2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认 为是自由符号变量. sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)') 〖目的〗 理解自由符号变量的确认规则。 〖解答〗 symvar(sym('sin(w*t)'),1) ans = w symvar(sym('a*exp(-X)'),1) ans = a symvar(sym('z*exp(j*th)'),1) ans = z 5求符号矩阵???? ??????=3332 31 232221 131211 a a a a a a a a a A 的行列式值和逆,所得结果应采用“子表达式置换”简洁化。 〖目的〗 理解subexpr 指令。 〖解答〗 A=sym('[a11 a12 a13;a21 a22 a23;a31 a32 a33]') DA=det(A) IA=inv(A); [IAs,d]=subexpr(IA,d) A = [ a11, a12, a13] [ a21, a22, a23] [ a31, a32, a33] DA = a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31 IAs = [ d*(a22*a33 - a23*a32), -d*(a12*a33 - a13*a32), d*(a12*a23 - a13*a22)] [ -d*(a21*a33 - a23*a31), d*(a11*a33 - a13*a31), -d*(a11*a23 - a13*a21)] [ d*(a21*a32 - a22*a31), -d*(a11*a32 - a12*a31), d*(a11*a22 - a12*a21)] d = 1/(a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31) 8(1)通过符号计算求t t y sin )(=的导数 dt dy 。(2)然后根据此结果,求- =0t dt dy 和2 π = t dt dy 。 〖目的〗 diff, limit 指令的应用。 如何理解运行结果。 〖解答〗 syms t 第1章 MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB系统由那些部分组成? MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 1.9 在MATLAB中有几种获得帮助的途径? . 实验一: T1: %%第一小题 z1=2*sin(85*pi/180)/(1+exp(2)) %%第二小题 x=[2,1+2i;-0.45,5]; z2=1/2*log(x+sqrt(1+x.^2)); z2 %%第三小题 a=-3.0:0.1:3.0; z3=1/2*(exp(0.3*a)-exp(-0.3*a)).*sin(a+ 0.3)+log((0.3+a)/2) %%第四题 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) T2: A=[12,34,-4;34,7,87;3,65,7] B=[1,3,-1;2,0,3;3,-2,7] disp ('A+6*B='); disp(A+6*B); disp('A-B+I=');disp(A-B+eye(3)); disp('A*B='); disp(A*B); disp('A.*B='); disp(A.*B); disp('A^3='); disp(A^3); disp('A.^3='); disp(A.^3); disp('A/B='); disp(A/B); disp('B\A='); disp(B\A); disp('[A,B]='); disp([A,B]); disp('[A([1,3],:);B^2]='); disp([A([1,3],:);B^2]); T3: z=1:25; A=reshape(z,5,5)'; B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11]; C=A*B 第1章MATLAB概论 1.1与其他计算机语言相比较,MA TLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MA TLAB系统由那些部分组成? MATLAB系统主要由开发环境、MA TLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 在安装MA TLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 1.4 MA TLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MA TLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 1-1、基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。 小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 小提示: MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*4^2); 若要显示变数y的值,直接键入y即可: >>y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。 下表即为MATLAB常用的基本数学函数及三角函数: 小整理:MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 第一次练习 教学要求:熟练掌握Matlab 软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab 软件解决微积分、线性代数与解析几何中的计算问题。 补充命令 vpa(x,n) 显示x 的n 位有效数字,教材102页 fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形 在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上) 1.1 计算30sin lim x mx mx x →-与3 sin lim x mx mx x →∞- syms x limit((902*x-sin(902*x))/x^3) ans = 366935404/3 limit((902*x-sin(902*x))/x^3,inf) ans = 0 1.2 cos 1000 x mx y e =,求''y syms x diff(exp(x)*cos(902*x/1000),2) ans = (46599*cos((451*x)/500)*exp(x))/250000 - (451*sin((451*x)/500)*exp(x))/250 1.3 计算 22 11 00 x y e dxdy +?? dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1) ans = 2.1394 1.4 计算4 2 2 4x dx m x +? syms x int(x^4/(902^2+4*x^2)) ans = (91733851*atan(x/451))/4 - (203401*x)/4 + x^3/12 1.5 (10)cos ,x y e mx y =求 syms x diff(exp(x)*cos(902*x),10) ans = -356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x) 1.6 0x =的泰勒展式(最高次幂为4). Matlab 基础练习题 常量、变量、表达式 1、 MATLAB 中,下面哪些变量名是合法的?( ) (A )_num (B )num_ (C )num- (D )-num 2、 在MA TLAB 中,要给出一个复数z 的模,应该使用( )函数。 (A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、 下面属于MATLAB 的预定义特殊变量的是?( ) (A )eps (B )none (C )zero (D )exp 4、 判断:在MA TLAB 的内存工作区中,存放一个英文字符 'a' 需要占用1个字节,存放 一个中文字符‘啊’需要占用2个字节。( 错,都是2个字节 ) 5、 判断:MA TLAB 中,i 和j ( 对 ) 6、 判断:MA TLAB 中,pi 代表圆周率,它等于3.14。( 错,后面还有很多位小数 ) 7、 在MA TLAB 中,若想计算的5 1)3.0sin(21+= πy 值,那么应该在MA TLAB 的指令窗中 输入的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。 8、 在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字 节。 9、 在MA TLAB 中,inf 的含义是__无穷大__,nan 的含义是__非数(结果不定)___。 数组 1、 在MA TLAB 中,X 是一个一维数值数组,现在要把数组X 中的所有元素按原来次序 的逆序排列输出,应该使用下面的( )指令。 (A )X[end:1] (B )X[end:-1:1] (C )X (end:-1:1) (D )X(end:1) 2、 在MA TLAB 中,A 是一个字二维数组,要获取A 的行数和列数,应该使用的MATLAB 的命令是( )。 (A )class(A) (B )sizeof(A) (C )size(A) (D )isa(A) 3、 在MATLAB 中,用指令x=1:9生成数组x 。现在要把x 数组的第二和第七个元素都 赋值为0,应该在指令窗中输入( ) (A )x([2 7])=(0 0) (B )x([2,7])=[0,0] (C )x[(2,7)]=[0 0] (D )x[(2 7)]=(0 0) 4、 在MA TLAB 中,依次执行以下指令:clear;A=ones(3,4); A(:)=[-6:5];这时, 若在指令窗中输入指令b=A(:,2)',那么,MATLAB 输出的结果应该是( ) (A )b = -3 -2 -1 (B )b = -2 -1 0 1 (C )b = -5 -1 3 (D )b = -5 -2 1 4 5、 在MA TLAB 中,A = 1:9,现在执行如下指令L1 = ~(A>5),则MATLAB 的执行结果应 该是L1 =___ 1 1 1 1 1 0 0 0 0___。 第4章数值运算 习题 4 及解答 1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff 或数值梯度gradient指令计算)(t y'曲线绘制 y',然后把)(t y和)(t 在同一张图上,观察数值求导的后果。(模拟数据从prob_data401.mat获得) 〖目的〗 ●强调:要非常慎用数值导数计算。 ●练习mat数据文件中数据的获取。 ●实验数据求导的后果 ●把两条曲线绘制在同一图上的一种方法。 〖解答〗 (1)从数据文件获得数据的指令 假如prob_data401.mat文件在当前目录或搜索路径上 clear load prob_data401.mat (2)用diff求导的指令 dt=t(2)-t(1); yc=diff(y)/dt; %注意yc的长度将比y短1 plot(t,y,'b',t(2:end),yc,'r') (3)用gradent求导的指令(图形与上相似) dt=t(2)-t(1); yc=gradient(y)/dt; plot(t,y,'b',t,yc,'r') grid on 〖说明〗 ● 不到万不得已,不要进行数值求导。 ● 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级 以上。 ● 求导会使数据中原有的噪声放大。 2 采用数值计算方法,画出dt t t x y x ? =0 sin )(在]10 ,0[区间曲线,并计算)5.4(y 。 〖提示〗 ● 指定区间内的积分函数可用cumtrapz 指令给出。 ● )5.4(y 在计算要求不太高的地方可用find 指令算得。 〖目的〗 ● 指定区间内的积分函数的数值计算法和cumtrapz 指令。 ● find 指令的应用。 〖解答〗 dt=1e-4; t=0:dt:10; t=t+(t==0)*eps; f=sin(t)./t; s=cumtrapz(f)*dt; plot(t,s,'LineWidth',3) ii=find(t==4.5); s45=s(ii) s45 = Matlab 课后实验题答案 实验一 MATLAB 运算基础 1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 (1) 0 12 2sin851z e =+ (2) 221 ln(1)2z x x = ++,其中2120.45 5i x +??=??-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+= ++=-- (4) 22 42011 122123t t z t t t t t ?≤=-≤?-+≤ ,其中t =0:0.5:2.5 解: M 文件: z1=2*sin(85*pi/180)/(1+exp(2)) x=[2 1+2*i;-.45 5]; z2=1/2*log(x+sqrt(1+x^2)) 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) 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. 已知: 1234413134787,2033657327A B --???? ????==???? ????-???? 求下列表达式的值: (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=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7]; 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] 3. 设有矩阵A 和B 1234 53 166789101769,11 121314150 23416171819209 7021222324254 1311A B ???? ????-??? ?????==-??? ? ???????????? (1) 求它们的乘积C 。 (2) 将矩阵C 的右下角3×2子矩阵赋给D 。 (3) 查看MATLAB 工作空间的使用情况。 解:. 运算结果: E=(reshape(1:1:25,5,5))';F=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]; C= E*F H=C(3:5,2:3) C = 93 150 77 习题二 1.如何理解“矩阵是MATLAB最基本的数据对象”? 答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。 因此,矩阵是MATLAB最基本、最重要的数据对象。 2.设A和B是两个同维同大小的矩阵,问: (1)A*B和A.*B的值是否相等? 答:不相等。 (2)A./B和B.\A的值是否相等? 答:相等。 (3)A/B和B\A的值是否相等? 答:不相等。 (4)A/B和B\A所代表的数学含义是什么? 答:A/B等效于B的逆右乘A矩阵,即A*inv(B),而B\A等效于B矩阵的逆左乘A矩阵,即inv(B)*A。 3.写出完成下列操作的命令。 (1)将矩阵A第2~5行中第1, 3, 5列元素赋给矩阵B。 答:B=A(2:5,1:2:5); 或B=A(2:5,[1 3 5]) (2)删除矩阵A的第7号元素。 答:A(7)=[] (3)将矩阵A的每个元素值加30。 答:A=A+30; (4)求矩阵A的大小和维数。 答:size(A); ndims(A); (5)将向量t的0元素用机器零来代替。 答:t(find(t==0))=eps; (6)将含有12个元素的向量x转换成34 矩阵。 答:reshape(x,3,4); (7)求一个字符串的ASCII码。 答:abs(‘123’); 或double(‘123’); (8)求一个ASCII码所对应的字符。 答:char(49); 4. 下列命令执行后,L1、L2、L3、L4的值分别是多少? A=1:9;B=10-A;... L1=A==B; L2=A<=5; L3=A>3&A<7; L4=find(A>3&A<7); 答:L1的值为[0, 0, 0, 0, 1, 0, 0, 0, 0] L2的值为[1, 1, 1, 1, 1, 0, 0, 0, 0] L3的值为[0, 0, 0, 1, 1, 1, 0, 0, 0] L4的值为[4, 5, 6] 5. 已知 23100.7780414565532503269.5454 3.14A -????-??=????-?? 完成下列操作: (1) 取出A 的前3行构成矩阵B ,前两列构成矩阵C ,右下角32?子矩阵构 成矩阵D ,B 与C 的乘积构成矩阵E 。 答:B=A(1:3,:); C=A(:,1:2); D=A(2:4,3:4); E=B*C; (2) 分别求E 汽车理论作业MA TLAB过程 汽车驱动力与阻力平衡图 加速度倒数-速度曲线图 0 10 20 30 40 50 60 70 80 90 100 u 汽车功率平衡图 u/(km/h)最高档等速百公里油耗曲线 Ua/(km/h) 燃油积极性-加速时间曲线 源程序: 《第一章》 m=3880; g=9.8; r=0.367; x=0.85; f=0.013; io=5.83; CdA=2.77; lf=0.218; Iw1=1.798; Iw2=3.598; Iw=lw1+lw2; ig=[6.09 3.09 1.71 1.00]; %变速器传动比 L=3.2; a=1.947; hg=0.9; n=600:1:4000; T=-19.313+295.27* n/1000-165.44*(门/1000)人2+40.874*(门/1000)人3-3.8445*( n/IOOO).%; Ft1=T*ig(1)*io*x/r; %计算各档对应转速下的驱动力 Ft2=T*ig(2)*io*x/r; Ft3=T*ig(3)*io*x/r; Ft4=T*ig(4)*io*x/r; u1=0.377*r*n/(io*ig(1)); u2=0.377*r*n/(io*ig(2)); u3=0.377*r*n/(io*ig(3)); u4=0.377*r*n/(io*ig(4)); u=0:130/3400:130; F仁m*g*f+CdA*u”2/21.15;%计算各档对应转速下的驱动阻力 F2=m*g*f+CdA*u2.A2/21.15; F3=m*g*f+CdA*u3.A2/21.15; F4=m*g*f+CdA*u4.A2/21.15; figure(1); plot(u1,Ft1, '-r' ,u2,Ft2, '-m' ,u3,Ft3, '-k' ,u4,Ft4, '-b' ,u1,F1, '-r' ,u2,F2, '-m' ,u3,F3, ' k' ,u4,F4, '-b' , 'LineWidth' ,2) title( ' 汽车驱动力与阻力平衡图' ); xlabel( 'u_{a}/km.hA{-1}' ) ylabel( 'F/N' ) gtext( 'F_{t1}' ) gtext( 'F_{t2}' ) gtext( 'F_{t3}' ) gtext( 'F_{t4}' ) gtext( 'F_{f}+F_{w}' ) %由汽车驱动力与阻力平衡图知,他们无交点,u4在最大转速时达到最大 umax=u4(3401) Ft1max=max(Ft1); imax=(Ft1max-m*g*f)/(m*g) disp( ' 假设是后轮驱动' ); C=imax/(a/L+hg*imax/L) % 附着率 delta1=1+(Iw1+Iw2)/(m*rA2)+If*ig(1)*rA2*ioA2*x/(m*rA2); delta2=1+(Iw1+Iw2)/(m*rA2)+If*ig(2)*rA2*ioA2*x/(m*rA2); delta3=1+(Iw1+Iw2)/(m*rA2)+If*ig(3)*rA2*ioA2*x/(m*rA2); delta4=1+(Iw1+Iw2)/(m*rA2)+If*ig(4)*rA2*ioA2*x/(m*rA2); a1=(Ft1-F1)/(delta1*m); %加速度 a2=(Ft2-F2)/(delta2*m); a3=(Ft3-F3)/(delta3*m); a4=(Ft4-F4)/(delta4*m); h1=1./a1; %加速度倒数 h2=1./a2; h3=1./a3; h4=1./a4; figure(2); 实验六 2_1 clear; x=linspace(0,2*pi,101); y1=x.^2; y2=cos(2.*x); y3=y1.*y2; plot(x,y1,'b-',x,y2,'r:',x,y3,'g-.'); %y1蓝色实线,y2红色虚线,y3绿色点画线 2_2 subplot(2,2,1); %分四个子图(先画2行2列第1块) plot(x,y1); subplot(2,2,2); plot(x,y2), subplot(2,2,3); plot(x,y3); 2_3 () subplot(3,4,1); %y1的四种图形bar(x,y1); subplot(3,4,2); stairs(x,y1), subplot(3,4,3); stem(x,y1); subplot(3,4,4); fill(x,y1,'b'); subplot(3,4,5); %y2 bar(x,y2); %条形图subplot(3,4,6); stairs(x,y2), %阶梯图subplot(3,4,7); stem(x,y2); %杆图subplot(3,4,8); fill(x,y2,'b'); %填充图,注意必须加填充颜色 subplot(3,4,9); %y3 bar(x,y3); subplot(3,4,10); stairs(x,y3), subplot(3,4,11); stem(x,y3); subplot(3,4,12); fill(x,y3,'b'); 3 clear; x=-5:0.1:5; if x<=0 y=(x+sqrt(pi)/exp(2)); else y=0.5.*log(x+sqrt(1+x.^2)); matlab练习题和答案 控制系统仿真实验 Matlab部分实验结果 目录 实验一 MATLAB基本操 作 ............................................................................................ 1 实验二 Matlab编程 .................................................................................................... 5 实验三Matlab底层图形控制 (6) 实验四控制系统古典分析.............................................................................................12 实验五控制系统现代分析 . (15) 实验六 PID控制器的设 计 ...........................................................................................19 实验七系统状态空间设计.............................................................................................23 实验九直流双闭环调速系统仿真 . (25) 实验一 MATLAB基本操作 1 用MATLAB可以识别的格式输入下面两个矩阵 1233,,1443678,i,,,,2357,,,,2335542,i,,,, A,1357B,,,2675342, i,,3239,,,,189543,,,,1894,, 再求出它们的乘积矩阵C,并将C矩阵的右下角2×3子矩阵赋给D矩阵。赋值完成后,调 用相应的命令查看MATLAB工作空间的占用情况。 A=[1,2,3,3;2,3,5,7;1,3,5,7;3,2,3,9;1,8,9,4]; 实验一: T1: %%第一小题 z1=2*sin(85*pi/180)/(1+exp(2)) %%第二小题 x=[2,1+2i;-0.45,5]; z2=1/2*log(x+sqrt(1+x.^2)); z2 %%第三小题 a=-3.0:0.1:3.0; z3=1/2*(exp(0.3*a)-exp(-0.3*a)).*sin(a+0.3)+l og((0.3+a)/2) %%第四题 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) T2: A=[12,34,-4;34,7,87;3,65,7] B=[1,3,-1;2,0,3;3,-2,7] disp ('A+6*B='); disp(A+6*B); disp('A-B+I='); disp(A-B+eye(3)); disp('A*B='); disp(A*B); disp('A.*B='); disp(A.*B); disp('A^3='); disp(A^3); disp('A.^3='); disp(A.^3); disp('A/B='); disp(A/B); disp('B\A='); disp(B\A); disp('[A,B]='); disp([A,B]); disp('[A([1,3],:);B^2]='); disp([A([1,3],:);B^2]); T3: z=1:25; A=reshape(z,5,5)'; B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11]; C=A*B D=C(3:5,2:3) T4-1: a=100:999; b=find(rem(a,21)==0); c=length(b) T4-2: a=input('请输入一个字符串:','s'); b=find(a>='A'&a<='Z'); a(b)=[]; disp(a); 实验二: T1: E=eye(3),R=rand(3,2),O=zeros(2,3),S=diag([1,2 ]); A=[E,R;O,S] disp('A^2='); disp(A^2); disp('[E,R+RS;O,S^2]'); B=[E,R+R*S;O,S^2] T2: H=hilb(5) P=pascal(5) Hh=det(H) Hp=det(P) Th=cond(H) Tp=cond(P) a=abs(Th-1); b=abs(Tp-1); if a>b disp('帕萨卡矩阵P性能更好'); elseif a
MATLAB基础教程 薛山第二版 课后习题答案
MATLAB数学实验第二版答案(胡良剑)
薛山matlab基础教程第三版习题解答2
Matlab课后习题解答
matlab课后习题解答第二章
matlab课后习题及答案详解
Matlab程序设计与应用第二版刘卫国课后实验答案
(完整版)matlab习题及答案(2)
Matlab基础教程
南邮MATLAB数学实验答案(全)
matlab基础练习题(带答案)
matlab课后习题答案
MATLAB程序设计及应用(第二版)课后实验答案
matlab课后习题与答案
汽车理论课后作业答案MATLAB
MATLAB程序设计与应用(第二版)刘卫国主编_部分实验答案
matlab练习题和答案
Matlab程序设计与应用第二版刘卫国课后实验答案