Re: [問題] 如何解複係數一元三次方程式
稍微實際操作後發現
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
→
04/27 09:48, , 1F
04/27 09:48, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):