234 葛雷+数学实验周15.docx
《234 葛雷+数学实验周15.docx》由会员分享,可在线阅读,更多相关《234 葛雷+数学实验周15.docx(37页珍藏版)》请在冰豆网上搜索。
234葛雷+数学实验周15
淮阴工学院
数学软件专业实践周
班级:
金融1131
姓名:
葛雷
学号:
1134104134
教师:
王小才 胡平
教师
王小才
胡平
答辩分
总分
得分
数理学院
数学实验周题目
一、代数与矩阵综合题
生成3阶矩阵
,
其中,系数向量
利用下述方法给定:
;m为你的学号最后2位。
(1)求
的秩,行列式,
的伴随矩阵。
程序代码:
clc
clear
a=fliplr(-(randi(8,3,1)-4)')
A=[0,1,0;0,0,34;a]
save('filename1','a','A')
disp('A的秩为:
')
disp(rank(A))
disp('A的行列式')
disp(det(A))
disp('A的伴随矩阵')
disp(inv(A)*det(A))
运行结果:
A=
010
0034
2-2-2
A的秩为:
3
A的行列式
68
A的伴随矩阵
68234
6800
020
(2)向量
由
生成,求方程
的解。
程序代码:
b=randi(20,3,1)-4
x=A\b
运行结果:
x=
7.1765
-1.0000
0.1765
(3)求
的特征多项式
,计算
,并对结果进行必要的讨论;
PA=poly(A)
fx=poly2str(PA,'x')
FA=A^3+2*A^2+68*A-68
运行结果:
PA=
1.00002.000068.0000-68.0000
fx=
x^3+2x^2+68x–68
FA=
0-68-68
-680-68
-68-680
(4)确定一个区间
,使该区间包含特征方程
所有的根,并画出曲线
的图像(显示的效果尽可能地好);
程序代码:
c=0,d=2
x=-10:
0.05:
10
y=x.^3+2*x.^2+68*x-68
plot(x,y,'color','r','Linewidth',3)
(5)使用函数roots或solve求方程
最小的实根或唯一的实根;
程序代码:
symsx
x1=solve(x^3+2*x^2+68*x-68==0)
x=vpa(x1)
结果:
x=
0.95989
-1.4799+8.2856*i
-1.4799-8.2856*i
结论:
有唯一实根x=0.95989
(6)求
的特征值和化成Jordan标准型的变换矩阵
;
运行代码
D=1/2*(A+A')
disp('D的特征值')
disp(poly(D))
[V,J]=jordan(D)
Q=V
结果:
D的特征值
1.00002.0000-257.2500-16.5000
Q=
-0.0312-0.0000i0.1014+0.0000i-32.2741-0.0000i
-0.9381+0.0000i1.0627-0.0000i2.1381-0.0000i
1.00001.00001.0000
(7)根据计算
的结果,指出矩阵
具有的性质,并说明是否与你所了解的结论一致;
程序:
K=Q'*Q
结果:
K=
1.0e+03*
0.0019-0.0000+0.0000i0.0000-0.0000i
-0.0000-0.0000i0.00210.0000+0.0000i
0.0000+0.0000i0.0000-0.0000i1.0472
K是一个对角矩阵,一致的
(8)求二元函数
的具体表达式,说明该二元函数是那种类型的二次曲面,编写函数型m文件定义该二元函数;
程序代码:
symsxyz
z=[xy1]*D*[x;y;1]
结果:
z=x+16*y+x*(y/2+1)+y*(x/2+16)–2
类似于马鞍面的二次曲面
functionz=mfun1(x,y)
z=x+16*y+x.*(y./2+1)+y.*(x./2+16)-2
end
(9)选取适当的圆形区域画出该二次曲面,并使显示效果尽可能地好。
clc
clf
[x,y]=meshgrid(-5:
0.01:
5);
z=mfun1(x,y);
k=find(x.^2+y.^2>25);
x(k)=NaN;
mesh(x,y,z)
二、绘图基础题要求对图像作必要的修饰。
1.用subplot命令把图像分成4块,分别绘出下面4个函数的图像
作出极坐标方程为
的对数螺线的图形.
自己画一个分段函数的图像
其中
是由randint(或randi)命令产生的1到20之间的正整数。
randi(20,9,1)
ans=19381226111020
可设为:
c1=19;c2=3;c3=8;c4=12;n=2;a=6;b=12;c=10;d=20;
程序代码
clc
clear
c1=19;c2=3;c3=8;c4=12;n=2;a=6;b=12;c=10;d=20;
subplot(2,2,1)
symsxyt
x=cos(c1*t).*cos(c2*t);
y=sin(c3*t).*cos(c4*t);
ezplot(x,y)
subplot(2,2,2)
theta=linspace(-2*pi,2*pi);
h=polar(theta,exp(theta/5));
set(h,'Linewidth',2,'color','r')
subplot(2,2,3);
[X,Y]=meshgrid(-5:
0.01:
5);
Z=6*X.^2+12*Y.^2-10*X.*Y-20;
surf(X,Y,Z);
shadingflat;
subplot(2,2,4);
x=0:
0.01:
6;
y=sqrt(x).*(x>=0&x<2)+x.*(x>=2&x<4)+4*(x>=4);
plot(x,y,'Linewidth',2)
axis([0606])
gridon
结果:
2.自己选两个身边的实例,要求分别用pie(或pie3)画饼图,bar命令绘直方图。
程序1:
votes=[10283038]
explode=[0001]
pie(votes,explode,{'AnthonyDavis','LeBronJames','JamesHarden','StephenCurry'})
set(gca,'Fontsize',10)
title('MVP')
程序2:
x=[1700:
100:
2000];
y=[2.5,3,4,13]
bar(x,y)
xlabel('年代')
ylabel('人口(亿)')
3.作出函数
的图形,用小红点标出其在[0,6]之间的最小值点,并在最小值点附近标出该最小值点的坐标值;其中
是由randint(或randi)命令产生的1到20之间的正整数。
运行:
randi(20,1,5)
ans=410201217
所以有程序:
clc
a=4;b=10;c=20;d=12;e=17;
x=0:
0.01:
6;
y=a*x.^4-b*x.^3+c*x.^2-d*x+e
mix_where=find(y==min(y));
xmin=x(mix_where);
plot(x,y,'Linewidth',2);
holdon;
plot(xmin,min(y),'ro','linewidth',5);
str=strcat('(',num2str(xmin),',',num2str(min(y)),')');
text(xmin,min(y),str)
三、绘图综合题
1.令
(m为你的学号最后2位),请使用两种方法画出球面
。
提示:
第一种方法用matlab函数sphere;第二种方法使用球面坐标。
subplot(1,2,1)
m=34;R=2*m;
[x,y,z]=sphere(50);
surf(R*x,R*y,R*z)
xlabel('x')
ylabel('y')
zlabel('z')
axisequal
shadingflat
subplot(1,2,2)
t=linspace(0,pi,50)
p=linspace(0,2*pi,50)
[theta,phi]=meshgrid(t,p)
x=R*sin(theta).*sin(phi)
y=R*sin(theta).*cos(phi)
z=R*cos(theta)
surf(x,y,z)
axisequal;
xlabel('x')
ylabel('y')
zlabel('z')
2.绘出圆柱
与球面
相交组成的几何体。
程序代码:
clf
clear
z0=-2:
0.01:
2
t=[0:
0.01:
2*pi]'
m=34
R=2*m
r=34
X=cos(t)*(r+0*z0)+r
Y=sin(t)*(r+0*z0)
Z=(r+0*t)*z0
k=find(X.^2+Y.^2+Z.^2>R^2)
Z(k)=NaN
mesh(X,Y,Z)
holdon
[UV]=meshgrid(0:
0.01:
2*pi)
X1=R*cos(U).*cos(V)
Y1=R*sin(U).*cos(V)
Z1=R*sin(V)
k1=find((X1-r).^2+Y1.^2>r^2)
Z1(k1)=NaN
mesh(X1,Y1,Z1)
3.利用M文件定义圆柱圆柱
与球面
相交组成的曲线,并且利用你定义好的函数绘出该曲线。
建立function文件:
function[xyz]=mfun1(t,r,R)
x=r*cos(t)+r;
y=r*sin(t);
z=sqrt(R^2-(r*cos(t)+r).^2-(r*sin(t)).^2);
end
运行程序:
clc
clear
r=34
m=34
R=2*m;
t=-2*pi:
0.01:
2*pi;
[xyz]=mfun1(t,r,R);
plot3(x,y,z,'linewidth',3);
holdon
plot3(x,y,-z,'linewidth',3);
4.设相交曲线的线密度为
,请用两种方法计算相交曲线的质量。
提示:
第一种方法用matlab函数int;第二种方法微元法求其近似值。
法1:
clc
m=34
R=2*m
r=34
symst
x=r*cos(t)+r;
y=r*sin(t);
z=sqrt(R^2-(r*cos(t)+r).^2-(r*sin(t)).^2);
a=diff(x,t)
b=diff(y,t)
c=diff(z,t)
f=abs(y)*sqrt(a^2+b^2+c^2)
n=int(f,t,0,2*pi)
m=2*double(n)
结果:
m=
1.1273e+04
法2:
clc
clear
r=34;
R=68;
n=10000;
theta=linspace(0,2*pi,n);
m=0;
x=r*cos(theta)+r;
y=r*sin(theta);
z=sqrt(R^2-2*r^2-2*r^2*cos(theta));
fori=1:
n-1;
Ai=[x(i)y(i)z(i)];
Aij=[x(i+1)y(i+1)z(i+1)];
li=norm(Ai-Aij);
md=abs(y(i));
m=m+li*md;
end
formatshort
m=2*m
结论:
m=
1.1273e+04
四、高等数学中计算题的Matlab求解。
注意:
下面题目中
为你的学号后两位。
1、计算
(1)
程序:
symsx
f=(cos(x))^(34/(x^2));
limit(f,x,0,'right')
结果:
ans=exp(-17)
(2)求
一阶、二阶导数
程序:
symsx
m=34
f=(m*x+tan(3*x))^0.5+sin(x).*cos(m*x);
disp('一阶导数')
disp(diff(f,x))
disp('二阶导数')
disp(diff(f,x,2))
结果:
一阶导数
cos(34*x)*cos(x)-34*sin(34*x)*sin(x)+(3*tan(3*x)^2+37)/(2*(34*x+tan(3*x))^(1/2))
二阶导数
(3*tan(3*x)*(3*tan(3*x)^2+3))/(34*x+tan(3*x))^(1/2)-1157*cos(34*x)*sin(x)-68*sin(34*x)*cos(x)-(3*tan(3*x)^2+37)^2/(4*(34*x+tan(3*x))^(3/2))
(3)
(4)
(3)
clc
symstx
m=34;
f0=exp(t^2)
s=int(f0,x,0,m*x)
f1=t*(exp(t^2)^2)
h=int(f1,x,0,x)
f2=(s^2)/h
limit(f2,x,0)
结果:
ans=0
(4)symsxn
m=34;
f=(x^m+m*x)/(n*2^n);
symsum(f,n,1,inf)
结果:
ans=log
(2)*(x^34+34*x)
2.解方程
程序:
clc
clear
[x,y]=solve('x^2+2*x*y-34*y=3','2*x^2-3*x+5=0','x','y')
结果:
x=
(31^(1/2)*i)/4+3/4
3/4-(31^(1/2)*i)/4
y=
(31^(1/2)*5*i)/532-37/266
-(31^(1/2)*5*i)/532-37/266
4.求函数
在区间[-11]内的最小值。
提示:
一元函数极小值使用fminbnd命令。
程序:
clc
x1=-1;
x2=1;
m=34
yx=@(x)(x+3*(x^2+m*cos(x)));
[xn0,fval,exitflag,output]=fminbnd(yx,x1,x2)
结果:
xn0=-1.0000
最小值fval=57.1147
5.求多元函数
在
附近的最小值。
提示:
一元函数极小值使用fminunc或fminsearch命令。
程序:
m=34
[x,fval]=fminsearch(@(x)x
(1)^4+2*m*sin(x
(2))-m*cos(x(3)),[0,5,4])
结果:
x=
-0.00284.71246.2832
最小值fval=-102.0000
6.求微分方程的解.
(1)
(2)
(1)clc
dsolve('Du=34+u^2','t')
结果:
ans=
34^(1/2)*tan(34^(1/2)*(C3+t))
34^(1/2)*i
-34^(1/2)*i
(2)clc
formatcompact
dsolve('D2y+34*Dy+29*y=0','y(0)=0','Dy(0)=15','x')
结果:
ans=
(3*65^(1/2)*exp(x*(2*65^(1/2)-17)))/52-(3*65^(1/2)*exp(-x*(2*65^(1/2)+17)))/52
7.求微分方程
在初值条件
情况下的解,并且画出解得积分曲线
建立function文件:
functiondy=MYfun1(t,y)
dy=zeros(2,1);
dy
(1)=y
(2);
dy
(2)=34*(1-y
(1)^2)*y
(2)-y
(1);
运行程序:
clc;clear;
formatcompact;
[T,Y]=ode15s('MYfun1',[0150],[10]);
plot(T,Y(:
1),'-','linewidth',2)
五、高等数学综合题
1.编写程序文件定义自变量为符号变量的二元函数(m为你的学号最后2位)
其中
(提示:
利用y=sym(‘y’,‘positive’))。
clc
clear
formatcompact;
m=34;
symsx;
y=sym('y','positive');
f=cos(m*x*y)/(1+x^2)
2.画出该函数(曲面)在区域
上的图像,并选定好的视角;
程序:
clc
clear
formatcompact
m=34;
[x,y]=meshgrid([0:
0.02:
2*pi],[0.5:
0.05:
5]);
z=cos(m*x.*y)./(1+x.^2);
mesh(x,y,z)
3.计算该函数关于自变量
在区间
上的参变量积分
程序:
clc
formatcompact
symsxy
m=34
a=cos(m*x*y)/(1+x^2);
int(a,x,0,inf)
结果:
ans=(pi*exp(-34*y))/2
4.求函数
的一阶导数,并与下述函数比较:
程序:
clc
formatcompact
symsxy
m=34
a=cos(m*x*y)/(1+x^2);
gy=int(a,x,0,inf);
g1=diff(gy,y)
b=diff(a,y);
hy=int(b,x,0,inf)
结果:
g1=
-17*pi*exp(-34*y)
hy=
-17*pi*exp(-34*y)
答:
两结果一样
5.求函数
的二阶导数,根据求得的结果判断
是否为某个二阶微分方程的解,如果是,写出该二阶微分方程。
程序:
symsx
symsypositive;
m=34
a=cos(m*x*y)/(1+x^2);
gy=int(g,x,0,inf);
gy2=diff(gy,y,2)
y=int((int(g2,x)),x)
disp('二阶微分方程')
disp(y)
结果:
二阶微分方程
(289*pi*x^2*exp(-17*y))/4
六、Matlab优化工具箱OptimizationToolbox应用
1给定代数方程如下:
(m为你的学号最后2位)
(1).在适当区间画出该方程左端函数曲线;
程序:
clc
formatcompact
m=34
x=-2:
0.01:
2
y=x.^5-3*x.^2-x-1+sin(m+x.^2).*exp(-x.^2);
plot(x,y,'linewidth',2)
(2).利用fzero或fsolve,并通过选择适当的初始搜索点
,求该方程全部实根;
程序:
clc
formatcompact;
symsx
m=34;
y=@(x)x^5-3*x^2-x-1+sin(m+x^2)*exp(-x^2);
fzero(y,0)
结果:
ans=
1.5939
(3).把零点绘在代数方程的曲线上,注意选取适当的显示区间。
程序:
clc
formatcompact
x=1:
0.01:
2
y=x.^5-3*x.^2-x-1+sin(17+x.^2).*exp(-x.^2);
plot(x,y,'Linewidth',2)
holdon
h1=plot(1.5939,0,'k.');
set(h1,'color','r','MarkerSize',30)
2.给定二元函数(m为你的学号最后2位)
(1)求该函数在区域
上满足约束条件:
的极值(二次规划问题);
程序代码
clc
formatcompact
H=[234;34-68];
f=[];
A=[-11];
b=[1];
Aeq=[];
beq=[];
lb=[-2;-2];
ub=[2;2];
opts=optimset('Algorithm','active-set','Display','off');
[x,fval,exitflag]=quadprog(H,f,A,b,[],[],lb,ub,[],[],opts)
结果:
x=1.0000
2.0000
最小值fval=-67.0000
exitflag=1
(2)求该函数在区域
上满足约束条件:
的最小值
程序代码:
x0=[1;1];
VLB=[-2-2];VUB=[22];
[X,fval]=fmincon('fun',x0,[],[],[],[],VLB,VUB,'nonlcon')
保存fun文件:
functionf=fun(X)
f=X
(1)^2+34*X
(1)*X
(2)-34*X
(2)^2;
end
保存‘mycon’文件:
function[G,Ceq]=mycon(x)
G=x
(2)-x
(1)-1;
Ceq=x
(2)-x
(1)^2;
end
结果:
X=
1.4142
2.0000
最小值:
fval=-37.8335
(3)求该函数满足
(2)中约束条件的最大值;
程序代码:
x0=[1;1];
VLB=[-2-2];VUB=[22];
[X,fval]=fmincon('fun',x0,[],[],[],[],VLB,VUB,'nonlcon')
保存fun文件:
functionf=fun(X)
f=-X
(1)^2-34*X
(1)*X
(2)+34*X
(2)^2;
end
保存mycon文件:
function[G,Ceq]=mycon(x)
G=x
(2)-x
(1)-1;Ceq=x
(2)-x
(1)^2;
end
结果:
X=0.76910.5915fval=-4.1630即最小值为4.1630
七、编程题
注意:
下面题目中
为你的学号后两位
1.利用M文件定义一个分段函数
令
利用你定义的函数画出
建立function函数:
functiony=myfun(x)
n=length(x)
fori=1:
n
ifx(i)<0
y(i)=-x(i)*exp(34/x(i))
elseifx(i)<=1
y(i)=x(i)^3
else
y(i)=log10(x(i)+9)
end
end
运行程序:
x=-3:
0.01:
3
m=34
g=34*sin(x).*exp(-1/9*x)