MATLAB多项式

在 MATLAB 中,多项式用一个行向量表示,行向量的元素值为多项式系数按幂次的降序排列。

例如,方程 P(x) = x^4 + 7*x^3 - 5*x + 9 可以表示为:

p = [1 -3 0 -5 9];

p = [1 -3 0  -5 9];
polyval(p,4)

返回结果:

ans =

    53

MATLAB 还提供了计算矩阵多项式 polyvalm 函数。矩阵多项式一个多项式矩阵变量。

例如,我们建立一个方阵 X 并计算多项式 p:

p = [1 7 0  -5 9];
X = [1 2 3 4; 2 -5 6 -3; 3 1 0 2; 5 -7 3 8];
polyvalm(p, X)
ans =

        4773       -3563        2535        9551
         -74         876        -261        -315
        3114       -2114        1503        6074
        9760       -7202        3768       21029

查找多项式的根

根函数可以计算多项式的根。例如,要计算多项式 p,输入根:

p = [1 7 0  -5 9];
format rat
r = roots(p)

输出结果: 

r =

    -872/127    +    0i      
   -4874/3421   +    0i      
     841/1303   +  789/1112i 
     841/1303   -  789/1112i 

poly 函数是根函数,并返回多项式的系数的倒数。例如:

 p2 = poly(r)

p2 =

       1              7              *             -5              9     

多项式曲线拟合

polyfit 函数找到一个多项式的系数,适合采用最小二乘意义上的一组中的数据。如果 x 和 y 是两个向量含有的 x 和 y 被拟合数据的一个 n 次多项式,那么我们得到的多项式拟合的数据通过写入

p = polyfit(x,y,n)
x = [1 2 3 4 5 6]; y = [5.9 48.1 128 295.7 498.4 999.67];  %data
p = polyfit(x,y,4)   %get the polynomial
% Compute the values of the polyfit estimate over a finer range, 
% and plot the estimate over the real data values for comparison:
x2 = 1:0.1:6;          
y2 = polyval(p,x2);
plot(x,y,'s',x2,y2)
grid on

p =

    1561/351      -9039/175      25620/109     -16257/43        4747/24    

上一篇:拟合算法及Matlab求解——对数据寻求一个最简易的函数(曲线)


下一篇:Matlab常用快捷键