matlab多项式运算和方程组的求解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二、多项式

(1)多项式的表达式和创建

MATLAB中使用一维向量来表示多项式,将多项式的系数按照降幂次序存放在向量中。

例如:多项式2X4+3X3+5X2+1可以用向量[2 3 5 0 1]来表示。

例2-1,输入多项式3x4-10x3+15x+1000

在命令窗口输入:

p=[3 -10 0 15 1000]

输出结果如下:

(2)多项式求根

1、多项式的根

找出多项式的根,即使多项式为零的值,MATLAB提供了特定的函数roots求解多项式的根。

例2-2,求解多项式3x4-10x3+15x+1000的根。

在命令窗口输入:

输出的结果如下:

2、由根创建多项式

在MATLAB中,无论是一个多项式,还是它的根,都是以向量形式存储的,按照惯例,多项式是行向量,根是列向量。因此当我们给出一个多项式时,MATLAB 也可以构造出相应的多项式,这个过程需要使用函数poly。

例2-3

输入及结果

(3)多项式四则运算

1,多项式的加法

MATLAB并未提供一个特别的函数,如果两个多项式向量大小相同,那么多项

式相加时就和标准的数组加法相同。

例2-4

在命令窗口输入:

a=[1 3 5 7 9];b=[1 2 4 6 8];

c=a+b

输出结果:

C(x)=2x4+5x3+9x2+13x+17

2、多项式的乘法运算

在MATLAB中,函数conv支持多项式乘法(运算法则为执行两个数组的卷积)。例2-5

在命令窗口输入:

a=[1 3 5 7 9]; b=[1 2 4 6 8];

c=conv(a,b)

输出的结果如下:

C(x)=x8+5x7+15x6+35x5+69x4+100x3+118x2+110x+72

PS:conv指令只能进行两个多项式的乘法,两个以上的多项式的乘法需要重复使用conv。

3、多项式的除法运算

在MATLAB中,由函数deconv完成的。

例2-6

在命令窗口输入:

c=[1 5 15 35 69 100 118 110 72];b=[1 2 4 6 8]; [a,r]=deconv (c,b)

输出的结果:

(4)多项式微分

1、多项式的导数

MATLAB为多项式求导提供了函数polyder。

例2-7C(x)=x8+5x7+15x6+35x5+69x4+100x3+118x2+110x+72 在命令窗口输入:

输出结果为:

2、多项式的积分

MATLAB为多项式的积分提供了函数polyint。具体的句法格式如下。

①polyint(p,k):返回多项式P的积分,积分常数项为K。

②polyint(p):返回多项式P的积分,积分常数项为默认值0。

例2-8C(x)=x8+5x7+15x6+35x5+69x4+100x3+118x2+110x+72 在命令窗口输入:

输出的结果为:

(5)多项式求值

1、代数多项式求值

y=polyval(p,x):计算多项式p在x点的值

PS:若x 是向量或矩阵,则采用数组运算(点运算)!

例2-9

已知P(x)=2x3-x2+3,分别取x=2和一个2x2矩阵,求p(x)在x处的值。当X=2时:

在命令窗口输入:

p=[2,-1,0,3];

x=2;polyval(p,x)

输出结果:

当X是矩阵时:

在命令窗口输入:

x=[-1, 2;-2,1];

polyval(p,x)

输出结果:

2、矩阵多项式求值

Y=polyvalm(p,X):以方阵X为自变量,计算多项式的值,采用矩阵运算。

例2-10P(x)=2x3-x2+3 在命令窗口输入:

结果为:

三、方程组的求解

1、线性方程组的求解

linsolve(A,b):解线性方程组

在窗口输入命令:

输出的结果为:

2、非线性方程组的求解

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') 输出的结果:

相关文档
最新文档