matlab数学实验复习题(有答案)
- 格式:doc
- 大小:1.79 MB
- 文档页数:17
matlab数学实验复习题(有答案)
复习题
1、写出3个常用的绘图函数命令:plot、ezplot、fplot
2、inv(A)表示A的逆矩阵;
3、在命令窗口健入clc,作用是清除工作间管理窗口的所有内容
4、在命令窗口健入clear,作用:清除内存中所有变量
5、在命令窗口健入figure,作用是打开一个新的图形;
6、x=-1:0.2:1表示在区间[-1,1]内以0.2为步长等距取值
7、det(A)表示计算A的行列式的值;
8、三种插值方法:拉格朗日多项式插值,分段线性插值,三次样条插值。
9、若A=123456789,则fliplr(A)=321654987
A-3=210123456A.^2=149162536496481tril(A)=100450789
triu(A,-1)=123456089diag(A)=100050009A(:,2),=258A(3,:)=369
10、normcdf(1,1,2)=0.5%正态分布mu=1,sigma=2,x=1处的概率
11、unifpdf([5,7],2,6)=【0.25;0】
11、命令format short的作用保留小数点后四位而format long:保留小数点后14位
12、format rat的作用是最接近的有理数
12、interp1(x0,y0,x)的作用是求以x0,y0为节点数组,x为插值点数组的分段线性插值
13、13、[a,b,c,d]=fzero(@fun,x0)中参数的涵义是a是变号点的近似值,b是对应,的函数值,c是停止运行的原因(c=1即为找到该点,c=0就是没有找到)d是一个结构变量,@fun是求解方程的函数M文件,x0是零点或变号点附近的值。
14、龙格-库塔方法可用如下MATLAB命令求解微分方程[t,x]=ode45(@f,[a,b],x0),中参数的涵义是@fun是求解方程的函数M文件,[a,b]是输入向量即自变量的范围a为初值,x0为函数的初值,t为输出指定的[a,b],x为函数值
15、写出下列命令的功能:axis equal纵、横坐标轴采用等长刻度
text(1,2,‘y=sin(x)’)在x=1,y=2处加上字符串y=sin(x);hold on把新的plot产生的图形画在原来的图形上。
title(‘y=sin(x)’)在图形正上方加上字符串y=sin(x)
16、Matlab中自定义函数M文件的第一行必须以function开头;
17、二种数值积分的库函数名为:quad;quadl
18、unifrnd(1,2,3,4)的功能是:随机生成3行4列均匀分布,每个元素服从(1,2)的矩阵
19、binornd(20,0.3,3,4)的功能是随机生成3行4列服从(20,0.3)的二项分布的矩阵
20、eig(A)的功能是矩阵A的特征值
21、设x是一向量,则hist(x)的功能是作出将X十等分的直方图
22、interp1([1,2,3],[3,4,5],2.5)
Ans=4.5
23、建立一阶微分方程组yxtyyxtx34)(3)(2的函数M文件。(做不出来)
二、写出运行结果:
1、>>eye(3,4)=100001000010
2、>>size([1,2,3])=1;3
3、设b=round(unifrnd(-5,5,1,4)),则=3 5 2 -5
>>[x,m]=min(b);x=-5;m=4
,[x,n]=sort(b)
-5 2 3 5
4 3 1 2
mean(b)=1.25,median(b)=2.5,range(b)=10
4、向量b如上题,则
>>any(b),all(b<2),all(b<6)
Ans=1 0 1
5、>>[5 6;7 8]>[7 8;5 6]=0011
6、若1234B,则
7、>>diag(diag(B))=1004
8、>>[4:-2:1].*[-1,6]=-4 12
9、>>acos(0.5),atan(1)
ans=
1.047197551196598
ans=
0.785398163397448
10、>>norm([1,2,3])
Ans=3.741657386773941
11、>>length([1,3,-1])=3
12、>>x=0:0.4:2;plot(x,2*x,’k*’)
13、>>zeros(3,1);
ans=
0
0
0
14、>>ones(3)=111111111,vander([2,3,5])=4219312551
16、>>floor(1:0.3:3)=
1 1 1 1 2 2 2
18、>>subplot(2,2,1);
fplot('sin',[0,2*pi]);subplot(2,2,2);plot([1,2,-1]);
>>x=linspace(0,6*pi);subplot(2,2,3);plot3(cos(x),sin(x),x);
>>subplot(2,2,4);polar(x,5*sin(4*x/3));
19、>>t=linespace(0,2,11)
0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0
20、>>[a,b]=binostat(15,0.2)a=3 b=2.4
>>y1=binopdf(5,10,0.7)=0.1029,y2=binocdf(5,10,0.7)=0.1503
1 1 1 1
1 1 1 1
>>y=-poissrnd(8,2,4)
-16 -10 8 -7
-7 -8 -6 -9
>>sign(y) -1 -1 -1 -1
-1 -1 -1 -1
35、>>[a1,b1]=binostat(20,0.4) a1=8 b1=4.8
>>[a2,b2]=poisstat(8)ans=8,8
>>[a3,b3]=chi2stat(15)ans=[15 30]
36、运行M文件:chi2fig
n=5;a=0.9;
xa=chi2inv(a,n);
x=0:0.1:15;y=chi2pdf(x,n);
plot(x,y,'b');hold on;
xf=0:0.1:xa;yf=chi2pdf(xf,n);
fill([xf,xa],[yf,0],'g');
text(xa*1.01,0.005,num2str(xa));
text(2.5,0.05,'alpha=0.9','fontsize',20);
text(9,0.09,'X~{\chi}^2(4)','fontsize',16);
37、>>t=linspace(0,2*pi);
>>polar(t,3*t,’g*’)
38、>>quadl(’exp(2*x).*log(3*x)’,1,3)
ans =
398.6352
39、x0=0:2*pi/6:2*pi;y0=sin(x0).*cos(x0);
x=[linspace(0,2*pi,100)];y=sin(x).*cos(x);y1=spline(x0,y0,x);
[x;y;y1]'
plot(x,y,'k',x,y1,'b-')
注:此处省略100组数据
40、>>A=round(unifrnd(0,100,3,3));
>>[L,U]=lu(A)
L =
0.9897 0.4699 1.0000
0.1649 1.0000 0
1.0000 0 0
U =
97.0000 80.0000 92.0000
0 35.8041 26.8247
0 0 -89.6568
41、a=sparse([1 3 3],[2 3 5],[1 2 3],4,5);s=full(a)
s =
0 1 0 0 0
0 0 0 0 0
0 0 2 0 3
0 0 0 0 0
三、编程
1、 分别用矩形公式、梯形公式、辛普森公式、Gauss-Lobatto公式及随机模拟方法计算数值积分/230sin2xexdx,并与符号运算计算的结果进行比较。
format long
x=0:0.01:pi/2;
y=exp(3*x).*sin(2*x);
s1=sum(y)*0.01;
s2=trapz(x,y);
s3=quad('exp(3*x).*sin(2*x)',0,pi/2);
s4=quadl('exp(3*x).*sin(2*x)',0,pi/2);
n=10000;
x=unifrnd(0,pi/2,1,n);
y=unifrnd(0,exp(5.5),1,n);
k=0;
for i=1:n
if y(i)<=exp(3*x(i)).*sin(2*x(i))
k=k+1;
end
end
s5=k/n*pi/2*exp(5.5);
syms x
s=int(exp(3*x).*sin(2*x),0,pi/2);
s6=double(s);
[s1,s2,s3,s4,s5,s6]
输出结果:ans =
Columns 1 through 3
17.278609048277868 17.277724710546092 17.279658142557587
Columns 4 through 6
17.279658229217087 17.219381240184841 17.279658229208650
2、 用雅可比迭代求解线性方程组Axb,其中123211222,,112xAxxbx随机取。要求使用函数型M文件,并有对其迭代格式的收敛性进行判断的功能。
雅可比迭代M文件;
function [x,m]=yakebi(A,b,x0,tol,n)
D=diag(diag(A));
L=-tril(A,-1);U=-triu(A,1);
B=D\(L+U);f=D\b;
x=x0;
if max(abs(eig(B)))>=1
disp('迭代不收敛')
end
for k=1:n
x=B*x+f;
x;
if norm(A*x-b)
break
end