matlab实验多项式运算_第1页
matlab实验多项式运算_第2页
matlab实验多项式运算_第3页
matlab实验多项式运算_第4页
matlab实验多项式运算_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

matlab实验多项式运算第1页/共18页Matlab多项式运算

Matlab

中多项式的表示方法在Matlab中多项式是用它的系数向量来表示的。例:2x3-x2+3<->

[2,-1,0,3]特别注意:系数中的零是不能省的!多项式的符号形式:poly2sym

如,>>

poly2sym([2,-1,0,3]) 运行结果:ans=2*x^3-x^2+3第2页/共18页多项式四则运算多项式加减运算多项式的加减运算就是其所对应的系数向量的加减运算注意:对于次数相同的多项式,可以直接对其系数向量进行加减运算;如果两个多项式次数不同,则应该把低次多项式中系数不足的高次项用0补足,然后进行加减运算。例:

p1=2x3-x2+3

-> [2,-1,0,3] p2=2x+1-> [2,1]-> [0,0,2,1]p1+p2=2x3-x2+2x+4<- [2,-1,2,4]第3页/共18页多项式四则运算多项式乘法运算:k

=

conv(p,q)例:计算多项式

2x3-x2+3

2x+1

的乘积p=[2,-1,0,3];q=[2,1];k=conv(p,q) %乘积多项式的向量形式

poly2sym(k) %乘积多项式的符号形式

多项式除法运算:[k,r]

=

deconv(p,q)其中

k

返回的是多项式

p

除以

q

的商,r

是余式。即,[k,r]=deconv(p,q)<==>p=conv(q,k)+r第4页/共18页多项式的求导多项式的求导:

polyderk=polyder(p):多项式

p

的导数;k=polyder(p,q):

p*q

的导数;[k,d]=polyder(p,q):p/q

的导数,k

是分子,d

是分母例:已知p(x)=2x3-x2+3,q(x)=2x+1,

求p’,(p.q)’,(p/q)’.k1=polyder([2,-1,0,3])k2=polyder([2,-1,0,3],[2,1])[k2,d]=polyder([2,-1,0,3],[2,1])第5页/共18页多项式的值

计算多项式在给定点的值

代数多项式求值y

=

polyval(p,x)计算多项式

p

x

点的值注:若x

是向量或矩阵,则采用数组运算(点运算)!例:已知p(x)=2x3-x2+3,分别取

x=2

和一个

22

矩阵,

p(x)

x处的每个分量上的值

p=[2,-1,0,3];x=2;y=polyval(p,x)x=[-1,2;-2,1];y=polyval(p,x)第6页/共18页多项式的值

矩阵多项式求值Y=polyvalm(p,X)采用的是普通矩阵运算,且X必须是方阵例:已知p(x)=2x3-x2+3,则polyvalm(p,A)=2*A*A*A

-

A*A

+

3*eye(size(A))polyval(P,A)=2*A.*A.*A-A.*A+3*ones(size(A))上机验证一下:p=[2,-1,0,3];x=[-1,2;-2,1];polyval(p,x)polyvalm(p,x)第7页/共18页多项式的零点

计算多项式的零点(根)

x=roots(p):若p是n次多项式,则输出是p=0的n个根组成的n维向量。例:已知p(x)=2x3-x2+3,

p(x)

的零点。

p=[2,-1,0,3];x=roots(p)

若已知多项式的所有零点,则可用poly函数给出该多项式,如:p=poly(x) %->p(x)=(x-x1)(x-x2)…(x-xn)%其为向量形式且和原多项式差一个因子an第8页/共18页多项式运算小结poly2sym(p)求多项式的符号形式k

=

conv(p,q)[k,r]

=

deconv(p,q)求多项式的乘积求多项式的除法k

=

polyder(p)k

=

polyder(p,q)[k,d]

=

polyder(p,q)求多项式p的导数求多项式p*q的导数求多项式p/q的导数y

=

polyval(p,x)Y

=

polyvalm(p,X)代数多项式求值矩阵多项式求值x

=

roots(p)求多项式的根特别注意:多项式运算中,使用的是多项式系数向量,不涉及符号计算!第9页/共18页线性方程组求解

线性方程组求解linsolve(A,b):解线性方程组例:解方程组A=[12-1;101;130];b=[2;3;8];x=linsolve(A,b)b是列向量!第10页/共18页非线性方程的根Matlab非线性方程的数值求解

fzero(f,x0):求方程

f=0

x0

附近的根。方程可能有多个根,但fzero

只给出距离x0

最近的一个

x0

是一个标量,不能缺省fzero

先找出一个包含x0

的区间,使得f

在这个区间两个端点上的函数值异号,然后再在这个区间内寻找方程f=0

的根;如果找不到这样的区间,则返回NaN。由于fzero

是根据函数是否穿越横轴来决定零点,因此它无法确定函数曲线仅触及横轴但不穿越的零点,如|sin(x)|

的所有零点。第11页/共18页非线性方程的根

fzero

的另外一种调用方式fzero(f,[a,b])或fzero(f,x0)

求方程f=0在[a,b]

区间内或x0附近的根。方程在[a,b]

内可能有多个根,但fzero

只给出一个

参数

f

可通过以下三种方式给出:

fzero('x^3-3*x+1',2)%字符串

f=inline('x^3-3*x+1');

fzero(f,2)%内联函数

fzero(@(x)x^3-3*x+1,2)%匿名函数的函数句柄

特别注意:f

不是方程!也不能使用符号表达式!如,symsx;f=x^3-3*x+1;fzero(f,2)%error!第12页/共18页例:

fzero('sin(x)',10)fzero(@sin,10) %系统函数的函数句柄fzero('x^3-3*x+1',1)fzero('x^3-3*x+1',[1,2])fzero('x^3-3*x+1',[-2,0])f=inline('x^3-3*x+1');fzero(f,[-2,0])

roots([1,0,-3,1])fzero('x^3-3*x+1=0',1) %格式错误!注意:用

fzero

求零点时,通常先通过作图确定零点的大致范围第13页/共18页符号求解

符号求解方程:solves=solve(f,v):求方程关于指定自变量的解;s=solve(f):求方程关于默认自变量的解。

f

可以是用字符串表示的方程,或符号表达式;若f

中不含等号,则表示解方程f=0。例:解方程

x^3-3*x+1=0symsx;f=x^3-3*x+1;s=solve(f,x)s=solve('x^3-3*x+1','x')s=solve('x^3-3*x+1=0','x')第14页/共18页符号求解

solve

也可以用来解方程组solve(

f1,f2,...,fN,v1

,v2

,...,vN)求解由f1,f2,...,fN

确定的方程组关于v1

,v2

,...,vN

的解例:解方程组>>

[x,y,z]=solve('x+2*y-z=27','x+z=3',...

'x^2+3*y^2=28','x','y','z')输出变量的顺序要书写正确!第15页/共18页solve在得不到解析解时,会给出数值解。第16页/共18页求解方程函数小结roots(p):求多项式的所有零点,p

是多项式系数向量。fzero(f,x0):求f=0

在x0

附近的根

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论