modqsm.bas

来自「用于空间插值的地理数据处理的趋势面分析」· BAS 代码 · 共 386 行 · 第 1/2 页

BAS
386
字号
Attribute VB_Name = "Modqsm"
'矩阵方程系数计算
Public SX(1 To 15, 1 To 15) As Double
Public y(1 To 15) As Double
Public Xi(1 To 3) As Double
Public Yi(1 To 3) As Double
Public Zi(1 To 3) As Double
Public b(1 To 15) As Double
Public Sresidual As Double
Public Sregress As Double
Public Const c = 0.8
Public Const F1 = 5.86   'n=4
Public Const F2 = 2.85   'n=10
Public Const F3 = 2.4    'n=15
Public Const F4 = 2.2    'n=3
Public Const F5 = 2.09   'n = 25
Public Const F6 = 2.01   'n=30
Public Const F7 = 1.92   'n=40
Public Const F8 = 1.84   'n=60
Public Const F9 = 1.75   'n=120
Public Const F10 = 1.67  'n=&

'数据输入
Public Sub InputSJ()
    Dim i As Integer
    Dim j As Integer
    
    'For i = 1 To 3
        'Xi(i) = i * Rnd + i
        'Yi(i) = Abs(i * Rnd - i)
        'Zi(i) = Abs(i ^ 2 * Rnd - i)
    'Next
    Xi(1) = 1.563
    Yi(1) = 0.168
    Zi(1) = 0.976
    Xi(2) = 1.621
    Yi(2) = 1.416
    Zi(2) = 0.67
    Xi(3) = 0.419
    Yi(3) = 0.987
    Zi(3) = 0.483
    
End Sub

