返回列表 上一主題 發帖

EXCEL VBA求一元二次方程式 (不用公式解)(2)

EXCEL VBA求一元二次方程式 (不用公式解)(2)

本帖最後由 森野 於 2021-10-20 11:01 編輯

因為小學生不能再EXCEL程式區板回復 首先感謝Andy2483回應 但我看程式碼裡面也有公式在裡面  可能是我描述不清楚 我重新描述一次
用excel vba 求解一元二次方程式X²+2X-4=0 不能用帶入公式的方式(因為如果更高次也許就沒有公式可以帶入),附件有詳細說明

結論
1.x1、x2代入多少,判定正確方向,錯誤就停止
2.上述找出正確方向,逼近解,最終找出解答
想知道如何設定程式碼以及詳細

回復 2# Andy2483

前輩您好  可以稍微簡單說明一下每項代表的意義嗎
這串以下好像是公式 設定這串的用意是什麼 (4 * a * c - b ^ 2) / 4 * a = 0  (如果不能用公式解是否可以不設定此項)
If n = 2 Then  
   If (4 * a * c - b ^ 2) / 4 * a = 0 Then
      MsgBox "唯一解 X= " & (-b) / (2 * a): Exit Sub
      ElseIf ((4 * a * c - b ^ 2) / 4 * a > 0 And a > 0) Or ((4 * a * c - b ^ 2) / 4 * a < 0 And a < 0) Then
         MsgBox " X 無解!": Exit Sub
請前輩稍微說明一下
888 和999和 S0及S0 =-100*J和S1和 S1 =100*J 是什麼
還有以下的設定說明 想了解詳細
End If
888: S0 = -100 * J: S1 = 100 * J: S = J: P = 1  
999
For X = S0 To S1 Step S
   Y0 = a * X ^ n + b * X + c
   Y1 = (a * (X + S)) ^ n + (b * (X + S)) + c
   P = Y0 * Y1
   If (S < 10 ^ -13 And J = 1) Or (S > -(10 ^ -13) And J = -1) Then P = 0
   If P = 0 Then
      If c = 0 And J = 1 Then X1 = X
      If c = 0 And J = -1 Then X2 = X
      If J = -1 Then: MsgBox "X1= " & X1 & vbLf & vbLf & "X2= " & X2: Exit Sub
      J = -1: GoTo 888
      ElseIf P < 0 Then
         S0 = X: S1 = S0 + S: S = S / 10  '
         If J = 1 Then
            MsgBox "X1 介於 " & S0 & " ~ " & S1
            X1 = S1
            Else
               MsgBox "X2 介於 " & S0 & " ~ " & S1
               X2 = S1
         End If
         GoTo 999
   End If
Next
End Sub
上述程式跑出來
X1=1.2360679774997,X2=-3.2360679774997
答案後面好像還少一項數字
X1=1.23606797749979,X2=-3.23606797749979
程式應該要怎麼改
感謝前輩

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題