资源描述:
《matlab5-1数值计算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章MATLAB的数值计算1.多项式计算2.方程组求解3.函数及其数值分析4.数据处理5.数据插值6.曲线拟合7.傅里叶变换1MATLAB@SDU1.多项式运算多项式表达方式的约定创建多项式的方法多项式运算函数2MATLAB@SDU多项式表达方式的约定MATLAB约定降幂多项式P(x)=a0xn+a1xn-1+…+an-1x+an用以下系数矢量(系数行向量)表示:p=[a0,a1,…,an-1,an],即把多项式的各项系数依降幂次序排放在行向量的元素位置上。注意I:假如多项式中缺某幂次项,则应认为该幂次项的系数为零
2、。注意II:多项式加减时低阶多项式必须首零填补使得与高阶多项式阶次相同。3MATLAB@SDU创建多项式的方法系数矢量的直接输入法在命令窗直接输入多项式的系数矢量,由根矢量创建多项式由给定的根矢量创建多项式,由函数poly实现。特征多项式输入法由矩阵的特征多项式取得,由函数poly实现。多项式的字符标示:poly2str4MATLAB@SDU多项式求根n次多项式具有n个根,当然这些根可能是实根,也可能含有若干对共轭复根。MATLAB提供的roots函数用于求多项式的全部根,其调用格式为:x=roots(P)其中P为多
3、项式的系数向量,求得的根赋给向量x,即x(1),x(2),…,x(n)分别代表多项式的n个根。5MATLAB@SDU例:求多项式x4+8x3-10的根。命令如下:A=[1,8,0,0,-10];x=roots(A)若已知多项式的全部根,则可以用poly函数建立起该多项式,其调用格式为:P=poly(x)若x为具有n个元素的向量,则poly(x)建立以x为其根的多项式,且将该多项式的系数赋给向量P。6MATLAB@SDU多项式运算:乘运算例:a(x)=x2+2x+3;b(x)=4x2+5x+6;c=(x2+2x+3)(
4、4x2+5x+6)a=[123];b=[456];c=conv(a,b)=conv([123],[456])c=4.0013.0028.0027.0018.00p=poly2str(c,'x')p=4x^4+13x^3+28x^2+27x+18多项式加减法:补零使阶数相等多项式乘法运算conv函数conv(P1,P2)用于求多项式P1和P2的乘积。这里,P1、P2是两个多项式系数向量。多项式乘除对应向量卷积和解卷积7MATLAB@SDU多项式除运算deconv函数[Q,r]=deconv(P1,P2)用于对多项式P1
5、和P2作除法运算。其中Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。这里,Q和r仍是多项式系数向量。deconv是conv的逆函数,即有P1=conv(P2,Q)+r。例:求多项式x4+8x3-10除以多项式2x2-x+3的结果。8MATLAB@SDU多项式微分matlab提供了polyder函数多项式的微分。命令格式:polyder(p):求p的微分polyder(a,b):求多项式a,b乘积的微分[p,q]=polyder(a,b):求多项式a,b商的微分例:a=[12345];poly2str(a,
6、'x')ans=x^4+2x^3+3x^2+4x+5b=polyder(a)b=4664poly2str(b,'x')ans=4x^3+6x^2+6x+49MATLAB@SDU多项式积分多项式积分命令函数polyint1polyint(p)多项式p的积分,常数项为02polyint(p,k)多项式p的积分,常数项为k10MATLAB@SDU有理多项式的运算函数多项式之比的分式展开[r,p,k]=residue(a,b)从展开分式得到多项式[a,b]=residue(r,p,k)注意residue函数的可逆性11MAT
7、LAB@SDU多项式的求值MATLAB提供了两种求多项式值的函数:polyval与polyvalm,它们的输入参数均为多项式系数向量P和自变量x。两者的区别在于前者是代数多项式求值,而后者是矩阵多项式求值。12MATLAB@SDU代数多项式求值polyval函数用来求代数多项式的值,其调用格式为:Y=polyval(P,x)若x为一数值,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。例已知多项式x4+8x3-10,分别取x=1.2和一个2×3矩阵为自变量计算该多项式的值。例:画出上
8、例x在-5到5间的曲线13MATLAB@SDU矩阵多项式求值【了解】polyvalm函数用来求矩阵多项式的值,其调用格式与polyval相同,但含义不同。polyvalm函数要求x为方阵,它以方阵为自变量求多项式的值。设A为方阵,P代表多项式x3-5x2+8,那么polyvalm(P,A)的含义是:A*A*A-5*A*A+8*eye(size(