'矩阵系数计算
Public Sub JZSX()
    Dim i As Integer
    Dim j As Integer
    
    For i = 1 To 15
        For j = 1 To 15
            SX(i, j) = 0#
        Next
    Next
    
    SX(1, 1) = 1#
    For i = 1 To 3
        SX(1, 2) = SX(1, 2) + Xi(i)
        SX(1, 3) = SX(1, 3) + Yi(i)
        SX(1, 4) = SX(1, 4) + Xi(i) ^ 2
        SX(1, 5) = SX(1, 5) + Xi(i) * Yi(i)
        SX(1, 6) = SX(1, 6) + Yi(i) ^ 2
        SX(1, 7) = SX(1, 7) + Xi(i) ^ 3
        SX(1, 8) = SX(1, 8) + Xi(i) ^ 2 * Yi(i)
        SX(1, 9) = SX(1, 9) + Xi(i) * Yi(i) ^ 2
        SX(1, 10) = SX(1, 10) + Yi(i) ^ 3
        SX(1, 11) = SX(1, 11) + Xi(i) ^ 4
        SX(1, 12) = SX(1, 12) + Xi(i) ^ 3 * Yi(i)
        SX(1, 13) = SX(1, 13) + Xi(i) ^ 2 * Yi(i) ^ 2
        SX(1, 14) = SX(1, 14) + Xi(i) * Yi(i) ^ 3
        SX(1, 15) = SX(1, 15) + Yi(i) ^ 4
        
        y(1) = y(1) + Zi(i)
    Next
    
    For i = 1 To 3
        SX(2, 1) = SX(2, 2) + Xi(i)
        SX(2, 2) = SX(2, 2) + Xi(i) * Xi(i)
        SX(2, 3) = SX(2, 3) + Yi(i) * Xi(i)
        SX(2, 4) = SX(2, 4) + Xi(i) ^ 3
        SX(2, 5) = SX(2, 5) + Xi(i) ^ 2 * Yi(i)
        SX(2, 6) = SX(2, 6) + Yi(i) ^ 2 * Xi(i)
        SX(2, 7) = SX(2, 7) + Xi(i) ^ 4
        SX(2, 8) = SX(2, 8) + Xi(i) ^ 3 * Yi(i)
        SX(2, 9) = SX(2, 9) + Xi(i) ^ 2 * Yi(i) ^ 2
        SX(2, 10) = SX(2, 10) + Yi(i) ^ 3 * Xi(i)
        SX(2, 11) = SX(2, 11) + Xi(i) ^ 5
        SX(2, 12) = SX(2, 12) + Xi(i) ^ 4 * Yi(i)
        SX(2, 13) = SX(2, 13) + Xi(i) ^ 3 * Yi(i) ^ 2
        SX(2, 14) = SX(2, 14) + Xi(i) ^ 2 * Yi(i) ^ 3
        SX(2, 15) = SX(2, 15) + Yi(i) ^ 4 * Xi(i)
        
        y(2) = y(2) + Zi(i) * Xi(i)
    Next
    
    For i = 1 To 3
        SX(3, 1) = SX(3, 1) + Yi(i)
        SX(3, 2) = SX(3, 2) + Xi(i) * Yi(i)
        SX(3, 3) = SX(3, 3) + Yi(i) ^ 2
        SX(3, 4) = SX(3, 4) + Xi(i) ^ 2 * Yi(i)
        SX(3, 5) = SX(3, 5) + Xi(i) * Yi(i) ^ 2
        SX(3, 6) = SX(3, 6) + Yi(i) ^ 3
        SX(3, 7) = SX(3, 7) + Xi(i) ^ 3 * Yi(i)
        SX(3, 8) = SX(3, 8) + Xi(i) ^ 2 * Yi(i) ^ 2
        SX(3, 9) = SX(3, 9) + Xi(i) * Yi(i) ^ 3
        SX(3, 10) = SX(3, 10) + Yi(i) ^ 4
        SX(3, 11) = SX(3, 11) + Xi(i) ^ 4 * Yi(i)
        SX(3, 12) = SX(3, 12) + Xi(i) ^ 3 * Yi(i) ^ 2
        SX(3, 13) = SX(3, 13) + Xi(i) ^ 2 * Yi(i) ^ 3
        SX(3, 14) = SX(3, 14) + Xi(i) * Yi(i) ^ 4
        SX(3, 15) = SX(3, 15) + Yi(i) ^ 5
        
        y(3) = y(3) + Zi(i) * Yi(i)
    Next
    
    For i = 1 To 3
        SX(4, 1) = SX(4, 1) + Xi(i) ^ 2
        SX(4, 2) = SX(4, 2) + Xi(i) ^ 3
        SX(4, 3) = SX(4, 3) + Yi(i) * Xi(i) ^ 2
        SX(4, 4) = SX(4, 4) + Xi(i) ^ 4
        SX(4, 5) = SX(4, 5) + Yi(i) * Xi(i) ^ 3
        SX(4, 6) = SX(4, 6) + Yi(i) ^ 2 * Xi(i) ^ 2
        SX(4, 7) = SX(4, 7) + Xi(i) ^ 5
        SX(4, 8) = SX(4, 8) + Xi(i) ^ 4 * Yi(i)
        SX(4, 9) = SX(4, 9) + Xi(i) ^ 3 * Yi(i) ^ 2
        SX(4, 10) = SX(4, 10) + Yi(i) ^ 3 * Xi(i) ^ 2
        SX(4, 11) = SX(4, 11) + Xi(i) ^ 6
        SX(4, 12) = SX(4, 12) + Xi(i) ^ 5 * Yi(i)
        SX(4, 13) = SX(4, 13) + Xi(i) ^ 4 * Yi(i) ^ 2
        SX(4, 14) = SX(4, 14) + Yi(i) ^ 3 * Xi(i) ^ 3
        SX(4, 15) = SX(4, 15) + Yi(i) ^ 4 * Xi(i) ^ 2
        
        y(4) = y(4) + Zi(i) * Xi(i) ^ 2
    Next
    
    For i = 1 To 3
        SX(5, 1) = SX(5, 1) + Xi(i) * Yi(i)
        SX(5, 2) = SX(5, 2) + Xi(i) * Xi(i) * Yi(i)
        SX(5, 3) = SX(5, 3) + Yi(i) * Xi(i) * Yi(i)
        SX(5, 4) = SX(5, 4) + Xi(i) ^ 2 * Xi(i) * Yi(i)
        SX(5, 5) = SX(5, 5) + Xi(i) * Yi(i) * Xi(i) * Yi(i)
        SX(5, 6) = SX(5, 6) + Yi(i) ^ 2 * Xi(i) * Yi(i)
        SX(5, 7) = SX(5, 7) + Xi(i) ^ 3 * Xi(i) * Yi(i)
        SX(5, 8) = SX(5, 8) + Xi(i) ^ 2 * Yi(i) * Xi(i) * Yi(i)
        SX(5, 9) = SX(5, 9) + Xi(i) * Yi(i) ^ 2 * Xi(i) * Yi(i)
        SX(5, 10) = SX(5, 10) + Yi(i) ^ 3 * Xi(i) * Yi(i)
        SX(5, 11) = SX(5, 11) + Xi(i) ^ 4 * Xi(i) * Yi(i)
        SX(5, 12) = SX(5, 12) + Xi(i) ^ 3 * Yi(i) * Xi(i) * Yi(i)
        SX(5, 13) = SX(5, 13) + Xi(i) ^ 2 * Yi(i) ^ 2 * Xi(i) * Yi(i)
        SX(5, 14) = SX(5, 14) + Xi(i) * Yi(i) ^ 3 * Xi(i) * Yi(i)
        SX(5, 15) = SX(5, 15) + Yi(i) ^ 4 * Xi(i) * Yi(i)
        
        y(5) = y(5) + Zi(i) * Xi(i) * Yi(i)
    Next
    
    For i = 1 To 3
        SX(6, 1) = SX(6, 1) + Yi(i) * Yi(i)
        SX(6, 2) = SX(6, 2) + Xi(i) * Yi(i) * Yi(i)
        SX(6, 3) = SX(6, 3) + Yi(i) * Yi(i) * Yi(i)
        SX(6, 4) = SX(6, 4) + Xi(i) ^ 2 * Yi(i) * Yi(i)
        SX(6, 5) = SX(6, 5) + Xi(i) * Yi(i) * Yi(i) * Yi(i)
        SX(6, 6) = SX(6, 6) + Yi(i) ^ 2 * Yi(i) * Yi(i)
        SX(6, 7) = SX(6, 7) + Xi(i) ^ 3 * Yi(i) * Yi(i)
        SX(6, 8) = SX(6, 8) + Xi(i) ^ 2 * Yi(i) * Yi(i) * Yi(i)
        SX(6, 9) = SX(6, 9) + Xi(i) * Yi(i) ^ 2 * Yi(i) * Yi(i)
        SX(6, 10) = SX(6, 10) + Yi(i) ^ 3 * Yi(i) * Yi(i)
        SX(6, 11) = SX(6, 11) + Xi(i) ^ 4 * Yi(i) * Yi(i)
        SX(6, 12) = SX(6, 12) + Xi(i) ^ 3 * Yi(i) * Yi(i) * Yi(i)
        SX(6, 13) = SX(6, 13) + Xi(i) ^ 2 * Yi(i) ^ 2 * Yi(i) * Yi(i)
        SX(6, 14) = SX(6, 14) + Xi(i) * Yi(i) ^ 3 * Yi(i) * Yi(i)
        SX(6, 15) = SX(6, 15) + Yi(i) ^ 4 * Yi(i) * Yi(i)
        
        y(6) = y(6) + Zi(i) * Yi(i) * Yi(i)
    Next
    
    For i = 1 To 3
        SX(7, 1) = SX(7, 1) + Xi(i) ^ 3
        SX(7, 2) = SX(7, 2) + Xi(i) * Xi(i) ^ 3
        SX(7, 3) = SX(7, 3) + Yi(i) * Xi(i) ^ 3
        SX(7, 4) = SX(7, 4) + Xi(i) ^ 2 * Xi(i) ^ 3
        SX(7, 5) = SX(7, 5) + Xi(i) * Yi(i) * Xi(i) ^ 3
        SX(7, 6) = SX(7, 6) + Yi(i) ^ 2 * Xi(i) ^ 3
        SX(7, 7) = SX(7, 7) + Xi(i) ^ 3 * Xi(i) ^ 3
        SX(7, 8) = SX(7, 8) + Xi(i) ^ 2 * Yi(i) * Xi(i) ^ 3
        SX(7, 9) = SX(7, 9) + Xi(i) * Yi(i) ^ 2 * Xi(i) ^ 3
        SX(7, 10) = SX(7, 10) + Yi(i) ^ 3 * Xi(i) ^ 3
        SX(7, 11) = SX(7, 11) + Xi(i) ^ 4 * Xi(i) ^ 3
        SX(7, 12) = SX(7, 12) + Xi(i) ^ 3 * Yi(i) * Xi(i) ^ 3
        SX(7, 13) = SX(7, 13) + Xi(i) ^ 2 * Yi(i) ^ 2 * Xi(i) ^ 3
        SX(7, 14) = SX(7, 14) + Xi(i) * Yi(i) ^ 3 * Xi(i) ^ 3
        SX(7, 15) = SX(7, 15) + Yi(i) ^ 4 * Xi(i) ^ 3
        
        y(7) = y(7) + Zi(i) * Xi(i) ^ 3

⌨️ 快捷键说明

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