|
행렬문제에서 '6'런타임 오류가 발생하였다는데 어떻게 해결해야 하나요
--------------------------------------
Option Explicit
Const NMAX As Integer = 100
Sub gauss()
Dim a(NMAX, NMAX) As Double, b(NMAX) As Double
Dim aa(NMAX, NMAX) As Double, bb(NMAX) As Double
Dim x(NMAX) As Double, xx(NMAX) As Double
Dim sum As Double
Dim i As Integer, j As Integer, k As Integer, n As Integer
a(0, 0) = 10
a(0, 1) = 5
a(0, 2) = 20
b(0) = 650
a(1, 0) = 5
a(1, 1) = 10
a(1, 2) = 10
b(1) = 475
a(2, 0) = 20
a(2, 1) = 10
a(2, 2) = 5
b(2) = 425
n = 3
For k = 0 To n - 1
For i = 0 To n - 1
For j = 0 To n - 1
Cells(i + 5 * (k + 1), j + 5 * (k + 1)) = a(i, j)
Next j
Cells(i + 5 * (k + 1), j + 5 * (k + 1)) = b(i)
Next i
For i = 0 To n - 1
For j = 0 To n - 1
aa(i, j) = a(i, j) / a(i, k)
Next j
bb(i) = b(i) / a(i, k)
Next i
For i = k + 1 To n - 1
For j = 0 To n - 1
a(i, j) = aa(i, j) - aa(k, j)
Next j
b(i) = bb(i) - bb(k)
Next i
Next k
For i = n - 1 To 0 Step -1
sum = 0
For j = i + 1 To n - 1
sum = sum + a(i, j) * x(j)
Next j
x(i) = (b(i) - sum) / a(i, i)
Next i
For i = 0 To n - 1
Cells(5 + i, 2) = x(i)
Next i
End Sub
-----------------------------------------------------------
|
|