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

📄 cbxf.txt

📁 功能描述:计算二阶车贝雪夫系数VB程序摸块,很好的
💻 TXT
字号:
'********************************************************************************
'*   模块名称:cbxfxs
'*   功能描述:计算二阶车贝雪夫系数
'*   设    计:江文华、陈道劲
'*   说    明:GridValue(1 To MY, 1 To MX)
'*   返回说明:cbxfData(1 to 9) cbxfData(1)=A00
'                               cbxfData(2)=A01
'                               cbxfData(3)=A10
'                               cbxfData(4)=A11
'                               cbxfData(5)=A02
'                               cbxfData(6)=A20
'                               cbxfData(7)=A12
'                               cbxfData(8)=A21
'                               cbxfData(9)=A22
'********************************************************************************


Sub CalculateCBXF(cFilein As String) 'MX 为纬向格点数,MY为经向格点数

'cFilein为输入数据文件名
'MX 为纬向格点数,MY为经向格点数
'cbxfData 数组用于存放车贝雪夫二阶系数A00、A01、A10、A11、A02、A20、A12、A21、A22
'Dim ZX() As Single, ZY() As Single
'Dim GridValue() As Single
''从数据文件中读取数据

Dim GridValue()
Dim ZX()
Dim ZY()


Open cFilein For Input As #11
Input #11, MY, MX
ReDim GridValue(1 To MY, 1 To MX)
ReDim ZX(1 To MY)
ReDim ZY(1 To MX)
For J = 1 To MY
    For I = 1 To MX
     Input #11, GridValue(J, I)
    Next
Next
Close #11
'


Dim CI As Single, CJ As Single ', I As Long, J As Long
CI = 0
For I = 1 To MX
CI = CI + I
Next
CI = CI / MX
'
CJ = 0
For J = 1 To MY
   CJ = CJ + J
Next
CJ = CJ / MY
'
Dim M0 As Single, N0 As Single, S01 As Single, S02 As Single, S10 As Single, S20 As Single
M0 = (MX ^ 2 - 1) / 12
N0 = (MY ^ 2 - 1) / 12
'计算经向平均值
For I = 1 To MX
  ZY(I) = 0
    For J = 1 To MY
     ZY(I) = ZY(I) + GridValue(J, I)
    Next
  ZY(I) = ZY(I) / MY
Next
'计算纬向平均值
For J = 1 To MY
  ZX(J) = 0
    For I = 1 To MX
      ZX(J) = ZX(J) + GridValue(J, I)
    Next
  ZX(J) = ZX(J) / MX
Next
'计算系数A00(A00=cbxfData(1))
cbxfData(1) = 0
    For J = 1 To MY
       cbxfData(1) = cbxfData(1) + ZX(J)
    Next
cbxfData(1) = cbxfData(1) / MY
'计算系数A01(A01=cbxfData(2))
 cbxfData(2) = 0
 S01 = 0
    For J = 1 To MY
        S01 = S01 + (J - CJ) ^ 2
        cbxfData(2) = cbxfData(2) + ZX(J) * (J - CJ)
    Next
cbxfData(2) = cbxfData(2) / S01
'计算系数A10(A10=cbxfData(3))
 cbxfData(3) = 0
 S10 = 0
    For I = 1 To MX
        S10 = S10 + (I - CI) ^ 2
        cbxfData(3) = cbxfData(3) + ZY(I) * (I - CI)
    Next
cbxfData(3) = cbxfData(3) / S10
'计算系数A11(A11=cbxfData(4))
 cbxfData(4) = 0
For I = 1 To MX
   For J = 1 To MY
        cbxfData(4) = cbxfData(4) + GridValue(J, I) * (I - CI) * (J - CJ)
   Next
Next
   cbxfData(4) = cbxfData(4) / (S10 * S01)
'计算系数A02(A02=cbxfData(5))
 S02 = 0
 cbxfData(5) = 0
For J = 1 To MY
    S02 = S02 + ((J - CJ) ^ 2 - N0) ^ 2
    cbxfData(5) = cbxfData(5) + ZX(J) * ((J - CJ) ^ 2 - N0)
Next
cbxfData(5) = cbxfData(5) / S02
'计算系数A20(A20=cbxfData(6))
 cbxfData(6) = 0
 S20 = 0
For I = 1 To MX
  S20 = S20 + ((I - CI) ^ 2 - M0) ^ 2
  cbxfData(6) = cbxfData(6) + ZY(I) * ((I - CI) ^ 2 - M0)
Next
 cbxfData(6) = cbxfData(6) / S20
 '计算系数A12(A12=cbxfData(7))
  cbxfData(7) = 0
 For I = 1 To MX
   For J = 1 To MY
    cbxfData(7) = cbxfData(7) + GridValue(J, I) * (I - CI) * ((J - CJ) ^ 2 - N0)
   Next
 Next
 cbxfData(7) = cbxfData(7) / (S10 * S02)
  '计算系数A21(A21=cbxfData(8))
      cbxfData(8) = 0
 For I = 1 To MX
   For J = 1 To MY
    cbxfData(8) = cbxfData(8) + GridValue(J, I) * ((I - CI) ^ 2 - M0) * (J - CJ)
   Next
 Next
 cbxfData(8) = cbxfData(8) / (S20 * S01)
   '计算系数A22(A22=cbxfData(9))
    cbxfData(9) = 0
 For I = 1 To MX
   For J = 1 To MY
     cbxfData(9) = cbxfData(9) + GridValue(J, I) * ((I - CI) ^ 2 - M0) * ((J - CJ) ^ 2 - N0)
   Next
 Next
   cbxfData(9) = cbxfData(9) / (S20 * S02)
 Erase GridValue, ZX, ZY
End Sub

⌨️ 快捷键说明

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