d16r2.txt
来自「VB常用数值算法集 内含有解线性代数方程组」· 文本 代码 · 共 51 行
TXT
51 行
Private Sub Command1_Click()
'PROGRAM D16R2
'Driver for routine ADI
JMAX = 11
PI = 3.1415926
Dim A(11, 11), B(11, 11), C(11, 11), D(11, 11)
Dim E(11, 11), F(11, 11), G(11, 11), U(11, 11)
For I = 1 To JMAX
For J = 1 To JMAX
A(I, J) = -1#
B(I, J) = 2#
C(I, J) = -1#
D(I, J) = -1#
E(I, J) = 2#
F(I, J) = -1#
G(I, J) = 0#
U(I, J) = 0#
Next J
Next I
Mid1 = JMAX / 2 + 1
G(Mid1, Mid1) = 2#
ALPHA = 2# * (1# - Cos(PI / JMAX))
BETA = 2# * (1# - Cos((JMAX - 1) * PI / JMAX))
ALIM = Log(4# * JMAX / PI)
K = 0
Do
K = K + 1
Loop While 2 ^ K < ALIM
EPS = 0.0001
Call ADI(A(), B(), C(), D(), E(), F(), G(), U(), JMAX, K, ALPHA, BETA, EPS)
Print
Print Tab(5); "ADI Solution:"
Print
For I = 1 To JMAX
For J = 1 To JMAX
Print Tab(5 + (J - 1) * 8); Format$(U(I, J), "#.#0");
Next J
Next I
Print Tab(5)
Print Tab(5); "Test that sulotion satisfies Difference Eqns:"
Print
For I = 2 To JMAX - 1
For J = 2 To JMAX - 1
AAA = -4# * U(I, J) + U(I + 1, J)
G(I, J) = AAA + U(I - 1, J) + U(I, J - 1) + U(I, J + 1)
Next J
For J = 2 To JMAX - 1
Print Tab(5 + (J - 2) * 8); Format$(G(I, J), "#.#0");
Next J
Next I
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?