MATLAB中的多项式的四则运算与求根方法

1.多项式的加法

当两个多项式的阶次不一样的时候,低阶的多项式用首零填补,使其和高阶多项式有相同的阶次。下面是通用的多项式加法函数示例:

在这里插入图片描述
现在为了验证该函数ppadd(a,b),命令行输入以下内容然后按回车键得:
在这里插入图片描述
结果是:
c ( x ) c(x) c(x)= x 4 x^4 x4+ 3 x 3 3x^3 3x3+ 6 x 2 6x^2 6x2+ 10 x 10x 10x+15

2.多项式乘法

在MATLAB中,函数conv支持多项式的乘法(运算法则为两个数组的卷积)
不妨再命令行输入如下指令:

a=[1 2 3 4 5];
b=[1 2 5 6 7];
c=conv(a,b)

按回车键,得到如下结果:

c=
 1     4    12    26    47    62    70    58    35

结果是: c ( x ) c(x) c(x)= x 8 x^8 x8+ 4 x 7 4x^7 4x7+ 12 x 6 12x^6 12x6+ 26 x 5 26x^5 26x5+ 47 x 4 47x^4 47x4+ 62 x 3 62x^3 62x3+ 70 x 2 70x^2 70x2+ 58 x 58x 58x+ 35 35 35

3.多项式除法

在MATLAB中,多项式除法是由函数deconv实现的。在命令行窗口输入:

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

按回车键得到以下结果:
在这里插入图片描述
其中c表示商的系数,而r 表示余数,即:
x 8 + 5 x 7 + 15 x 6 + 35 x 5 + 69 x 4 + 100 x 3 + 118 x 2 + 110 x + 72 x 4 + 2 x 3 + 4 x 2 + 6 x + 8 \frac{x^8+5x^7+15x^6+35x^5+69x^4+100x^3+118x^2+110x+72}{x^4+2x^3+4x^2+6x+8} x4+2x3+4x2+6x+8x8+5x7+15x6+35x5+69x4+100x3+118x2+110x+72= x 4 + 3 x 3 + 5 x 2 + 7 x + 9 x^4+3x^3+5x^2+7x+9 x4+3x3+5x2+7x+9

4.多项式求根及其逆运算

4.1 多项式求根

所谓多项式求根,即求出多项式为0的值。MATLAB中提供特定函数roots求解一个多项式的根。
例如:求解多项式 3 x 4 − 10 x 3 + 15 x + 1000 = 0 3x^4-10x^3+15x+1000=0 3x410x3+15x+1000=0的x的值
在命令行输入以下指令:

p=[3 -10 0 15 1000];
r=roots(p)

按回车键得到以下结果:
在这里插入图片描述

4.2 求根的逆运算

在MATLAB中,无论是多项式还是它的根都是以向量的形式存储,按照MATLAB的规定,多项式是行向量,根是列向量。因此,当我们给出一个多项式的根时,MATLAB也可以构造出相应的多项式。通常,我们调用poly函数,如下所示:
在命令行输入:

c=[4.0283+2.8554i; 4.0283-2.8554i; -2.3616+2.8452i; -2.3616-2.8452i];
p=poly(r)

按回车键输出结果得:

在这里插入图片描述
这里需要注意,由于MATLAB无隙处理复数,当用根重组多项式时,如果有一些根是复根(即有虚部)。由于截断误差,poly的结果会有一些小的虚部。消除假的虚部,我们只需要用real函数抽取实部即可。

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值