错误:根:输入不能包含Inf或NaN(Octave)



我正在使用倍频程进行符号计算,并得到以下错误。

>> p
p(x) = (symfun)
3      2
x  - 3⋅x  - 4⋅x + 16
>> roots(p)
error: roots: inputs must not contain Inf or NaN
error: called from
roots at line 87 column 5

由于我是八度音阶符号计算的新手,我确信我只是用错了它。应该如何在八度音阶中计算p的根?

谢谢!

roots是一个数值过程,您需要将符号多项式转换为根函数所理解的数值形式

octave:1> p = symfun( sym('x ^ 3 - 3 * x ^ 2 - 4 * x + 16'), sym('x') )
p(x) = (symfun)
3      2           
x  - 3⋅x  - 4⋅x + 16
octave:2> roots( sym2poly( p ) )
ans =
-2.1844 + 0.0000i
2.5922 + 0.7780i
2.5922 - 0.7780i

我不知道matlab符号工具箱是否提供了roots的符号版本。。。

UPDATE要查找符号多项式的根,请使用solve函数;这个函数在matlab和倍频程(对于符号变量(中做同样的事情。

octave:3> solve(p, x)
ans = (sym 3×1 matrix)
⎡                                    ⎛  1   √3⋅ⅈ⎞ 3 ______________⎤
⎢                                    ⎜- ─ - ────⎟⋅╲╱ 6⋅√249 + 135 ⎥
⎢                  7                 ⎝  2    2  ⎠                 ⎥
⎢1 - ───────────────────────────── - ─────────────────────────────⎥
⎢    ⎛  1   √3⋅ⅈ⎞ 3 ______________                 3              ⎥
⎢    ⎜- ─ - ────⎟⋅╲╱ 6⋅√249 + 135                                 ⎥
⎢    ⎝  2    2  ⎠                                                 ⎥
⎢                                                                 ⎥
⎢    ⎛  1   √3⋅ⅈ⎞ 3 ______________                                ⎥
⎢    ⎜- ─ + ────⎟⋅╲╱ 6⋅√249 + 135                                 ⎥
⎢    ⎝  2    2  ⎠                                  7              ⎥
⎢1 - ───────────────────────────── - ─────────────────────────────⎥
⎢                  3                 ⎛  1   √3⋅ⅈ⎞ 3 ______________⎥
⎢                                    ⎜- ─ + ────⎟⋅╲╱ 6⋅√249 + 135 ⎥
⎢                                    ⎝  2    2  ⎠                 ⎥
⎢                                                                 ⎥
⎢              3 ______________                                   ⎥
⎢              ╲╱ 6⋅√249 + 135           7                        ⎥
⎢            - ──────────────── - ──────────────── + 1            ⎥
⎢                     3           3 ______________                ⎥
⎣                                 ╲╱ 6⋅√249 + 135                 ⎦

最新更新