Matlab编程与应用习题和一些参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab编程与应用习题和一些参考答案
Matlab 上机实验一、二
3.求下列联立方程的解⎪⎪⎩⎪⎪⎨⎧=+-+-=-+=++-=--+4
1025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10];
>> b=[4;4;9;4];
>> c=a\b
4.设⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡------=81272956313841A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所
有方阵的逆阵。

>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];
>> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7];
>> C1=A*B'
>> C2=A'*B
>> C3=A.*B
>> inv(C1)
>> inv(C2)
>> inv(C3)
5.设 ⎥⎦
⎤⎢⎣⎡++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。

>> x=linspace(0,2*pi,101);
>> y=cos(x)*(0.5+(1+x.^2)\3*sin(x));
>> plot(x,y,'r')
6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。

并求该矩阵全体数的平均值和均方差。

(mean var )
a=randn(8,6)
mean(a)
var(a)
k=mean(a)
k1=mean(k)
i=ones(8,6)
i1=i*k1
i2=a-i1
i3=i2.*i2
g=mean(i3)
g2=mean(g)
10.利用帮助查找limit 函数的用法,并自己编写,验证几个函数极限的例子。

limit(sin(x)/x) returns 1
limit((x-2)/(x^2-4),2) returns 1/4
limit((1+2*t/x)^(3*x),x,inf) returns exp(6*t)
limit(1/x,x,0,'right') returns inf
limit(1/x,x,0,'left') returns -inf
limit((sin(x+h)-sin(x))/h,h,0) returns cos(x)
v = [(1 + a/x)^x, exp(-x)];
Matlab 上机实验二
1.验证所授课程的课件。

2.设x=sint, y=sin(nt+a),
(1) 若a=1,令n =1,2,3,4,在四个子图中分别画出其曲线。

(2) 若n=2,取a=0,π/3,π/2,及π,在四个子图中分别画出其曲线。

