📄 frmlinsolv.frm
字号:
Left = 3240
TabIndex = 7
Text = "-1"
Top = 960
Width = 855
End
Begin VB.TextBox txtFun
Height = 375
Index = 7
Left = 4560
TabIndex = 6
Text = "15"
Top = 960
Width = 855
End
Begin VB.TextBox txtFun
Height = 375
Index = 8
Left = 360
TabIndex = 5
Text = "-1"
Top = 1560
Width = 855
End
Begin VB.TextBox txtFun
Height = 375
Index = 9
Left = 1800
TabIndex = 4
Text = "-2"
Top = 1560
Width = 855
End
Begin VB.TextBox txtFun
Height = 375
Index = 10
Left = 3240
TabIndex = 3
Text = "5"
Top = 1560
Width = 855
End
Begin VB.TextBox txtFun
Height = 375
Index = 11
Left = 4560
TabIndex = 2
Text = "10"
Top = 1560
Width = 855
End
Begin VB.TextBox txtFun
Height = 375
Index = 0
Left = 360
TabIndex = 1
Text = "10"
Top = 360
Width = 855
End
Begin VB.Label lblFun
Caption = "x2+"
Height = 255
Index = 1
Left = 2760
TabIndex = 32
Top = 480
Width = 375
End
Begin VB.Label lblFun
Caption = "x3="
Height = 255
Index = 2
Left = 4200
TabIndex = 31
Top = 480
Width = 375
End
Begin VB.Label lblFun
Caption = "x1+"
Height = 255
Index = 3
Left = 1320
TabIndex = 30
Top = 1080
Width = 375
End
Begin VB.Label lblFun
Caption = "x2+"
Height = 255
Index = 4
Left = 2760
TabIndex = 29
Top = 1080
Width = 375
End
Begin VB.Label lblFun
Caption = "x3+"
Height = 255
Index = 5
Left = 4200
TabIndex = 28
Top = 1080
Width = 375
End
Begin VB.Label lblFun
Caption = "x1+"
Height = 255
Index = 6
Left = 1320
TabIndex = 27
Top = 1680
Width = 375
End
Begin VB.Label lblFun
Caption = "x2+"
Height = 255
Index = 7
Left = 2760
TabIndex = 26
Top = 1680
Width = 375
End
Begin VB.Label lblFun
Caption = "x3+"
Height = 255
Index = 8
Left = 4200
TabIndex = 25
Top = 1680
Width = 375
End
Begin VB.Label lblFun
Caption = "x1+"
Height = 255
Index = 0
Left = 1320
TabIndex = 24
Top = 480
Width = 375
End
End
Begin VB.Label lblPres
Caption = "计算精度"
Height = 255
Left = 4200
TabIndex = 44
Top = 5040
Width = 855
End
End
Attribute VB_Name = "frmLinSolv"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Enum Method
jacobi = 1
gauss = 2
sor = 3
End Enum
Private mlsvSolver As LinSolver.LinSolver
Private mdblIndex(1 To 3, 1 To 3) As Double
Private mdblRight(1 To 3) As Double
Private mdblInit(1 To 3) As Double
Private mdblPrec As Double
Private mdblWeight As Double
Private mmtdMethod As Method
Private Sub cmdCancel_Click()
'卸载窗体
Unload frmLinSolv
End Sub
Private Sub Form_Load()
'创建LinSolver类的实例
Set mlsvSolver = New LinSolver.LinSolver
'默认时选择Jacobi迭代法进行计算
optJacobi.Value = True
mmtdMethod = jacobi
End Sub
Private Sub cmdCompute_Click()
Dim varResult As Variant
'系数矩阵
mdblIndex(1, 1) = Val(txtFun(0).Text)
mdblIndex(1, 2) = Val(txtFun(1).Text)
mdblIndex(1, 3) = Val(txtFun(2).Text)
mdblIndex(2, 1) = Val(txtFun(4).Text)
mdblIndex(2, 2) = Val(txtFun(5).Text)
mdblIndex(2, 3) = Val(txtFun(6).Text)
mdblIndex(3, 1) = Val(txtFun(8).Text)
mdblIndex(3, 2) = Val(txtFun(9).Text)
mdblIndex(3, 3) = Val(txtFun(10).Text)
'右端项
mdblRight(1) = Val(txtFun(3).Text)
mdblRight(2) = Val(txtFun(7).Text)
mdblRight(3) = Val(txtFun(11).Text)
'初值
mdblInit(1) = Val(txtInit(0).Text)
mdblInit(2) = Val(txtInit(1).Text)
mdblInit(3) = Val(txtInit(2).Text)
'精度
mdblPrec = Val(txtPrec.Text)
'选择不同的方法进行求解
Select Case mmtdMethod
Case jacobi
mlsvSolver.a = mdblIndex
mlsvSolver.b = mdblRight
mlsvSolver.x0 = mdblInit
mlsvSolver.eps = mdblPrec
Call mlsvSolver.jacobi(1, varResult)
Case gauss
mlsvSolver.a = mdblIndex
mlsvSolver.b = mdblRight
mlsvSolver.x0 = mdblInit
mlsvSolver.eps = mdblPrec
Call mlsvSolver.gauss(1, varResult)
Case sor
mlsvSolver.a = mdblIndex
mlsvSolver.b = mdblRight
mlsvSolver.x0 = mdblInit
mlsvSolver.eps = mdblPrec
mdblWeight = Val(txtWeight.Text)
Call mlsvSolver.sor(1, varResult, mdblWeight)
End Select
'输出计算结果
Dim intI As Integer
For intI = 1 To 3
txtResult(intI - 1).Text = ""
txtResult(intI - 1).Text = Str(varResult(1, intI))
Next
End Sub
Private Sub optGauss_Click()
mmtdMethod = gauss
lblWeight.Enabled = False
txtWeight.Enabled = False
End Sub
Private Sub optJacobi_Click()
mmtdMethod = jacobi
lblWeight.Enabled = False
txtWeight.Enabled = False
End Sub
Private Sub optSOR_Click()
mmtdMethod = sor
lblWeight.Enabled = True
txtWeight.Enabled = True
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -