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

文章目录

    • 1.多项式的加法
    • 2.多项式乘法
    • 3.多项式除法
    • 4.多项式求根及其逆运算
      • 4.1 多项式求根
      • 4.2 求根的逆运算

1.多项式的加法

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

MATLAB中的多项式的四则运算与求根方法_第1张图片
现在为了验证该函数ppadd(a,b),命令行输入以下内容然后按回车键得:
MATLAB中的多项式的四则运算与求根方法_第2张图片
结果是:
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)

按回车键得到以下结果:
MATLAB中的多项式的四则运算与求根方法_第3张图片
其中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)

按回车键得到以下结果:
MATLAB中的多项式的四则运算与求根方法_第4张图片

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函数抽取实部即可。

你可能感兴趣的:(MATLAB中的多项式的四则运算与求根方法)