MATLAB结课论文dpf.docx
《MATLAB结课论文dpf.docx》由会员分享,可在线阅读,更多相关《MATLAB结课论文dpf.docx(21页珍藏版)》请在冰豆网上搜索。
MATLAB结课论文dpf
一学习的主要内容和目的
了解MatLab软件的功能,熟悉MatLab软件的各菜单、工具栏及常用命令的使用。
掌握MatLab有关矩阵的创建方法、矩阵的基本运算符、矩阵的计算函数。
掌握MatLab的符号运算。
熟练掌握二维、三维图形的绘制;掌握简单动画的制作;了解分形几何学,绘制Koch雪花曲线和Minkowski“香肠”曲线。
熟炼掌握MatLab程序设计的顺序、分支和循环结构;熟炼掌握脚本M文件和自定义函数的设计和使用;复习高等数学中有关函数极限、导数、不定积分、定积分、二重积分、级数、方程近似求解、常微分方程求解的相关知识.通过作图和计算加深对数学概念:
极限、导数、积分的理解.学会用MatLab软件进行有关函数极限、导数、不定积分、级数、常微分方程求解的符号运算;了解数值积分理论,学会用MatLab软件进行数值积分;会用级数进行近似计算.复习线性代数中有关行列式、矩阵、矩阵初等变换、向量的线性相关性、线性方程组的求解、相似矩阵及二次型的相关知识.学会用MatLab软件进行行列式的计算、矩阵的基本运算、矩阵初等变换、向量的线性相关性的判别、线性方程组的求解、二次型化标准形的运算.
二作图应用
1描点作图(图1-1)
Y=
(高数数学上册P19)
Y=lnx(高数数学上册P20)
(高等教育出版社出版,同济大学数学教研室主编,第四版)(下同)
x=0:
0.1:
1
y1=exp(x)
y2=log(x)
plot(x,y1,'b',x,y2,'g-.',x,y1,'+',x,y2,'*')
图1-1
2显函数作图(fplot)(图1-2)
Y=
(高等数学上册P31_习题1-2_1-(6))
先建立M文件myfun1.m
functiony=myfun(x)
y=exp(1/x);
再输入fplot('myfun1',[-1,-0.1])
图1-2
3隐函数作图(ezplot)(图1-3)
(Y=ln(x+
)(高等数学上册P127_习题2-5_1-(12))
ezplot('y-log(x+(1+x^2)^(1/2))',[-40,40,-4,5])
4参数方程作图(ezplot)(图1-4)
(P140_习题2-6_9-
(1))
ezplot('log(1-t^2)','t-atan(t)',[-0.9999,0.9999])
图1-3
图1-4
5极坐标作图
5)
(取a=10作图)(P450_附录II几种常用的曲线_(16)三叶玫瑰线)
theta=linspace(0,pi/1,100*pi);
rho=sin(3*theta);
polar(theta,10*rho,'b');
title('三叶玫瑰线a=10')
图1-5
6空间曲面作图(图1-6)(高等数学上册P441_总习题_19)
x=-5:
0.2:
5;
y=-5:
0.2:
5;
[X,Y]=meshgrid(x,y);
Z=(X-1).^2+(Y-1).^2;
surf(X,Y,Z)
xlabel('x'),ylabel('y'),zlabel('z')
三高等数学应用
1极限问题
(p72_习题1-7_1-
(2))
在MatLab的命令窗口输入:
symsx
limit((tan(3.*x)/x),x,0)
运行结果为ans=3
与理论
=3完全吻合。
2求导数问题
Y=
(P127_习题_2-5_9-(3))
在MatLab的命令窗口输入如下命令序列:
symsx
y=x^2*sin(2*x)
diff(y,x,50)
执行结果
ans=
689613692941107200*sin(2*x)+56294995342131200*x*cos(2*x)-
1125899906842624*x^2*sin(2*x)
与理论推导
=
(-
)完全吻合。
3求不定积分问题
dx(高等数学上册P273_总习题四_7)
在MatLab的命令窗口输入如下命令序列:
symsx
int('tan(x)^4',x)
执行结果:
ans=1/3*tan(x)^3-tan(x)+x
与结果
dx=
相吻合
4求定积分问题
(高等数学上册P332_总习题五_7-(5))
在MatLab的命令窗口输入如下命令序列:
Symsxy
y=(1/(1+(cos(x)^2)))
int(y,x,0,pi/2)
执行结果:
y=1/(1+cos(x)^2)
ans=1/4*2^(1/2)*pi
与理论推导
=
相吻合。
5求偏导数问题
求下列函数的
,
(高等数学下册P20_习题8-2_6-(3))
z=
symsxyz
z=y^x;
diff(z,x,2)
diff(z,y,2)
diff(diff(z,x),y)
执行结果:
ans=
y^x*log(y)^2
ans=
y^x*x^2/y^2-y^x*x/y^2
ans=
y^x*x/y*log(y)+y^x/y
6求二重积分问题
(高等数学下册P100例3)
计算
其中D是由直线
=x及y=x-2所围成的闭区域。
具体步骤如下:
(1)划定积分区域:
symsx
y1=x^(1/2);
y2=-x^(1/2);
y3=x-2;
ezplot(y1,[0,4.1])
holdon
ezplot(y2,[0,4.1])
ezplot(y3,[0,4.1])
title('积分区域')
结果如右图所示,两条曲线相交所围区域即为积分区域.
(2)确定交点的横坐标:
xa=fzero('-sqrt(x)-x+2',1)
xb=fzero('sqrt(x)-x+2',4)
结果为:
xa=
1
xb=
4
(3)化二重积分
为累次积分
在MatLab的命令窗口输入:
symsxyz
z=x*y;
dx1=int(z,y,-x^(1/2),x^(1/2));j1=int(dx1,0,1);
dx2=int(z,y,x-2,x^(1/2));j2=int(dx2,1,4);
jf=j1+j2
结果为:
jf=45/8
7求级数和的问题
(高等数学下册P319_总习题十一_6-
(1))
在MatLab的命令窗口输入如下命令:
symsktn
t=(1/(3^k))*(1+1/k)^(k^2);
limit(((1/n)*symsum(t,k,1,n)),n,inf)
执行结果:
ans=
limit(1/n*sum(1/(3^k)*(1+1/k)^(k^2),k=1..n),n=Inf)
8求函数的泰勒展开式问题
在MatLab的命令窗口输入如下命令序列:
symsx
taylor(x^(1/2),x,4,4)
执行结果:
ans=1+1/4*x-1/64*(x-4)^2+1/512*(x-4)^3
9求常微分方程的通解和特解问题
1)x
(高等数学下册P407_总习题十二_3-
(1))
操作步骤:
在MatLab命令窗口输入:
symsx
diff_equ='x*D1y+y=2*((x*y)^(1/2))';
y=dsolve(diff_equ,'x')
执行结果:
y=1/(y-x)/((x*y)^(1/2)-x)/x*(x*y)^(1/2)+1/(y-x)/((x*y)^(1/2)-x)-C1=0
四线性代数应用
1行列式问题
P57例一计算行列式D=
在MatLab命令窗口输入:
A=[1,-5,3,-3;2,0,1,-1;3,1,-1,2;-5,1,3,-4]
det(A)
执行结果:
A=
1-53-3
201-1
31-12
-513-4
ans=
-40
2矩阵运算问题(包括加,减,乘,转置,求逆,求秩)
P9例一已知矩阵A=
B=
求矩阵A+B
在MatLab命令窗口输入:
A=[2,0,-3;0,-1,5]
B=[4,2,1;3,0,-1]
A+B
执行结果:
A=
20-3
0-15
B=
421
30-1
ans=
62-2
3-14
P12例3已知矩阵A=
B=
求A-B
在MatLab命令窗口输入:
A=[1,-2,3;4,0,-5]
B=[2,1,3;0,5,-4]
A-B
执行结果:
A=
1-23
40-5
B=
213
05-4
ans=
-1-30
4-5-1
P14例1已知矩阵A=
B=
求AB
在MatLab命令窗口输入:
A=[2,-1;-1,3;0,1]
B=[2,1;0,3]
A*B
执行结果:
A=
2-1
-13
01
B=
21
03
ans=
4-1
-28
03
P107例一A=
的秩
在MatLab命令窗口输入:
A=[1,1,3,1;0,2,-1,4;0,0,0,5;0,0,0,0]
rank(A)
执行结果:
A=
1131
02-14
0005
0000
ans=
3
3一般的线性方程组求解问题
P163例5解方程组
在MatLab创建函数jfch.m
functiony=jfch(a,b)
[mn]=size(a);
c=[ab];
d=rref(c);
ra=rank(a);
rc=rank(c);
if(ra==rc)
if(ra==n)
y=d(:
n+1);
else
d(m+1,:
)=1:
n+1;
fori=1,ra
if(d(i,i)==0)
j=i+1;
while(d(i,j)==0)
j=j+1;
end
d(:
[i,j])=d(:
[j,i]);
end
end
x=[-d(1:
ra,ra+1:
n),d(1:
ra,n+1)];
x=[x;eye(n-ra,n-ra+1)];
y=x;
fori=1:
n
y(d(m+1,i),:
)=x(i,:
);
end
disp('thespecialsolutionis:
')
ss=y(:
n-ra+1)'
disp('thebasicsolutionis:
')
bs=y(:
1:
n-ra)'
end
else
disp('thereisnosolution')
end
在MatLab命令窗口输入:
formatrat
A=[1,1,-3,-1;3,-1,-3,4;1,5,-9,-8]
B=[1;4;0];
jfch(A,B)
执行结果:
ra=
2
thespecialsolutionis:
ss=
5/4-1/400
thebasicsolutionis:
bs=
3/23/210
-3/47/401
ans=
0
ans=
3/2-3/45/4
3/27/4-1/4
100
010
从结果可知系数矩阵的秩为2,方程组有无穷多解,通解为:
4向量组的线性相关性问题
P11520求下列矩阵的行向量组的一个最大线性无关组
操作步骤:
在MatLab命令窗口输入:
D=[-2103;1-324;3024;2-246];A=D’
rank(A)
rref(A)
执行结果:
ans=
4
ans=
1000
0100
0010
0001
5矩阵的特征值和特征向量问题
P18411.
(1)将下列对称矩阵化为对角矩阵
在MatLab命令窗口输入:
a=[2,-2,0;-2,1,-2;0,-2,0];
[d,v]=eig(a)
d'*d%验证d为正交矩阵
d'*a*d%验证矩阵可对角化
执行结果:
d=
-0.33330.6667-0.6667
-0.66670.33330.6667
-0.6667-0.6667-0.3333
v=
-2.000000
01.00000
004.0000
ans=
1.0000-0.00000.0000
-0.00001.00000.0000
0.00000.00001.0000
ans=
-2.0000-0.00000.0000
-0.00001.00000.0000
0.00000.00004.0000
要求的正交相似变换矩阵为d,对角阵为v.
6二次型化标准型问题
P189—例1求一正交变换x=Qy,把二次型
f=2
+2
-2
-2
+2
+2
化为标准型
在MatLab命令窗口输入:
A=[0,1,1,-1;1,0,-1,1;1,-1,0,1;-1,1,1,0];
[V,D]=eig(A)
执行结果:
V=
-0.50000.28870.78870.2113
0.5000-0.28870.21130.7887
0.5000-0.28870.5774-0.5774
-0.5000-0.866000
D=
-3.0000000
01.000000
001.00000
0001.0000
V就是所求的正交矩阵,使得V’AV=D,所以令X=VY,化简后的二次型为f=-3
+
+
+