matlab课后习题程序代码综合整理.docx
《matlab课后习题程序代码综合整理.docx》由会员分享,可在线阅读,更多相关《matlab课后习题程序代码综合整理.docx(29页珍藏版)》请在冰点文库上搜索。
matlab课后习题程序代码综合整理
习题二
第3题
(1)、A=[1:
5;6:
10;11:
15;16:
20;21:
25];
B=A(2:
5,[1,3,5])
(2)、A=[1:
5;6:
10;11:
15;16:
20;21:
25];
A(7)=[]
(3)、A=[1:
5;6:
10;11:
15;16:
20;21:
25];
D=A+30
(4)、A=[1:
5;6:
10;11:
15;16:
20;21:
25];
size(A)
length(size(A))或者ndims(A)
(5)、t=[1,2,3,0,7,0,4,0,6]
t(find(t==0))=eps
(6)、x=[2,4,5,4,7,8,45,21,34,1,6,57];
y=reshape(x,3,4)
(7)、abs('abc')
(8)、char(49)或者setstr(49)
第4题:
A=1:
9;B=10-A;
L1=A==B
L2=A<=5
L3=A>3&A<7
L4=find(A>3&A<7)
第5题:
A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14];
B=A(1:
3,:
);
C=A(:
1:
2);
D=A(2:
4,3:
4);
E=B*C
X1=EX2=E&D
X3=E|D
X4=~E|~D
X5=find(A>=10&A<25)
第6题:
A=[34,NaN,Inf,-Inf,-pi,eps,0];
x1=all(A)
x2=any(A)
x3=isnan(A)
x4=isinf(A)
x5=isfinite(A)
第7题:
A
(1).x1=’学号’;A
(1).x2=’姓名’;A
(1).x3=’专业’;A
(1).x4.x41=’成绩1’;……….
A
(2).x1=’学号’;A
(2).x2=’姓名’;A
(2).x3=’专业’;A
(2).x4.x41=’成绩1’;……….
A(3).x1=’学号’;A(3).x2=’姓名’;A(3).x3=’专业’;A(3).x4.x41=’成绩1’;……….
A(4).x1=’学号’;A(4).x2=’姓名’;A(4).x3=’专业’;A(4).x4.x41=’成绩1’;……….
A(5).x1=’学号’;A(5).x2=’姓名’;A(5).x3=’专业’;A(5).x4.x41=’成绩1’;……….
第8题:
B{1,1}=1;
B{1,2}='Brenden';
B{2,1}=reshape(1:
9,3,3);
B{2,2}={12,34,2;54,21,3;4,23,67};
(1)、x1=size(B)
x2=ndims(B)
(2)、x3=B
(2)
x4=B(4)
(3)、当执行B(3)=[]后,
B={1,[1,4,7;2,5,8;3,6,9],{12,34,2;54,21,3;4,23,67}}
当执行B{3}=[]后,
B={1,[];[1,4,7;2,5,8;3,6,9],{12,34,2;54,21,3;4,23,67}}
习题三
1.
(1)A=eye(3)
(2)A=100+100*rand(5,6)
(3)A=1+sqrt(0.2)*randn(10,50)
(4)B=ones(size(A))
(5)A+30*eye(size(A))
(6)B=diag(diag(A))
2.
B=rot90(A)
C=rot90(A,-1)
3.
B=inv(A);A的逆矩阵
C=det(A);A的行列式的值
D=A*B
E=B*A
D=E因此A与A-1是互逆的。
4.
A=[42-1;3-12;1230];
b=[2;10;8];
x=inv(A)*b
5.
(1)
diag(A);主对角线元素
triu(A);上三角阵
tril(A);下三角阵
rank(A);秩
norm(A);范数
cond(A);条件数
trace(A);迹
(2)略
6.
A=[110.5;110.25;0.50.252]
[V,D]=eig(A)
习题四
1.a=input('请输入一个4位数:
');
while(a<1000|a>9999)
a=input('输入错误,请重新输入一个4位数:
');
end
b=fix(a/1000);
c=rem(fix(a/100),10);
d=rem(fix(a/10),10);
e=rem(a,10);
b=b+7;
c=c+7;
d=d+7;
e=e+7;
b=rem(b,10);
c=rem(c,10);
d=rem(c,10);
e=rem(e,10);
g=b;b=d;d=g;
g=c;c=e;e=g;
a=1000*d+100*e+10*b+c;
disp(['加密后:
',num2str(a)])
2.a=input('请输入a:
');
b=input('请输入b:
');
c=input('请输入c:
');
x=0.5:
1:
5.5;
x1=(x>=0.5&x<1.5);
x2=(x>=1.5&x<3.5);
x3=(x>=3.5&x<=5.5);
y1=a.*(x.^2)+b.*x+c;
y2=a*(sin(b)^c)+x;
y3=log(abs(b+c./x));
y=y1.*x1+y1.*x2+y3.*x3;
disp(y)
3.x=fix(rand(1,20)*89)+10;
x1=fix(sum(x)/20);
disp(['平均数是:
',num2str(x1)])
m=(rem(x,2)==0&xn=find(m);
disp(['小于平均数的数是:
',num2str(x(n))]);
4.A=input('请输入20个数的一个行向量:
');
m=A;
a=m;
b=m;
form=A
ifa>=m
a=m;
elseifb<=m
b=m;
end
end
disp(['最小数是:
',num2str(a)])
disp(['最大数是:
',num2str(b)])
5.s=0;
a=0;
forb=1:
64
c=2^a;
a=a+1;
s=s+c;
end
disp(['2的0次方到63次方的和是:
',num2str(s)])
6,sum1=0;
forn=1:
100
x=(-1)^(n+1)*(1/n);
sum1=sum1+x;
end
disp(['当n取100时:
sum=',num2str(sum1)])
sum2=0;
forn=1:
1000
x=(-1)^(n+1)*(1/n);
sum2=sum2+x;
end
disp(['当n取1000时:
sum=',num2str(sum2)])
sum3=0;
forn=1:
10000
x=(-1)^(n+1)*(1/n);
sum3=sum3+x;
end
disp(['当n取10000时:
sum=',num2str(sum3)])
8.clearall
a=input('请输入一个矩阵:
');
b=input('请再输入一个矩阵:
(注意:
两矩阵要可以相乘)');
[f1,f2]=juzhenji(a,b);
9.clearall
y=qiuhe(100,1)+qiuhe(50,2)+qiuhe(10,-1);
disp(y)
10.
(1)S=108
(2)x=41220
y=246
习题五
1.
(1)、x=-6:
0.1:
6;
y=100./(1+x.^2);
plot(x,y)
(2)、x=-6:
0.1:
6;
y=(1/2*pi)*exp(-x.^2/2);
plot(x,y)
(3)、ezplot('x^2+y^2=1')
(4)、t=-8:
0.1:
8;
x=t.^2;
y=t.^3;
plot(x,y)
2.
(1)、theta=0:
0.01:
2*pi;
rho=5*cos(theta)+4;
polar(theta,rho,'k');
(2)、theta=0.002:
0.01:
2*pi;
rho=12./sqrt(theta);
polar(theta,rho)
(3)、theta=0:
0.01:
2*pi;
rho=5./cos(theta)-7;
polar(theta,rho)
(4)、theta=0:
0.01:
2*pi;
rho=(pi/3).*theta.^2;
polar(theta,rho)
3.
(1)、t=0:
0.1:
2*pi;
x=cos(t);
y=sin(t);
z=t;
plot3(x,y,z,'p');
(2)、u=0:
0.1:
2*pi;
v=0:
0.1:
2*pi;
x=(1+cos(u)).*cos(v);
y=(1+cos(u)).*sin(v);
z=sin(u);
plot3(x,y,z,'p');
(3)、x=-10:
0.5:
10;
y=-10:
0.5:
10;
[x,y]=meshgrid(x,y);
z=5*ones(size(x));
mesh(x,y,z);
xlabel('X'),ylabel('Y'),zlabel('Z');
(4)、[x,y,z]=sphere(20);
x=10*x;
y=10*y;
z=10*z;
surf(x,y,z);
4.
ord=[4,2^10,3,6]
fori=1:
4
subplot(2,2,i)
theta=linspace(pi/ord(i),2*pi+pi/ord(i),ord(i)+1);
plot(cos(theta),sin(theta));
xlim(1.5*[-1,1]);ylim(1.5*[-1,1]);axisequal;
end
5.
(1)、x=linspace(-10,10,200);
y=[];
forx0=x
ifx0>0
y=[y,x0.^2+(1+x0).^(1/4)+5];
elseifx0==0
y=[y,0];
elseifx0<0
y=[y,x0.^3+sqrt(1-x0)-5];
end
end
plot(x,y);
(2)、fplot('(x<0).*(x.^3+sqrt(1-x)-5)+(x==0).*0+(x>0).*(x.^2+(1+x).^(1/4)+5)',[-10,10])
6.
t=0:
pi/100:
pi;
x1=cos(t);
y1=2*x1-0.5;
x2=sin(3*t).*cos(t);
y2=sin(3*t).*sin(t);
plot(x1,y1,x2,y2);
gridon;
axis([-1,1,-1,1]);
axissquare;
%数值法
t=fsolve(@fun,[0:
0.8:
pi])
x=sin(3*t).*cos(t)
y=sin(3*t).*sin(t)
holdon;plot(x,y,'r*');
7.
value=[450.6,395.9,410.2,450.9];
season=[1,2,3,4];
subplot(1,2,1);
plot(season,value);
subplot(1,2,2);
pie(value);
title('饼图')
legend('一季度','二季度','三季度','四季度')
8.
symsaxy
eq=1/a^2*x^2+y^2/(25-a^2)-1;
aa=[0.5:
0.5:
4.5,5.5:
8];
[m,n]=size(aa);
fori=1:
n
eq1=subs(eq,a,aa(i));
ezplot(eq1,[-2020]);
drawnow
axis([-20,20,-10,10]);
pause(0.5);
end
9.
(1)、x=0:
0.1:
10;
y=((1+x.^2)/(1+x.^4));
hf=plot(x,y);
set(hf,'color','r','linestyle',':
','marker','*','linewidth',1);
text(4,0.25,'y=(1+x^{2})/(1+x^{4})');
(2)、x=0:
0.1:
10;
y=3*x+sin(x)-exp(x);
hf=plot(x,y);
set(hf,'color','r','linestyle',':
','marker','*','linewidth',1);
text(4,-2500,'y=3x+sinx-e^{x}');
(3)、theta=0:
pi/100:
2*pi;
rho=sin(2*theta);
hf=polar(theta,rho);
set(hf,'color','r','linestyle',':
','marker','*','linewidth',1);
text(0.5,pi/36,'{\rho}=sin(2{\theta})');
(4)、clearall;closeall;clc;
x=0:
0.1:
10;
y=log((1+sqrt(1-x.^2))./x)+sqrt(1-x.^2);
hf=plot(x,y);
set(hf,'color','r','linestyle',':
','marker','*','linewidth',1);
h=text;
set(h,'Interpreter','latex');
set(h,'string','$$y=ln\frac{1+\sqrt{1-x^2}}x+\sqrt{1-x^2}$$','position',[1.2,0.3],'FontSize',16);
10.
(1)、clearall;closeall;clc;
t=0:
0.1:
10;
x=(3*t)./(1+t);
y=(3*t.^2)./(1+t.^3);
hf=plot(x,y);
set(hf,'color','r','linestyle',':
','marker','*','linewidth',1);
text(1.5,0.6,'x=(3t)/(1+t),y=3t^{2}/(1+t^{3})');
(2)、clearall;closeall;clc;
x=0:
0.1:
10;
[x,y]=meshgrid(x);
z=y./(1+x.^2+y.^2);
hf=mesh(x,y,z);
text(2,6,0.4,'f(x,y)=y/(1+x^2+y^2)');
(3)、clearall;closeall;clc;
x=0:
0.1:
10;
[x,y]=meshgrid(x);
z=x.^2+y.^2-5*sin(x.*y);
hf=mesh(x,y,z);
text(8,3,210,'z=x^2+y^2-5sin(xy)');
(4)、clearall;closeall;clc;
x=0:
0.1:
10;
[x,y]=meshgrid(x);
z=x.*y.*exp(-x.^2-y.^2);
hf=mesh(x,y,z);
text(3,5,0.15,'z=xye^{-x^2-y^2}');
11.clearall;closeall;clc;
x=[1:
44:
-1:
1];x1=[4:
77:
-1:
4];x2=[7:
1010:
-1:
7];
y=[22223333];
patch(x,y,'r');
holdon;
patch(x1,y,'g');
patch(x2,y,'b');
12.clearall;closeall;clc;
X=[1,1,1,1];X0=[1,1,2,2];
Y=[1,2,2,1];Y0=[1,2,2,1];
Z=[1,1,2,2];Z0=[2,2,2,2];
C=[0.5,1.0,1.0,0.5];C0=[1.0,0.5,0.5,0.1667];
X1=[2,2,1,1];Y1=[1,1,1,1];Z1=[1,2,2,1];
X2=[1,1,2,2];Y2=[1,2,2,1];Z2=[1,1,1,1];
X3=[2,2,2,2];Y3=[2,2,1,1];Z3=[1,2,2,1];
X4=[2,2,1,1];Y4=[2,2,2,2];Z4=[1,2,2,1];
C1=[0.5,0.1667,1.0,0.5];
C2=[0.333,0.667,0.5,0.8];
C3=[0.1667,1.0,0.6667,0.333];
C4=[0.1,0.5,0.4,0.9];
fill3(X,Y,Z,C,X0,Y0,Z0,C0,X1,Y1,Z1,C1,X2,Y2,Z2,C2,X3,Y3,Z3,C3,X4,Y4,Z4,C4);
axisoff
clearall;closeall;clc;
v=[0,0,0;10,0,0;10,20,0;0,20,0;0,20,30;0,0,30;10,0,30;10,20,30];
f=[2,3,8,7;1,4,5,6;6,7,2,1;5,8,3,4;6,7,8,5;1,2,3,4];
mc=[0,0,1;0,1,0;1,0,0;0,1,1;1,0,1;1,1,0];
subplot(1,2,1);
patch('faces',f,'vertices',v,'facevertexcdata',mc,'facecolor','flat');
view(30,30);
axis([0,10,0,20,0,30]);
subplot(1,2,2);
patch('faces',f,'vertices',v,'facevertexcdata',mc,'facecolor','flat');
view(-120,-30);
axis([0,10,0,20,0,30]);
grid
习题六
1.
A=randn(10,5)
(1)mean(A);均值std(A);标准方差
(2)max(max(A));最大元素min(min(A));最小元素
(3)B=sum(A,2);A每行元素的和sum(B);A全部元素之和
(4)sort(A);A的每列元素按升序排列
sort(A,2,’descend’);A的每行元素按将序排列
2.
(1)
clear all;
close all;
clc;
alpha1=0:
15:
90;
sin_alpha1=sin(alpha1*pi/180); %精确正弦值
plot(alpha1,sin_alpha1,'k:
p'); hold on; %绘精确正弦曲线
alpha2=0:
90;
sin_Y1=interp1(alpha1,sin_alpha1,alpha2,'spline'); %3次样条正弦插值
plot(alpha2,sin_Y1,'r-*'); hold on; %绘 3 次样条插值正弦曲线
P1=polyfit(alpha1, sin_alpha1, 5); %5 次多项式拟合
sin_Y2= polyval(P1, alpha2); %5 次多项式求值
plot(alpha2, sin_Y2, 'b-o'); %绘 5 次多项式插值正弦曲线
legend('精确正弦值','3次样条正弦插值','5次多项式正弦插值');
title('正弦值比较');
alpha3=0:
15:
75;
tan_alpha3=tan(alpha3*pi/180); %精确正切值
figure,plot(alpha3,tan_alpha3,'k:
p'); hold on; %绘精确正切曲线 alpha4=0:
75;
tan_Y1=interp1(alpha3,tan_alpha3,alpha4,'spline'); %3 次样条正切插值 plot(alpha4, tan_Y1,'r-*'); hold on; %绘 3 次样条正切曲线 P2=polyfit(alpha3, tan_alpha3, 5); %5 次多项式拟合 tan_Y2= polyval(P2, alpha4); %5 次多项式求值
plot(alpha4,tan_Y2,'b-o'); %绘 5 次多项式插值正弦曲线
legend('精确正切值','3次样条正切插值','5次多项式正切插值');
title('正切值比较');
(2)
X=[149162536496481100];
Y=1:
10;
X1=1:
100;
Y1=interp1(X,Y,X1,'cubic')
plot(X,Y,'r:
o'); hold on; %绘精确平方根曲线
plot(X1,Y1,'k-x'); %绘3次多项式插值平方根曲线
legend('精确平方根','3次多项式插值');
3.
x=[165123150123141];
y=[187126172125148];
P=polyfit(x,y,3)
P=1.0e+003*
-0.00000.0013-0.17798.4330
所以它的线性拟合曲线为:
p(x)=1.3x2—177.9x+8433
4.
(1)P1=[032];P2=[5-12];P3=[10-0.5];
P=conv(conv(P1,P2),P3)
P=015.00007.0000-3.50000.5000-2.0000-2.0000
所以P(x)=15x5+7x4-3.5x3+0.5x2-2x-2
(2)
roots(P)
(3)
i=0:
10;
xi=0.2*i;
polyval(P,xi)
5.
(1)
建立函数文件:
functionf=fxy(u)
x=u
(1);y=u
(2);
f=3.*x.^2+2*x.*y+y.^2
在命令窗口中输入以下命令:
[U,fmin]=fminsearch('fxy',[1,1])
(2)
f=inline('-sin(x)-cos(x.^2)');
fmax=fminbnd(f,0,pi)
6.
(1)x=[pi/6pi/4pi/3];
f=inline('sin(x).^2+cos(x).^2');
dx=diff(f([x,5*pi/12]))/(pi/12)可参见第157页例题6.19
x=pi/2时单独计算:
x=pi/2;
f=i