作者sjgau (sjgau)
看板C_and_CPP
標題[問題] 一元三次方程式的求解
時間Fri Oct 8 12:17:51 2010
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
x^3 + (a1)*x^2 + (a2)*x + a3 = 0
s, t 的求解,請參考 網頁
http://webcache.googleusercontent.com/search?q=cache:ccr3OgAAz9EJ:bbs.civilgroup.org/viewtopic.php%3Ft%3D1326+%E4%B8%80%E5%85%83%E4%B8%89%E6%AC%A1%E6%96%B9%E7%A8%8B%E5%BC%8F&cd=2&hl=zh-TW&ct=clnk&gl=tw
http://0rz.tw/5rH87
不應該出現 虛數解的地方,
fabs(s - t) > 0.0
希望得到的正確結果:
應該是 實數根的 case,
不要出現 虛數根
程式跑出來的錯誤結果:
會產生 1.xxxe-12 左右的 誤差值
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
VC++ 6.0
有問題的code: (請善用置底文標色功能)
略
補充說明:
no
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 110.24.73.3
→ bleed1979:能否提供case 10/08 12:27
→ sjgau:a1=0, a2=1, a3= -2, 10/08 12:30
推 genghiskii:gsl? 10/08 12:36
→ bleed1979:根據您提供的wiki網頁上求根判別式計算結果... 10/08 13:21
→ bleed1979:delta = 1.037037037037 一實根和2共軛複數根。 10/08 13:23
→ bleed1979:忘了說,以上的delta是跑 1 0 1 -2 的結果。 10/08 13:23
推 zerodevil:1e-12的誤差是正常的吧.. 10/08 13:30
→ sjgau:樓上鎖提供的,實在是 太神奇了!雲端的 Mathematica 10/08 16:37
推 F2F8:WolframAlpha,他還是有一些限制,例如程式的長度限制... 10/08 21:12