vb 方程求解算法
- 二元一次方程'二元一次方程**********************************************************************
'方程形式 :y=ax+b (a<>0)
' y=cx+d (c<>0)
Function Equation2_1(ByVal a As Double, b As Double, c As Double, d As Double, _
ByRef x As Double, ByRef y As Double) As Integer
If a = 0 Or c = 0 Then
'不能构成二元一次方程
Equation2_1 = -1
Else
If b = d Then
If a = c Then
'方程有无数解
Equation2_1 = 0
End If
Else
x = (d - b) / (a - c)
y = a * x + b
'方程有唯一解
Equation2_1 = 1
End If
End If
End Function
'********************************************************************************** - 一元二次方程
1、求根公式的解法'一元二次方程**********************************************************************
'方程形式:ax^2+bx+c=0 (a<>0)
'求根公式:x= (-b ± Sqr(b ^ 2 - 4 * a * c)) / 4 / a
' x1,x2 使用变体型变量,因为方程可能存在虚根
Function Equation1_2(ByVal a As Double, b As Double, c As Double, _
ByRef x1, ByRef x2) As Integer
If a = 0 Then
'不能构成一元一次方程
Equation1_2 = -1
Else
If b ^ 2 - 4 * a * c >= 0 Then
'方程有实根
x1 = (-b + Sqr(b ^ 2 - 4 * a * c)) / 4 / a
x2 = (-b - Sqr(b ^ 2 - 4 * a * c)) / 4 / a
Equation1_2 = 0
Else
'方程无实根,求共轭虚根
x1 = "(" & -Str(b) & "+" & Sqr(4 * a * c - b ^ 2) & "i)/" & Str(4 * a)
x2 = "(" & -Str(b) & "-" & Sqr(4 * a * c - b ^ 2) & "i)/" & Str(4 * a)
Equation1_2 = 1
End If
End If
End Function
'********************************************************************************** - 多元一次方程
高斯消元法就可以解决 方程系数为零的情况。
具体的代码详见:http://www.tiancao.net/blogview.asp?logID=104
[本日志由 tiancao1001 于 2018-01-05 03:14 PM 编辑]
|
暂时没有评论
发表评论 - 不要忘了输入验证码哦! |