在 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