Sub 解方程(XiSu() As Double, jie() As Double)
Dim BeiSu As Double
On Error GoTo err1
m = UBound(XiSu, 1) '行数
n = UBound(XiSu, 2) '列数
If n <> m + 1 Then
MsgBox "系数矩阵维数不正确!", , "注意"
Exit Sub
End If
For i = 0 To m
If XiSu(i, i) = 0 Then
MsgBox "系数矩阵的对角线系数不能有 0 ,请校对后重新输入!", , "注意"
Exit Sub
End If
Next
For i = 1 To m '行
For k = i To m '行
BeiSu = XiSu(k, i - 1) / XiSu(i - 1, i - 1)
For j = i - 1 To n '列数据处理
XiSu(k, j) = XiSu(k, j) - BeiSu * XiSu(i - 1, j)
Next
Next
Next
For i = 0 To m
jie(i) = XiSu(i, n) / XiSu(i, i)
Next
Exit Sub
err1:
If Err.Number = 11 Then
MsgBox "方程组无解,请校对系数。", , "提示"
Else
MsgBox Err.Description, , "提示"
End If
End Sub
Private Sub Command1_Click()
Dim suju() As Double, jie() As Double
n = Val(InputBox("请输入方程组元数(未知数个数):"))
ReDim suju(n - 1, n)
ReDim jie(n - 1)
For i = 0 To n - 1 '输入系数
For j = 0 To n
suju(i, j) = Val(InputBox("请输入方程系数:" & vbCrLf & "第" & i + 1 & "行,第" & j + 1 & "列:"))
Next
Next
Call 解方程(suju, jie)
Cls
For i = 0 To n - 1
Print "X" & i + 1 & "="; jie(i)
Next
End Sub
以上是代数方程的通解,如果在给定X3=3的时候,求解其他解,该怎样编程?请各位帮忙,谢谢
[ 本帖最后由 cxhu 于 2010-5-6 17:41 编辑 ]