?? 列主元~2.frm
字號:
VERSION 5.00
Begin VB.Form Form11
BackColor = &H00C0C0C0&
Caption = "列主元消去法"
ClientHeight = 7770
ClientLeft = 60
ClientTop = 345
ClientWidth = 12855
LinkTopic = "Form11"
ScaleHeight = 7770
ScaleWidth = 12855
StartUpPosition = 3 '窗口缺省
Begin VB.PictureBox Picture2
BackColor = &H00FFFFFF&
BeginProperty Font
Name = "宋體"
Size = 9
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 5055
Left = 5400
ScaleHeight = 4995
ScaleWidth = 6435
TabIndex = 3
Top = 2040
Width = 6495
End
Begin VB.PictureBox Picture1
BackColor = &H00FFFFFF&
BeginProperty Font
Name = "宋體"
Size = 9
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 2295
Left = 240
ScaleHeight = 2235
ScaleWidth = 4875
TabIndex = 2
Top = 2040
Width = 4935
End
Begin VB.CommandButton Command1
Caption = "列主元消去法"
BeginProperty Font
Name = "宋體"
Size = 10.5
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 4560
TabIndex = 0
Top = 480
Width = 1695
End
Begin VB.Label Label2
BackColor = &H00C0C0C0&
Caption = "運算結果"
BeginProperty Font
Name = "宋體"
Size = 10.5
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 7560
TabIndex = 4
Top = 1320
Width = 2055
End
Begin VB.Label Label1
BackColor = &H00C0C0C0&
Caption = "方程組的系數矩陣"
BeginProperty Font
Name = "宋體"
Size = 10.5
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 1440
TabIndex = 1
Top = 1320
Width = 2055
End
End
Attribute VB_Name = "Form11"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
Dim a(), b(), X() As Single
'Dim a(3, 3), b(3), X(3) As Single
Dim i As Integer, j As Integer, k As Integer, n As Integer
Dim st As String
'n = 3
'a(1, 1) = 4: a(1, 2) = -1: a(1, 3) = 1: b(1) = 6
'a(2, 1) = -1: a(2, 2) = 4.25: a(2, 3) = 2.75: b(2) = -0.5
'a(3, 1) = 1: a(3, 2) = 2.75: a(3, 3) = 3.5: b(3) = 1.25
n = InputBox("輸入方程組的個數n", , , 100, 100)
ReDim X(n), a(n, n), b(n)
Picture1.Cls
For i = 1 To n
For j = 1 To n
a(i, j) = InputBox("輸入a(" & i & "," & j & ")的值", , , 100, 100)
Picture1.Print a(i, j),
Next j
b(i) = InputBox("輸入b(" & i & ")的值", , , 100, 100)
Picture1.Print b(i)
Next i
j = 1
k = 1
While k <= n - 1
'比高斯消元法多了選主元素
maxa = Abs(a(k, k))
m = k
For i = k To n
If Abs(a(i, k)) > maxa Then
maxa = Abs(a(i, k))
m = i
End If
Next i
If m <> k Then
For j = k To n
c = a(k, j)
a(k, j) = a(m, j)
a(m, j) = c
Next j
c = b(k)
b(k) = b(m)
b(m) = c
End If
i = k + 1
While i <= n
l = a(i, k) / a(k, k)
j = k
While j <= n
a(i, j) = a(i, j) - l * a(k, j)
j = j + 1
Wend
b(i) = b(i) - l * b(k)
i = i + 1
Wend
'Picture2.Cls
Picture2.Print "第" + Str(k) + "次消元后的系數矩陣"
Picture2.Print
i = 1
While i <= n
j = 1
While j <= n
a(i, j) = Int(a(i, j) * 10000) / 10000
Picture2.Print a(i, j),
j = j + 1
Wend
b(i) = Int(b(i) * 10000) / 10000
Picture2.Print b(i)
i = i + 1
Wend
Picture2.Print "列主元素為:"
Picture2.Print maxa '疑問
ms = MsgBox("按任意鍵繼續")
k = k + 1
Wend
'回代
b(n) = b(n) / a(n, n)
X(n) = b(n)
For i = n - 1 To 1 Step -1
s = 0
For j = i + 1 To n
s = s + a(i, j) * b(j)
Next j
b(i) = (b(i) - s) / a(i, i)
X(i) = b(i)
Next i
Picture2.Print
For i = 1 To n
Picture2.Print " x(" + Str(i) + ")= "; Int(X(i) * 10000) / 10000
Next i
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -