matlab多项式运算和方程组的求解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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') 输出的结果: