И вообще лучше и быстрее всего решать системы лин. уравнений методом Жордано-Гаусса... никаких переполнений переменных не будет...
'Процедура преобразования матрицы методом Жордана-Гаусса
Public Sub MAT(A() As Double, I1 As Integer)
* If A(I1, I1) = 0 Then *'Проверка на "0" по главной диагонали
* *If I1 = N Then R = True: Exit Sub
* * For i = I1 + 1 To N
* * *If A(i, I1) <> 0 Then
* * * For j = 0 To N + 1
* * * *b = A(I1, j): A(I1, j) = A(i, j): A(i, j) = b
* * * Next j
* * * If A(I1, I1) <> 0 Then Exit For
* * *End If
* * Next i
* * *If A(I1, I1) = 0 Then R = 1: Exit Sub
* * *If N < NNN Then
* * * Form2.Text1 = Form2.Text1 + "МЕНЯЕМ СТРОКИ МЕСТАМИ" + vbCrLf: VIVOD A()
* * *End If
* End If
* * *For j = N + 1 To I1 Step -1 'Получение единицы по главной диагонали
* * * *A(I1, j) = A(I1, j) / A(I1, I1)
* * *Next j
* * For i = 0 To N
* * *If i <> I1 Then
* * * For j = N + 1 To I1 Step -1
* * * *A(i, j) = A(i, j) - A(I1, j) * A(i, I1)
* * * Next j
* * *End If
* * Next i
End Sub
Преобразований таких N, т.е. число переменных (цикл for I1=0 to N-1, где I1 - номер итерации матрица A() - имеет размер [N,N+1])
А вот исходник моей проги (релизовать нахождение обратной матрицы методом дополнительной единичной я наверное неуспел... или исходник потерял хз)
VB рулез, С++ отстой