| 5 | 1/1 | 返回列表 |
| 查看: 2452 | 回復(fù): 15 | |||
| 本帖產(chǎn)生 2 個(gè) 程序強(qiáng)帖 ,點(diǎn)擊這里進(jìn)行查看 | |||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | |||
liangzidou銀蟲 (小有名氣)
|
[交流]
【求助】求助:vb編程中用牛頓迭代解三次方程為什么只得到一個(gè)根?【已完成】 已有5人參與
|
||
|
我在用vb編寫中,遇到這樣一個(gè)問題,解一個(gè)一元三次方程只得到一個(gè)根,實(shí)際上不只一個(gè)根。請各位高手幫忙找一下錯(cuò)誤。 Private Sub Command1_Click() Dim r, p, t, w, pc, tc, m, a, b, ca, cb, xl, xm, xn As Double r = 8.314 p = 101.325 t = 301 pc = 3384 tc = 460.4 w = 0.227 m = 0.37464 + 1.5422 * w + 0.2699 * w ^ 2 tr = t / tc a = 0.45723553 * r ^ 2 * tc ^ 2 * (1 + m * (1 - Sqr(tr))) ^ 2 / pc b = 0.077796074 * r * tc / pc Print "a="; a, "b="; b ca = a * p / (r ^ 2 * t ^ 2) cb = b * p / (r * t) xl = cb - 1 xm = -3 * cb ^ 2 - 2 * cb + ca xn = cb ^ 3 + cb ^ 2 - ca * cb Print "A="; ca, "B="; cb Print "xl="; xl, "xm="; xm Print "xn="; xn Dim f, z As Single z = 0.01 Do z = z1 f = z ^ 3 + xl * z ^ 2 + xm * z + xn f1 = 3 * z ^ 2 + 2 * xl * z + xm z1 = z - f / f1 Loop While Abs(z - z1) >= 0.0005 Print z1 End Sub [ Last edited by liangzidou on 2010-5-15 at 22:22 ] |
版主 (知名作家)
|
不是還有其他解法嗎? 我查到的其他解法是先判斷delta與0的關(guān)系 ①:當(dāng)A=B=0時(shí),方程有一個(gè)三重實(shí)根; ②:當(dāng)Δ=B^2-4AC>0時(shí),方程有一個(gè)實(shí)根和一對(duì)共軛虛根; ③:當(dāng)Δ=B^2-4AC=0時(shí),方程有三個(gè)實(shí)根,其中有一個(gè)兩重根; ④:當(dāng)Δ=B^2-4AC<0時(shí),方程有三個(gè)不相等的實(shí)根。 |

銀蟲 (小有名氣)
|
方程就是f = z ^ 3 + xl * z ^ 2 + xm * z + xn=0 其中xl,xm,xn分別是方程的二次項(xiàng)、一次項(xiàng)系數(shù)及常數(shù)項(xiàng)。 下面這段程序就是我用迭代法就該方程的程序: Dim f, z As Single z = 0.01 Do z = z1 f = z ^ 3 + xl * z ^ 2 + xm * z + xn f1 = 3 * z ^ 2 + 2 * xl * z + xm z1 = z - f / f1 Loop While Abs(z - z1) >= 0.0005 Print z1 最后得到的結(jié)果只有一個(gè)根。 |
版主 (知名作家)
|
我用盛金公式 寫的 Private Sub Command1_Click() Dim a, b, c, d, aa, bb, cc, delta, y1, y2, k, theta, t, x, x1, x2, x3, tt, tt1, xx2, xx3,s 'az^3+bz^2+cz+d=0,a、b、c、d來自一個(gè)例子(見最后) a = 1 b = -70.5 c = 1533.54 d = -10082.44 aa = Round((b ^ 2 - 3 * a * c), 4) bb = Round((b * c - 9 * a * d), 4) cc = Round((c * c - 3 * b * d), 4) delta = Round((bb * bb - 4 * aa * cc), 4) If (aa = 0) And (bb = 0) Then x = -b / (3 * a) Label1.Caption = "X1=X2=X3=:" & x Else Select Case delta Case Is > 0 y1 = aa * b + 3 * a * (-bb + Sqr(delta)) / 2 If y1 > 0 Then y1 = y1 ^ (1 / 3) Else y1 = y1 * (-1) y1 = y1 ^ (1 / 3) * (-1) End If y2 = aa * b + 3 * a * (-bb - Sqr(delta)) / 2 If y2 > 0 Then y2 = y2 ^ (1 / 3) Else y2 = y2 * (-1) y2 = y2 ^ (1 / 3) * (-1) End If tt = y1 + y2 tt1 = 3 ^ (1 / 3) * (y1 - y2) / (6 * a) s = (-2 * b + tt) / (6 * a) x1 = (-b - tt) / (3 * a) x2 = s & "+" & tt1 & "i" x3 = s & "-" & tt1 & "i" Label1.Caption = "X1=" & x1 Label2.Caption = "X2=" & x2 Label3.Caption = "X3=" & x3 Case Is = 0 k = bb / aa x1 = -b / a + k x = Str(-k / 2) Label1.Caption = "X1=" & x1 Label2.Caption = "X2=" & x Label3.Caption = "X3=" & x Case Is < 0 t = (2 * aa * b - 3 * a * bb) / (2 * aa ^ (3 / 2)) theta = Atn(-t / Sqr(-t * t + 1)) + 2 * Atn(1) theta = theta / 3 tt = aa ^ (1 / 2) * Cos(theta) tt1 = 3 ^ (1 / 2) * Sin(theta) x1 = (-b - 2 * tt) / (3 * a) xx2 = (-b + tt + tt1) / (3 * a) xx3 = (-b + tt - tt1) / (3 * a) Label1.Caption = "X1=" & x1 Label2.Caption = "X2=" & xx2 Label3.Caption = "X3=" & xx3 End Select End If End Sub 一建筑物的樓頂要建一個(gè)儲(chǔ)水池,按施工的設(shè)計(jì)要求,這個(gè)儲(chǔ)水池的長、寬、高之和為67.4dm,且寬=高,滿儲(chǔ)水量為9539.712(dm)^3,立體對(duì)角線為1706.92dm,問:如何施工才能達(dá)到設(shè)計(jì)要求? 解:設(shè)取長、寬、高分別為X⑴、X⑵、X⑶,依題意: X⑴+X⑵+X⑶=67.4; X⑴X⑵X⑶=9539.712; X⑴^2+X⑵^2+X⑶^2=1706.92。 解這個(gè)方程組,得一元三次方程 X^3-67.4X^2+1417.92X-9539.712=0 a=1,b=-67.4,c=1417.92,d=-9539.712。 A=289;B=-9710.4;C=81567.36, Δ=0。 根據(jù)盛金判別法,此方程有三個(gè)實(shí)根,其中兩個(gè)相等。 應(yīng)用盛金公式③求解。 K=—33.6。 把有關(guān)值代入盛金公式③,得: X⑴=33.8(dm);X⑵=X⑶=16.8(dm)。 經(jīng)檢驗(yàn),結(jié)果正確。 因?yàn)閷?高, 所以,應(yīng)取長為33.8dm;寬=高=16.8dm來進(jìn)行施工。 [ Last edited by jjdg on 2010-4-20 at 14:20 ] |

