1. 多项式表示
多项式用行向量表示,按降幂排列系数。例如,多项式 3x2+2x+1 表示为 [3 2 1]
。
2. 创建多项式
- 直接输入系数:如
p = [1 -3 3 -1]
表示 x3−3x2+3x−1。 - 由根创建:使用
poly
函数。例如,根为[1, 1, 1]
,则poly([1 1 1])
生成[1 -3 3 -1]
。
3. 多项式运算
- 加减法:需补零对齐系数长度。
p1 = [1 0 3]; % x² + 3 p2 = [0 2 -4]; % 2x -4 p_sum = p1 + p2; % x² + 2x -1 → [1 2 -1]
- 乘法:
conv
函数。conv([1 2 3], [4 5]) % 返回 [4 13 22 15] → 4x³ +13x² +22x +15
- 除法:
deconv
返回商和余数。[q, r] = deconv([4 13 22 15], [1 2 3]); % q = [4 5], r = [0]
4. 求根与求值
- 求根:
roots
函数。roots([1 -3 3 -1]) % 返回近似 1(三重根)
- 求值:
polyval
(标量)和polyvalm
(矩阵)。polyval([3 2 1], 5) % 计算 3*5² + 2*5 +1 = 86
5. 微分与积分
- 微分:
polyder
函数。polyder([1 -3 3 -1]) % 返回 [3 -6 3] → 3x² -6x +3
- 积分:
polyint
函数,可指定积分常数。polyint([3 2 1], 5) % 返回 [1 1 1 5] → x³ +x² +x +5
6. 多项式拟合
使用 polyfit
进行最小二乘拟合。
x = [0 1 2 3]; y = [1 4 9 16];
p = polyfit(x, y, 2); % 返回 [1 2 1] → x² +2x +1
7. 部分分式分解
residue
函数用于分解有理分式。
num = [1 1]; den = [1 3 2];
[r, p, k] = residue(num, den); % r = [0, 1], p = [-1, -2], k = []
示例代码汇总
% 创建多项式
p = [1 -3 3 -1]; % (x-1)^3
roots_p = roots(p); % 求根
% 多项式乘法
product = conv([1 2 3], [4 5]); % (x²+2x+3)(4x+5)
% 多项式积分
integral = polyint([3 2 1], 5); % x³ +x² +x +5
% 多项式拟合
x = [0 1 2 3]; y = (x+1).^2;
p_fit = polyfit(x, y, 2); % 拟合为 x²+2x+1
注意事项
- 系数顺序:始终按降幂排列。
- 数值误差:
roots
和poly
可能因数值精度导致微小误差。 - 矩阵多项式:
polyvalm
要求输入为方阵。
通过掌握这些函数和操作,可以在MATLAB中高效处理多项式相关计算