使用MATLAB划分两个多项式

时间:2009-11-13 03:37:11

标签: matlab

我想将p(x)除以q(x)给出:

p(x)=-5x^4+3x^2-6x
q(x)=x^2+1

我试过了:

p=inline('-5*(x^4)+3*(x^2)','x')

p =
     Inline function:
     p(x) = -5*(x^4)+3*(x^2)

q=inline('x^2+1','x')

q =
     Inline function:
     q(x) = x^2+1

deconv(p,q)

但得到了错误:

??? Undefined function or method 'filter' for input arguments of type 'inline'.

Error in ==> deconv at 32
   [q,zf] = filter(b, a, [1 zeros(1,nb-na)]);

为什么?

2 个答案:

答案 0 :(得分:15)

内联函数只是它将评估的matlab表达式。它不知道它们是否是多项式。

你想要这个:

p = [-5 0 3 -6 0];
q = [2 0 1];

[quotient remainder] = deconv(p, q)

此处不需要符号数学工具箱。

答案 1 :(得分:0)

r = sym(p) \ sym(q)可以解决问题。当然,结果将是一种象征性的功能。要将其转换为内联,s = inline(r)

编辑: 至于“为什么”:你不能分为两个内联函数。相反,它们必须首先转换为它们的符号表示。