matlab - Matlab - 具有不同系数的多项式根
问题描述
假设p=[3,2,1]
。然后,roots(p)
给出 的根3x^2+2x+1
。
如果多项式的系数取决于一个系数a
怎么办?像多项式3x^2+2x+a
。如果我定义p = @(a) [3,2,a]
然后roots(p)
不起作用。错误是
Undefined function 'isfinite' for input arguments of type 'function_handle'.
有没有办法调整roots
函数,还是我必须退回到fsolve
找到具有不同系数的多项式的根?
解决方案
您需要定义a
为符号变量,如下所示:
syms a
然后
p = [3,2,a]
roots(p)
应该管用。我正在使用 R2019b。
对于更复杂的示例,如果您对变量有所了解a
(例如a
是实数),您应该roots()
通过将变量定义为实数来让函数知道:
syms a real
推荐阅读
- php - jQuery Ajax 将输入值从一种模式传递到另一种模式
- javascript - 单击 Vuejs 从一个 div 到另一个 div 的动画
- algorithm - 这个用常数(C)取模的快捷方式有效吗?IF (A mod 2^n) > C: { -C}
- sql - 基于sql中的多行更新
- javascript - 为什么语义 UI 功能在控制台中不起作用?
- java - 使用 java.nio.file.readAllLines 时是否需要使用 try-with-resource?
- python - 在其中之一中加入不同的列-python
- angular - Ionic 3 如何在点击事件中选择特定的离子芯片?
- unity3d - 使 2D 水看起来像 3d
- javascript - 使用 'DD/MM/YYYY HH:MM:SS' 获取日期和格式之间的差异