Re: [問題] 一元三次方程式的求解

看板C_and_CPP作者 (-858993460)時間15年前 (2010/10/08 13:28), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《sjgau (sjgau)》之銘言: : ( *[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 我們可以來看看一個最簡單的 x^3 - 6x^2 + 11x - 6 = (x-1)(x-2)(x-3) = 0 代入式子得 Q = (3(11)-(-6)^2)/9 = (33-36)/9 = -1/3 R = (9(-6)(11)-27(-6)-2(-6)^3)/54 = (-594+162+432)/54 = 0 平方根是 √((-1/3)^3+0) = i/3√3 3 3 故 S = √(i/3√3) = -i/√3 T = √-(i/3√3) = i/√3 S + T = 0, S - T = -2i/√3 代進 x1,x2,x3 之後你會發現所有的 i 自動消失了.... (計算略 得 x1=2, x2=3, x3=1) 從上面的計算也可以知道這僅僅只是個數學上的結果 也就是請不要想著在只能算實數的地方套這個公式.... -- 如果你不是這個問題的話(現在想想似乎很有可能) 那置底十三誡之十一(B)有你要的答案 -- 実琴:「河野!你真的就這樣被物質慾望給吸引過去了嗎?!」 亨:「只要穿著女裝擺出親切的樣子,所有必要花費就能全免,似乎一點都不壞啊。」 実琴:「難道你沒有男人的尊嚴了嗎?!」 亨:(斷然道)「沒有。在節衣縮食生活吃緊學生面前,沒有那種東西。」 --プリンセス・プリンセス 第二話 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.28.92

10/08 13:32, , 1F
1 -6 11 -6 這個case的確是3實根。
10/08 13:32, 1F

10/08 13:33, , 2F
我故意算給原 PO 看的...單純說明請別硬套而已
10/08 13:33, 2F

10/08 13:33, , 3F
(都寫上了(x-1)(x-2)(x-3)了嘛)
10/08 13:33, 3F
文章代碼(AID): #1Chglaw4 (C_and_CPP)
文章代碼(AID): #1Chglaw4 (C_and_CPP)