⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmlinsolv.frm

📁 《MATLAB实用指南》系列丛书DE源代码
💻 FRM
📖 第 1 页 / 共 2 页
字号:
         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 + -