(1)
a=1; x=sin(t);y1=sin(1*t+a);y2=sin(2*t+a);y3=sin(3*t+a);y4=sin(4*t+a); subplot(2,2,1);plot(x,y1);subplot(2,2,2);plot(x,y2);subplot(2,2,3);plot(x,y3);subplot(2,2,4);plot(x,y4)
(2)
n=2;x=sin(t);y1=sin(2*t+0);y2=sin(2*t+pi/3);y3=sin(2*t+pi/2);y4=sin(2*t+pi);su bplot(2,2,1);plot(x,y1);subplot(2,2,2);plot(x,y2);subplot(2,2,3);plot(x,y3);su bplot(2,2,4);plot(x,y4)
3.绘制)(222y x e x z +-=在定义域x=[-2,2],y=[-2,2]内的曲面。

(利用meshgrid )
x=-2:2;y=x;[X,Y]= meshgrid(x,y);Z=X^2*exp(-(X^2+Y^2));mesh(X,Y,Z)
4.求代数方程3x 5+4x 4+7x 3+2x 2+9x+12=0的所有根。

(利用roots 函数)
p=[3 4 7 2 9 12];roots(p)
5.把1开五次方,并求其全部五个根。

(提示:解x 5-1=0)
p=[1 0 0 0 0 -1];roots(p) 6,⎪⎩
⎪⎨⎧≤≤-+-<≤-+--<≤----=312/)34(111132/)34(222x x x x x x x x y ,画出在[]3,3-上的曲线。

x1=-3:0.01:-1;y1=(-x1.^2-4.*x1-3)/2;
x2=-1:0.01:1;y2=-x2.^2+1;
x3=1:0.01:3;y3=(-x3.^2+4.*x3-3)/2;plot(x1,y1);hold on; plot(x2,y2);hold on; plot(x3,y3)
Matlab 上机实验三
1.设,求
>> syms x
>> y=x*exp(2*x);
Diff(y,10)
2.设,求
syms x
>> y=sin(x)^4+cos(x)^4;
>> y^10
3.设,求
>> syms x y
>> z=y^4*sin(x)^4+x^4*cos(y)^4;
>> diff(z,'x')
4.⎰++dx x x x ))(1(1
22
>> syms x y
>> y=1/((x^2+1)*(x^2+x));
>> int(y)
5.dx x x ⎰-63
2)
9(
>> int((sqrt((9-x^2)^3)/x^6))
6.⎰+213x x dx
>> syms x
>> int(1/(x+x^3),1,2)
>> simple(ans)
7.求级数的和: ∑∞
=+122n n n
(利用帮助,查找symsum ) >> syms n
>> symsum((n+2)/2^n,n-1,inf)
>> simple(ans)
8.利用函数int 计算二重不定积分
>> syms x y
>> int(int((x+y)*exp(-x*y)))
9.设方程(1)0)cos(3=+a x ,(2)0)cos(3=+x x 及(3)0)cos(3=+ax x ,用符号运算工具箱函数solve 分别求x 的解。

用a=0.5代入,求 x 的数值解,并与用roots 函数所求的结果进行比较。

>> syms x1 x2 x3
>> x1=solve('x1^3+cos(0.5)=0');
>> x2=solve('x2^3+cos(x2)=0');
>> x3=solve('x3^3+cos(0.5*x3)=0');
>> x1,x2,x3
>> p=[1 0 0 cos(0.5)];
>> roots(p)
dxdy e y x xy
⎰⎰-+)(
10.求微分方程的解: y'''-y''=x ,y''(2)=4,y'(1)=7,y(1)=8
>> syms x y
>> dsolve('D3y-D2y=x','D2y(2)=4','Dy(1)=7','y(1)=8')
11.设 z z y z z x 3cos ,3sin ==, 要求在z=0~10区间内画出x,y,z 三维曲线。

>> z=0:0.01:10;
>> x=z.*sin(3*z);
>> y=z.*cos(3*z);
>> plot3(x,y,z)
12.设 )(222y x e x z +-=,画出定义域x=[-2,2],y=[-2,2]内的曲面图。

>> [x,y]=meshgrid([-2:0.1:2]);
>> z=x.^2.*exp(-x.^2-y.^2);
>> mesh(x,y,z)
13.设z=0.05x-0.05y+0.1; 画出z 的曲面(平面)图。

>> [X,Y]=meshgrid(1:10:200,1:10:200);
>> Z=0.05*X-0.05*Y+0.1;
>> surf(X,Y,Z)
1.编写程序计算:
(1)使用一个for/end 循环,但不能使用数组运算符sum 。

(2)使用数组运算符和sum ,但不能使用任何for/end 循环。

答:(1): 1~100相加
For 循环:
s=0;
for i=1:100
s=s+i;
end
s
(2): 1~100相加
Sum 函数:
i=1:100;
s=sum(i)
2.编制m 文件,等待键盘输入,输入密码123,密码正确,显示输入密码正确,程序结束;否
则提示,重新输入,直到正确为止。

答:function mypassword
k=0;
n=input('等待键盘输入\n');
while(k==0)
if n==123
disp('输入密码正确')
k=1;
else
n=input('密码错误,重新输入\n');
k=0;
end
end
3.编制m 文件,输入n (正整数),显示所有小于n 的质数。

答:function zhishu
m=input('输入正整数m=\n');
p=2:m-1;
for i=2:sqrt(m)
n=find(rem(p,i)==0&p~=i);
p(n)=[];
end
p
4.编写一个M 函数文件fun_es(x),计算如下函数:)sin(5.023/x x e y x -=,其中参数可以为
标量,也可以为向量。

在Matlab 指令窗口键入如下命令检验该函数:fun_es(3)
答:function fun_es(x)
y=0.5*exp(x/3)-x.^2.*sin(x)
5.利用rand产生10个随机数,利用for循环对其进行排序(从大到小)。

答:function pailie
n=rand(1,10)
for j=1:10
for i=j+1:10
if n(j)<n(i)
a=n(j);
n(j)=n(i);
n(i)=a;
end
end
end
disp('重新排列后:')
n
6.编写m函数文件求半径为r的圆的面积和周长。

答:
function yuan(r)
s=pi*r^2
c=2*pi*r
7.数组[1:99]中非素数(即质数)元素的和
答:
function feizhishuhe
m=99;
p=2:m;
for i=2:sqrt(m)
n=find(rem(p,i)==0&p~=i);
p(n)=[];
end
s=sum(1:99)-sum(p)
8.从键盘输入若干个数(每个数用回车结束),当输入0时结束输入,求这些数的平均值以及平方和。

(结束标志0不计算在内)
答:function abc
k=0;
s=0;
i=0;
y=0;
n=input('');
while(k==0)
if n~=0
k=0;
i=i+1;
s=s+n;
y=y+n^2;
n=input('');
else
k=1;
a=s/i
y
end
end
9.输入x,y的值,并将它们的值互换后输出。

答:function jiaohuan
x=input('x=\n');
y=input('y=\n');
z=x;
x=y;
y=z;
x
y
10.下面程序实现什么功能?
for n=100:200
if rem(n,77)~=0
continue
end
break
end
n
答:在100到200之间输出第一个能被77整除的整数
11:编写一个M函数文件计算下列级数的和:x和n的值由input指令给出。

答:function jishu
x=input('x=\n');
n=input('n=\n');
y=1;
a=1;
for i=1:n
a=a*i;
!
...
!3
!2
1
)
(
3
2
n
x
x
x
x
x
f
n
+
+
+
+
+
=
y=y+(x.^i)/a;
end
y
12:编写函数文件,参数为整数n,返回值为:n!尾部0的个数。

答:function linggeshu
a=1;
c=0;
n=input('n=\n');
for i=1:n
a=a*i;
end
for j=1:1000
if rem(a,10^j)==0
c=c+1;
end
end
c
11。

相关文档
最新文档