Matlab编程与应用习题和一些参考答案.docx
- 文档编号:410502
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:16
- 大小:71.84KB
Matlab编程与应用习题和一些参考答案.docx
《Matlab编程与应用习题和一些参考答案.docx》由会员分享,可在线阅读,更多相关《Matlab编程与应用习题和一些参考答案.docx(16页珍藏版)》请在冰豆网上搜索。
Matlab编程与应用习题和一些参考答案
Matlab上机实验一、二
1.安装Matlab软件。
2.验证所学内容和教材上的例子。
3.求下列联立方程的解
>>a=[34-7-12;5-742;108-5;-65-210];
>>b=[4;4;9;4];
>>c=a\b
c=
5.2226
4.4570
1.4718
1.5994
4.设
,
,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。
>>A=[14813;-36-5-9;2-7-12-8];
>>B=[543-2;6-23-8;-13-97];
>>C1=A*B'
C1=
19-8230
12273
-385429
>>C2=A'*B
C2=
-1516-2436
63-1793-105
226117-60
194684-10
>>C3=A.*B
C3=
51624-26
-18-12-1572
-2-21108-56
>>inv(C1)
ans=
0.00620.0400-0.0106
-0.00460.01690.0030
0.01680.02090.0150
>>inv(C2)
Warning:
Matrixisclosetosingularorbadlyscaled.
Resultsmaybeinaccurate.RCOND=8.997019e-019.
ans=
1.0e+015*
-0.9553-0.2391-0.19970.2700
0.96670.24200.2021-0.2732
-0.4473-0.1120-0.09350.1264
-1.1259-0.2818-0.23530.3182
>>inv(C3)
?
?
?
Errorusing==>inv
Matrixmustbesquare.
5.设
,把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,求其各列的平均值和均方差。
并求该矩阵全体数的平均值和均方差。
(meanvar)
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)
或者
u=reshape(a,1,48);
p1=mean(u)
p2=var(u)
7.设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y曲线。
>>t=linspace(0,10);
>>r1=2;
>>x1=(r1*cos(t)+3*t);
>>y1=r1*sin(t)+3;
>>r2=3;
>>x2=(r2*cos(t)+3*t);
>>y2=r2*sin(t)+3;
>>r3=4;
>>x3=(r3*cos(t)+3*t);
>>y3=r3*sin(t)+3;
>>plot(x1,y1,'r',x2,y2,'b',x3,y3,'m')
8.设f(x)=x5-4x4+3x2-2x+6
(1)在x=[-2,8]之间取100个点,画出曲线,看它有几个过零点。
(提示:
用polyval函数)
>>x=linspace(2,8,100);
>>y=polyval([10-43-26],x);
>>plot(x,y,'b',x,0,'y')
(2)用roots函数求此多项式的根。
t=[10-43-26]
p=roots(t)
9.建立一个字符串向量,然后对该向量做如下处理:
(1)取第1~5个字符组成的子字符串。
(2)将字符串倒过来重新排列。
(3)统计字符串中小写字母的个数。
10.利用帮助查找limit函数的用法,并自己编写,验证几个函数极限的例子。
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);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)
注:
本题好像题目本身就有问题,因为“t”取值不明,所以运行不了,画不出图来。
转化为符号式来画图也是不可行的。
(纯粹个人意见,可能我想错了方向,会做的同学请上传一下正确的做法)
3.绘制
在定义域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.求代数方程3x5+4x4+7x3+2x2+9x+12=0的所有根。
(利用roots函数)
p=[3472912];roots(p)
5.把1开五次方,并求其全部五个根。
(提示:
解x5-1=0)
p=[10000-1];roots(p)
6,
,画出在
上的曲线。
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);holdon;plot(x2,y2);holdon;plot(x3,y3)
Matlab上机实验三
1.设
求
x=sym('x');y=x*exp(2*x);diff(y,20)
2.设
求
x=sym('x');y=(sin(x))^4+(cos(x))^4;diff(y,10)
3.设
求
x=sym('x');y=sym('y');z=y^4*((sin(x))^4)+x^4*((cos(y))^4);int(z,x)
4.
x=sym('x');int(1/(x^2+1)*(x^2+x),x)
5.
x=sym('x');int((sqrt((9-x^2)^3)/x^6),x)
6.
x=sym('x');int(x+x^3,x,1,2)
7.求级数的和:
sym(‘n’);symsum(n+2/2^n,n,1,inf)
8.利用函数int计算二重不定积分
x=sym('x');y=sym('y');z=(x+y)*exp(-x*y);a=int(z,x);int(a,y)
Matlab上机实验四
1.编写一个M函数文件计算下列级数的和:
x和n的值由input指令给出。
%test.m
functionf=test
x=input('Inputthex:
\n');
n=input('Inputthen:
\n');
j=1;
f2=0;
fori=1:
n;
j=1;
fork=1:
i;
j=j*k;
f1=x^i/j;
end
f2=f2+f1;
end
f=f2+1;
2.编制m文件,等待键盘输入,输入密码123,密码正确,显示输入密码正确,程序结束;否则提示,重新输入。
方法一:
functionf=check
password=input('Pleaseinputthepassword:
\n');
if(password==123)
disp(‘输入密码正确’)
else
check;
end
方法二:
functionpw
n=0;
k=0;
n=input('请输入密码(整数)\n');
while(k==0)
ifn==123
disp('输入正确')
k=1;
else
k=0;
n=input('密码错误,请重新输入密码(整数)\n');
end
end
3.编制m文件,输入n(正整数),显示所有小于n的质数。
%第一m文件(用于判断某数是否为素数):
functionleap=panduan(n)
leap=1;
fori=2:
sqrt(n+1)
ifmod(n,i)==0
leap=0;
break;
end
end
%第二个m文件(用于读进n个数并调用panduan.m判断读数是否为素数,并把是素数的显示出来):
functionzhishu(n)
form=2:
n
ifpanduan(m)==1
disp(m);
end
end
4.编写一个M函数文件fun_es(x),计算如下函数:
,其中参数可以为标量,也可以为向量。
在Matlab指令窗口键入如下命令检验该函数:
fun_es(3)
functionfun_es(x)
y=0.5.*exp(x./3)-x.^2.*sin(x)
5.下面程序实现什么功能?
forn=100:
200
ifrem(n,77)~=0
continue
end
break
end
n
求100到200之间,第一个77的整倍数
6.编写m函数文件求半径为r的圆的面积和周长。
functionf=circle(r)
S=pi*r^2
L=2*pi*r
7.数组[1:
99]中素数(即质数)元素的和
%第一m文件(用于判断某数是否为素数):
functionleap=panduan(n)
leap=1;
fori=2:
sqrt(n+1)
ifmod(n,i)==0
leap=0;
break;
end
end
%第二个m文件(用于读进1-99并调用panduan.m判断读数是否为素数,并把是素数的加起来,最后输出):
functiontotal(n)
k=0;
form=1:
n
ifpanduan(m)==1
k=k+m;
end
end
k
8.从键盘输入若干个数,当输入0时结束输入,求这些数的平均值以及平方和。
%求n个数的平均值及平方和
functionpingfang1
l=0;
total1=0;
total2=0;
a=input('inputa:
\n');
while(a~=0)
l=l+1;
total1=total1+a;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 编程 应用 习题 一些 参考答案