一元四次方程y = c0 +c1x+c2x2 +c3x3 +c4x4 已知y的值,如何求x?在vb中实现

解决方案 »

  1.   

    四次方程求根是算法问题,和用vb还是vc没关系
    简单的二分法是指先确定一个范围(x,y),在这个范围内,f(x)*f(y)<0,然后取z=(x+y)/2,
    再用z替换掉x或y ( if f(x)*f(z)>0 then x=z else y=z ),然后递归
    缺点是一次只能找一个,范围也要先给定,不过一般的四次方程没有公式解,只能这样了
      

  2.   

    模块中:
    二分法求方程根
    Function twofen(a As Double, b As Double, eps As Double)
      Dim c As Double
      Dim d As Double
      Dim e As Double
       While b - a > eps
         c = f(a)
         d = f(b)
         e = f((a + b) / 2)
         If e = 0 Then
            twofen = (a + b) / 2
            Exit Function
         Else
            If e * c < 0 Then
             b = (a + b) / 2
            Else
             a = (a + b) / 2
            End If
            If e * c > 0 And e * d > 0 Then
              MsgBox "此方程无解!", vbOKOnly + vbExclamation, ""
            End If
         End If
       Wend
       twofen = (a + b) / 2
    End Function
    Function f(x As Double)
      
    f = x ^ 3 + 2 * x ^ 2 + 10 * x - 20  '你要求解的方程
    End Function
    Sub main()
      Dim u As Double
      u = twofen(1, 2, 0.0001)  '1,2为区间范围,0.0001为精度
      MsgBox "用二分法求方程 x ^3+2*x^2+10*x-20 = 0的根,求得其解为 x = " & u
    End Sub
      

  3.   

    谢谢WDX888这位朋友,非常感谢你的帮助