作者aelo (就这样子吧)
看板MATLAB
标题Re: [问题] 如何解复系数一元三次方程式
时间Fri Apr 27 01:46:31 2012
稍微实际操作後发现
solve() 的 input 型态并非字串 (在 MATLAB 里显示为 <1x1 sym>)
syms x;
a = 1;
b = -(2+3i);
c = -3;
d = i;
eqn = a*x^3+b*x^2+c*x+d;
sol = solve(eqn);
应该就是你需要的结果 (MATLAB 其实很傻瓜?!)
我并未仔细测试结果是否正确及容错性 只用了下面这个三个 i 重根的系数来测试
syms x;
a = 1;
b = -3i;
c = -3;
d = i;
eqn = a*x^3+b*x^2+c*x+d;
sol = solve(eqn);
而
sol =
i
i
i
※ 引述《NikolaTesla (只睡两小时的男人)》之铭言:
: 用solve解一元三次是没问题,例如:
: syms x;
: a=1;
: b=-6;
: c=-11;
: d=+6;
: sol=solve([num2str(a) '*x^3 + ' num2str(b) '*x^2 + ' num2str(c) '*x^1+'
: num2str(d) '=0'])
: 这样是可以解出三个根,但如果a,b,c输入复数似乎就不行解了...
: 想知道有人会用matlab解复系数的一元三次方程式吗?
: 试了wiki上的公式解,还有Carden法,好像都不行耶,
: 是因为这些只能用在实系数问题吗?
: 希望有人能回答我@@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.3.197
1F:→ NikolaTesla:感谢!!很有帮助!!谢谢您拨冗回答 04/27 09:48