版主 (知名作家)

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 322求調(diào)劑 +7 | 宋明欣 2026-03-27 | 7/350 |
|
|---|---|---|---|---|
|
[考研] 生物學(xué)學(xué)碩,一志愿湖南大學(xué),初試成績338 +6 | YYYYYNNNNN 2026-03-26 | 7/350 |
|
|
[考研] 求調(diào)劑一志愿海大,0703化學(xué)學(xué)碩304分,有大創(chuàng)項(xiàng)目,四級(jí)已過 +7 | 幸運(yùn)哩哩 2026-03-22 | 11/550 |
|
|
[考研] 0856材料化工調(diào)劑 總分330 +11 | zhubinhao 2026-03-27 | 11/550 |
|
|
[考研] 一志愿北京工業(yè)大學(xué),324分求調(diào)劑 +4 | 零八# 2026-03-28 | 4/200 |
|
|
[考研] 304求調(diào)劑 +6 | 曼殊2266 2026-03-27 | 6/300 |
|
|
[考研] 【求調(diào)劑】085601材料工程專碩 | 總分272 | +6 | 腳滑的守法公民 2026-03-27 | 6/300 |
|
|
[考研] 一志愿南京航空航天大學(xué)材料學(xué)碩求調(diào)劑 +3 | @taotao 2026-03-28 | 3/150 |
|
|
[考研] 340求調(diào)劑 +5 | jhx777 2026-03-27 | 5/250 |
|
|
[考研] 一志愿211院校 344分 東北農(nóng)業(yè)大學(xué)生物學(xué)學(xué)碩,求調(diào)劑 +5 | 丶風(fēng)雪夜歸人丶 2026-03-26 | 8/400 |
|
|
[考研] 一志愿上海理工能源動(dòng)力(085800)310分求調(diào)劑 +3 | zhangmingc 2026-03-27 | 4/200 |
|
|
[考研] 求調(diào)劑 +4 | 零八# 2026-03-27 | 4/200 |
|
|
[考研] 274求調(diào)劑 +17 | 顧九笙要謙虛 2026-03-24 | 23/1150 |
|
|
[考研] 材料調(diào)劑 +8 | 匹克i 2026-03-23 | 8/400 |
|
|
[考研] 一志愿北化求調(diào)劑 +3 | Jsman 2026-03-22 | 3/150 |
|
|
[考研] 329求調(diào)劑 +5 | 1() 2026-03-22 | 5/250 |
|
|
[考研] 網(wǎng)絡(luò)空間安全0839招調(diào)劑 +4 | w320357296 2026-03-25 | 6/300 |
|
|
[考研] 086003食品工程求調(diào)劑 +6 | 淼淼111 2026-03-24 | 6/300 |
|
|
[考研] 340求調(diào)劑 +5 | 話梅糖111 2026-03-24 | 5/250 |
|
|
[考研]
|
13659058978 2026-03-24 | 4/200 |
|