我想将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)]);
为什么?
答案 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)
。
编辑: 至于“为什么”:你不能分为两个内联函数。相反,它们必须首先转换为它们的符号表示。