MATLAB课程报告.docx
《MATLAB课程报告.docx》由会员分享,可在线阅读,更多相关《MATLAB课程报告.docx(12页珍藏版)》请在冰点文库上搜索。
MATLAB课程报告
MATLAB课程报告
摘要
MATLAB(MatrixLaboratory)是由美国MathWorks公司开发的集数值计算、符号计算和图形可视化基本功能于一体的,功能强大、操作简单的语言,是国际公认的优秀数学应用软件之一。
与符号计算相比,数值计算在科研和工程中应用更为广泛。
MATLAB也正是凭借其卓越的数值计算能力而著称。
多项式计算在理工科教学、科研中具有特殊地位和意义,而MATLAB使其的实现,更加赋予了多项式广阔的工程应用空间。
关键词:
多项式计算多项式拟合最小二乘法
ABSTRACT
MATLAB(Laboratory)isapowerful,operationsimplelanguagefromtheMatrixMathWorkscompanywhichcollectingnumericalcalculation,symboliccomputationandgraphicvisualbasicfunctionsinone,isinternationallyrecognizedasoneoftheexcellentmathematicsapplicationsoftware.
Comparedwithsymboliccomputation,numbericalcalculationismorepopularusedinexceptionalnumbericalcalculationability.Polynomialcalculationhasaspecialstatusandsignificanceinscienceteachingandresearch.AndMATLABmakeitsrealization,whichmoregiftedpolynomialcalculationwideengineeringapplicationspace.
Keywords:
PolynomialcalculationPolynomialfittingLeast-square
目录
一·概述课程
二·重点阐述
1.多项式运算
2.多项式拟合
3.最小二乘法
三·结束语
四·温馨致谢
五·参考文献
一·概述课程
课本《数值计算》一章分为数值微积分、矩阵和代数方程、概率分布和统计分析以及多项式运算和卷积四节内容,集合课本内容以及个人兴趣,简单介绍多项式计算、多项式拟合、最小二乘法及其工程应用举例。
二·重点阐述
1多项式计算
·多项式表达方式的约定
MATLAB约定降幂多项式a(x)=a1xn+a2xn-1+……+anx+a1用以下系数行项量表示:
a=[a1,a2,……,an,an+1],即把多项式的各项系数依降幂次序排放在行向量的元素位置上。
注意:
假如多项式中缺某幂次项,则应认为该幂次项得系数为零。
·多项式运算函数
指令
含义
C=conv(a,b)
计算a(x)b(x)乘积多项式c(x)的系数向量c
[q,r]=deconv(b,a)
求出b(x)/a(x)=q(x)+r(x)·[a(x)]-1运算中商多项式q(x)和余多项式r(x)的系数向量q和r
[r,p,k]=residue(b,a)
当a(x)不含重根时,计算部分分式分解b(s)/a(s)=r1/s-p1+r2/s-p2+……+rn/s-pn+k(s)
中的极点(Poles)、留数(Residues)和直项(Directterm)。
输出量r是由“各分子”构成的[r1,r2,……,rn]一维数组;
输出量p是由“各极点”构成的[p1,p2,……,pn]一维数组;
输出量k是多项式k(s)的系数行向量
r=roots(a)
求a(x)多项式的根
a=poly(r)
若r是一维数组,则该指令实施“据多项式根求多项式各项系数”的运算。
此时,输入量r的各元素表示多项式的根,输出量a表示多项式的系数向量
若r是方阵,则该指令实施“计算方阵特征多项式”的运算。
此时,a表示矩阵r所对应的特征多项式的系数向量
V=polyval(p,X)
在x=xij时,计算多项式p(x)的值vij=p(xij)。
Xij是输入量X的第(i,j)元素;vij是输出量V的第(i,j)元素。
简单地说,按数组运算规则计算多项式值
V=polyvalm(p,X)
计算矩阵多项式的值V=p1Xn+……pnX+pn+1I。
换句话说,按矩阵运算规则计算多项式值。
P为多项式,X为矩阵
·具体实例体会
例一演示:
多项式系数向量的正确表达;指令conv,deconv,poly2str的使用;如何演算。
求(s2+2)(s+4)(s+1)\(s3+s+1)的“商”及“余”多项式。
(1)求“商”及“余”多项式
formatrat
p1=conv([1,0,2],conv([1,4],[1,1]));
p2=[1011];
[q,r]=deconv(p1,p2);
cq='商多项式为';cr='余多项式为';
disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,'s')])
商多项式为s+5
余多项式为5s^2+4s+3
(2)利用计算所得“商”和“余”验算分子多项式
qp2=conv(q,p2);
pp1=qp2+r;
pp1==p1
ans=
11111
例二演示:
poly,roots的用法;矩阵特征值与特征多项式根的关系;多项式求根在MATLAB中是如何实现的;如何生成多项式的伴随矩阵。
矩阵和特征多项式,特征值和多项式根。
(1)求矩阵的特征多项式
formatshort
A=[111213;141516;171819];
PA=poly(A)
PPA=poly2str(PA,'s')
PA=
1.0000-45.0000-18.00000.0000
PPA=
s^3-45s^2-18s+1.8303e-014
(2)方阵特征值和特征多项式根
s=eig(A)
r=roots(PA)
s=
45.3965
-0.3965
0.0000
r=
45.3965
-0.3965
0.0000
(3)特征多项式的伴随矩阵
n=length(PA);
AA=diag(ones(1,n-2,class(PA)),-1);
AA(1,:
)=-PA(2:
n)/PA
(1);
AA
sr=eig(AA)
AA=
45.000018.0000-0.0000
1.000000
01.00000
sr=
45.3965
-0.3965
0.0000
2多项式拟合
·数据处理原理和方法
多项式拟合是指在函数关系y=f(x)不知道的情况下,可以根据对原始数据找出一个含有(k+1)个参数的k阶多项式逼近即y=f(x)=a0+a1x+a2x2+……akxk.
·拟合过程说明
(1)一般先从低阶开始拟合,这个判别规则非常复杂,但如果利用MALAB问题就显得很简单。
如k阶是最佳拟合,不再进行更高阶拟合,当输入阶数大于k时,计算机就会显示polynomialisinbedconditioned等等。
(2)为保证较好的拟合效果,多项式阶数要取得适当。
过低,可能残差较大;过高,拟合模型将包含噪声影响,通常要保证n观察数据图形曲线,有助于适当阶数的确定。
·具体实例体会
例一演示怎样用MATLAB画出二元多项式曲线
x2+0.1x-1=y2+y-1
symsxy
ezplot('x^2+0.1*x-1=y^2+y-1')
例二演示给定数据组,求拟合三阶多项式,并图示拟合情况。
x0=0:
0.1:
1;
y0=[-0.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22];
n=3;
p=polyfit(x0,y0,n)
xx=0:
0.01:
1;
yy=polyval(p,xx);
plot(xx,yy,'-b',x0,y0,'.r','MarkerSize',20)
legend('拟合曲线','原始数据','Location','SouthEast')
xlabel('x')
p=
56.6915-87.117440.0070-0.9043
例三演示实际应用
某种合金中的主要成分为A,B两种金属,经过试验发现:
这两种金属成分之和x与合金的膨胀系数y有如下关系,建立描述这种关系的数学表达式
x
37
37.5
38
38.5
39
39.5
40
40.5
41
41.5
42.5
43
y
3.4
3
3
2.27
2.1
1.83
1.53
1.7
1.8
1.9
2.54
2.9
解首先作出散点图
(1)程序
x=37:
0.5:
42.5;
y=[3.4,3,3,2.27,2.1,1.83,1.53,1.7,1.8,1.9,2.54,2.9];
plot(x,y,'*')
(2)图形
发现:
有点像抛物线,故选二次函数拟合
p=polyfit(x,y,2)
p=
0.1927-15.4692312.1523
函数关系式为
y=0.1927x2-15.4692x+312.1523
2最小二乘法
·问题说明
多项式拟合问题可以更具体地如下:
对于实验数据可写出一组方程:
y1=a1x1+a2x12+……an+1x1n+1
y2=a1x2+a2x22+……an+1x2n+2
…………
ym=a1xm+a2xm2+……an+1xmn+m
上述方程组可用矩阵形式简述记为
y=xaT+
在此y=[y1,y2,……,ym]T,a=[a1,a2,……,an+1],式中的用来表示噪声(包括测量误差等)。
多项式拟合问题就是由实验数据求多项式系数向量a=x\y。
·具体实例体会
例一演示运用最小二乘法求拟合多项式的系数。
给定数据组,求拟合三阶多项式,并图示拟合情况。
程序:
x0=(0:
0.1:
1)';
y0=[-0.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22]';
m=length(x0);
n=3;
X=zeros(m,n+1);
fork=1:
n
X(:
n-k+1)=(x0.^k);
end
X(:
n+1)=ones(m,1);
aT=(X\y0)'
aT=
56.6915-87.117440.0070-0.9043
三结束语
为了完成这份课程报告,我投入了大量的时间与精力,但我感到欣慰的是我通过自己的努力完成了。
虽然报告内容形式简单,没有将MATLAB这一集数学计算、可视化编程等功能于一体的功能强大的工具软件得以完整阐述,但本次课程报告让我受益匪浅。
通过本次课程报告,我对MATLAB软件有了进一步的理解。
通过查阅大量的资料进一步提高了对MATLAB软件的掌握程度,并得到了灵活的运用。
另外对我而言,当我全身心投入地做某事,并且把它完成,这种令人回味的满足感就是幸福,是我所有努力和辛勤付出换来的兴奋感。
我想说:
有一种生活,没有经历过就不知道其中的艰辛;有一种艰辛,没有体会过就不知道其中的快乐;有一种快乐,没有拥有过就不知道其中的纯粹;你,知道其中的艰辛,拥有其中的快乐;我,沿着老师的指导,领略着学习的纯粹。
四温馨致谢
报告即将完成,我的心情无法平静,从开始课题报告内容选择到报告的顺利完成,有好多尊敬的师长、友善的同学、亲爱的朋友给以了我很大的帮助。
在这里请接受我诚挚的谢意!
首先感谢我的授课老师陈明生导师,在他的严格要求和悉心指导下,我的报告才可以完成。
同时他严谨细微、一丝不苟的作风一直是我学习的榜样;他循循善诱的教导和不拘一格的思路给予了我无尽的启迪。
还要特别感谢江东老师帮我的电脑安装MATLAB7.0软件,打扰他个人休息时间,万分抱歉。
一个人的成长绝不是一件孤立的事,没有别人的支持与帮助不可能办到。
我感谢有这样一个空间,让我对所有给予关心,帮助的人说声“谢谢”!
今后,我会继续努力,好好学习,不负众望!
同时祝福大家工作顺利,生活愉快,阖家幸福!
五参考文献
1.张志涌,精通MATLAB6.5版教程,北京航空航天大学出版社,2003
2.MathWork.MATLABR2010a.2010.
3.王彬,MATLAB数字信号处理,机械工业出版社,
4.AbellML,BraseltonJP.Maple.AcademicPress,1999
5.苏金朋,MATLAB实用教程,电子工业出版社,
6.张德丰,MATLAB语言高级编程