急急急!用VB编程求解线性方程组,用高斯消去法

来源:百度知道 编辑:UC知道 时间:2024/06/27 06:54:38
源代码如下:
Dim a() As Double, b() As Double, nIs As Integer, nJs As Integer, p As Double, t As Double, d As Double
Private Sub Form_Click()
Dim n As Integer, m As Integer
m = 0
n = Val(InputBox("输入线性方程组的阶数n"))
'输入系数矩阵
ReDim a(n, n) As Double
Form1.Print "系数矩阵:"
For v = 1 To n
For w = 1 To n
a(v, w) = Val(InputBox("a(" & v & "," & w & ")"))
m = m + 1
Print a(v, w);
If m Mod n = 0 Then Print
Next w
Next v
Print
Print "常数向量:"
ReDim b(n) As Double
For v = 1 To n
b(n) = Val(InputBox(输入常数向量 & "b(" & v & ")"))
Print b(n);
Next v
'寻找最大值元素
For k = 1 To n
t = 0#
For i = k To n
For j = k To n
d = Abs(a(i, j))
If a(i, j) > t Then
t = a(i, j)
nIs = i
nJs = j
End If
N

每个人的思维逻辑都不一样.这是我写的代码,供参考:

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
Nex