终于结束了关于MATLAB的基础知识学习部分,开始了对数据的分析
1.多项式的表达与创建
MATLAB中用一维行向量来表示多项式,将多项式的系数按照降幂次序存放在向量中。
请注意上面一句话,这将是MATLAB中对多项式操作的关键
MATLAB中对多项式中缺少的幂次的系数应补充为0,不能空过去
例:输入多项式3x^4 + 23x^3 – 6x +8
1 2 3 4 5 |
>> p = [3 23 0 -6 8] p = 3 23 0 -6 8 |
2.求根
多项式的根(roots)
例:求例1中多项式的根
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
>> p = [3 23 0 -6 8] p = 3 23 0 -6 8 >> r = roots(p) r = -7.6263 + 0.0000i -0.8646 + 0.0000i 0.4121 + 0.4844i 0.4121 - 0.4844i |
由根创建多项式(poly)
1 2 3 4 5 6 |
>> r = [-7.6263 + 0.0000i; -0.8646 + 0.0000i; 0.4121 + 0.4844i; 0.4121 - 0.4844i]; >> p = poly(r) p = 1.0000 7.6667 -0.0000 -2.0002 2.6670 |
在这里我们可以看出例子中反求的多项式与原多项式并不一致,其原因在于MATLAB无隙处理复数,当用根重组多项式时,如果一些根有虚部,由于截断误差,则ploy的结果有一些小的虚部。消除虚假的虚部,只要用函数real抽取实部即可
3.多项式的四则运算
加法:c = a+b
乘法:c = conv(a,b)
除法:c = deconv(a,b)
4.导数、积分与估值
导数:b = polyder(a)
积分:b = polyint(a)
估值:h = polyval(g,x)
1 2 3 4 |
>> x = -1 : .01 : 1; >> g = [1 3 5 7 9]; >> h = polyval(g,x); >> plot(x,h) |
通过将估值函数与绘图函数结合使用,我们可以方便的看出多项式的值及其值的变化趋势
5.有理多项式
当运算时出现了两个多项式之比的情况时,大多数情况下需要我们将其拆开,即有理化
有理化函数:residue
注:residue函数可进行逆运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
>> num = [5 3 -2 7]; >> den = [-4 0 8 3]; >> [r,p k] = residue(num,den) %num为分子,den为分母 r = -1.4167 -0.6653 1.3320 p = 1.5737 -1.1644 -0.4093 k = -1.2500 >> [n ,d] = residue(r,p,k) n = -1.2500 -0.7500 0.5000 -1.7500 d = 1.0000 -0.0000 -2.0000 -0.7500 |
其中,有理化之后多项式的值为r / (x + p) + k。r、p都可为向量,k为常数
逆有理化之后n表示分母的系数,d表示分子的系数,且分子最高项系数为1
转载请注明:燕骏博客 » MATLAB自学笔记(十七):多项式及其函数
赞赏作者微信赞赏支付宝赞赏