| 5 | 1/1 | 返回列表 |
| 查看: 2451 | 回復: 15 | |||
| 本帖產(chǎn)生 2 個 程序強帖 ,點擊這里進行查看 | |||
| 當前只顯示滿足指定條件的回帖,點擊這里查看本話題的所有回帖 | |||
liangzidou銀蟲 (小有名氣)
|
[交流]
【求助】求助:vb編程中用牛頓迭代解三次方程為什么只得到一個根?【已完成】 已有5人參與
|
||
|
我在用vb編寫中,遇到這樣一個問題,解一個一元三次方程只得到一個根,實際上不只一個根。請各位高手幫忙找一下錯誤。 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 ] |
銀蟲 (小有名氣)
銀蟲 (小有名氣)
|
方程就是f = z ^ 3 + xl * z ^ 2 + xm * z + xn=0 其中xl,xm,xn分別是方程的二次項、一次項系數(shù)及常數(shù)項。 下面這段程序就是我用迭代法就該方程的程序: 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 最后得到的結果只有一個根。 |
版主 (知名作家)

版主 (知名作家)
|
我用盛金公式 寫的 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來自一個例子(見最后) 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 一建筑物的樓頂要建一個儲水池,按施工的設計要求,這個儲水池的長、寬、高之和為67.4dm,且寬=高,滿儲水量為9539.712(dm)^3,立體對角線為1706.92dm,問:如何施工才能達到設計要求? 解:設取長、寬、高分別為X⑴、X⑵、X⑶,依題意: X⑴+X⑵+X⑶=67.4; X⑴X⑵X⑶=9539.712; X⑴^2+X⑵^2+X⑶^2=1706.92。 解這個方程組,得一元三次方程 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ù)盛金判別法,此方程有三個實根,其中兩個相等。 應用盛金公式③求解。 K=—33.6。 把有關值代入盛金公式③,得: X⑴=33.8(dm);X⑵=X⑶=16.8(dm)。 經(jīng)檢驗,結果正確。 因為寬=高, 所以,應取長為33.8dm;寬=高=16.8dm來進行施工。 [ Last edited by jjdg on 2010-4-20 at 14:20 ] |

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 266分,求材料冶金能源化工等調劑 +6 | 哇呼哼呼哼 2026-03-27 | 8/400 |
|
|---|---|---|---|---|
|
[考研] 291求調劑 +13 | hhhhxn.. 2026-03-23 | 19/950 |
|
|
[考研] 求調劑 +4 | 零八# 2026-03-27 | 4/200 |
|
|
[考研] 322求調劑 +4 | 我真的很想學習 2026-03-23 | 4/200 |
|
|
[考研] 348求調劑 +4 | 小懶蟲不懶了 2026-03-27 | 5/250 |
|
|
[考研] 22408 359分調劑 +3 | Qshers 2026-03-27 | 3/150 |
|
|
[考研] 一志愿陜師大生物學071000,298分,求調劑 +5 | SYA! 2026-03-23 | 5/250 |
|
|
[考研] 284求調劑 +11 | junqihahaha 2026-03-26 | 12/600 |
|
|
[考研] 求調劑 +8 | Auroracx 2026-03-22 | 8/400 |
|
|
[考研] 286求調劑 +13 | Faune 2026-03-21 | 13/650 |
|
|
[考研] 總分322求生物學/生化與分子/生物信息學相關調劑 +5 | 星沉uu 2026-03-26 | 6/300 |
|
|
[考研] 一志愿 南京郵電大學 288分 材料考研 求調劑 +3 | jl0720 2026-03-26 | 3/150 |
|
|
[考研] 求調劑 +3 | QiMing7 2026-03-25 | 3/150 |
|
|
[考研] 340求調劑 +5 | 話梅糖111 2026-03-24 | 5/250 |
|
|
[考研] 344求調劑 +3 | desto 2026-03-24 | 3/150 |
|
|
[考研] 求調劑 +7 | 十三加油 2026-03-21 | 7/350 |
|
|
[考研] 284求調劑 +3 | yanzhixue111 2026-03-23 | 6/300 |
|
|
[考研] 361求調劑 +3 | Glack 2026-03-22 | 3/150 |
|
|
[考研] 工科0856求調劑 +5 | 沐析汀汀 2026-03-21 | 5/250 |
|
|
[考研] 一志愿北京化工大學070300 學碩336求調劑 +5 | vv迷 2026-03-21 | 8/400 |
|