matlab多项式

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中高效处理多项式相关计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

myxixilovek

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值