📄 111.txt
字号:
这里有几个小程序的代码。
一。线性方程组的解
Dim Const g_MaxNum As Long = 300
Dim A(g_MaxNum, g_MaxNum) as double
Dim B(g_MaxNum) as double
Dim c as double
Sub GS1(m)
for k=1 To m-1
for I=k+1 To m
C=a(I,k)/a(k,k)
for j=k+1 to m
A(I,J)=a(I,J)-c *A(k,J)
Next j
b(i)=b(i)-b(k)*c
Next I
Next K
End Sub
Subroutine CY1(m)
for i=m To 1 step -1
C=0
for k=i +1,m
c=c+a(i,k) *b(k)
next k
B(i)=(B(i)-c)/a(I,I)
Next i
End Sub
Sub Main()
Open a.dat For Input As #1
Open a.out For Output As #2
Input #1,M
For I=1 to m
For j=1 to m
Input #1,a(I,j)
Next j
Next I
For I=1 to m
Input #1,b(i)
Next i
Call gs1(m)
Call cy1(m)
For I=1 to m
Write #2,b(i)
Next i
Close(1)
Close(2)
end
二 。列主元消去法
Sub GS4(M)
For k=1 to m-1
C=0.0
For I=K to M
If ABS(A(I,K)>ABS(C) THEN
C=A(I,K)
I0=I
ENDIF
Next i
IF I0=K THEN GOTO 30
For J=K to M
T=A(K,J)
A(K,J)=A(I0,J)
A(I0,J)=T
Next j
T=B(K)
B(K)=B(I0)
B(I0)=T
30:
for I=K+1 to M
C=A(I,K)/a(K,K)
for j=k+1 to m
A(I,J)=a(I,J)-C*A(K,J)
Next j
B(I)=B(I)-B(K)*C
Next i
Next k
END sub
三. 列主元消去法求逆
Sub InvZuQu(M As Integer)
Dim L1(5, 5) As Double
Dim L2(5, 5) As Double
Dim TT As Double
For I = 1 To M
For J = 1 To M
If (I = J) Then
L1(I, J) = 1#
Else
L1(I, J) = 0#
End If
Next J
Next I
For k = 1 To M
For L = k To M
If (Abs(A(k, k)) < Abs(A(L, k))) Then
For M = 1 To M
t = A(k, M)
A(k, M) = A(L, M)
TT = L1(k, M)
L1(k, M) = L1(L, M)
L1(L, M) = TT
A(L, M) = t
Next M
End If
Next L
For I = 1 To M
If I < k Or I > k Then
L2(I, k) = A(I, k) / A(k, k)
For J = 1 To M
A(I, J) = A(I, J) - L2(I, k) * A(k, J)
L1(I, J) = L1(I, J) - L2(I, k) * L1(k, J)
Next J
End If
Next I
Next k
For I = 1 To M
For J = 1 To M
L1(I, J) = L1(I, J) / A(I, I)
Next J
Next I
For I = 1 To M
For J = 1 To M
A(I, J) = L1(I, J)
Next J
Next I
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -