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

📄 module1.bas

📁 平均因子分解法
💻 BAS
字号:
Attribute VB_Name = "Module1"
Option Explicit
'***********************************************************
'用cholesky来求线性方程组,要求系数矩阵是正定对称矩阵
Public Function cholesky(n As Integer, a() As Double, b() As Double, x() As Double)
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim L() As Double
ReDim L(n, n) As Double
Dim y() As Double
ReDim y(n) As Double
For i = 1 To n
    For j = 1 To i
        If j = i Then
            For k = 1 To i - 1
                L(i, i) = L(i, i) + L(i, k) ^ 2
            Next k
            L(i, i) = a(i, i) - L(i, j)
            L(i, i) = L(i, i) ^ 0.5
        Else
            For k = 1 To j - 1
                L(i, j) = L(i, j) + L(i, k) * L(j, k)
            Next k
            L(i, j) = a(i, j) - L(i, j)
            L(i, j) = L(i, j) / L(j, j)
        End If
    Next j
    
    For j = 1 To i - 1
        y(i) = y(i) + L(i, j) * y(j)
    Next j
    y(i) = b(i) - y(i)
    y(i) = y(i) / L(i, i)
Next i


For i = n To 1 Step -1
    For j = i + 1 To n
         x(i) = x(i) + L(j, i) * x(j)
    Next j
    x(i) = y(i) - x(i)
    x(i) = x(i) / L(i, i)
Next i
'For i = 1 To n
'x(i) = x(i) / (111.5 * 111.5)
'Next i

End Function


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -