Показать сообщение отдельно
Старый 14.03.2006, 14:59   #6
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
И вообще лучше и быстрее всего решать системы лин. уравнений методом Жордано-Гаусса... никаких переполнений переменных не будет...
'Процедура преобразования матрицы методом Жордана-Гаусса
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 рулез, С++ отстой
__________________
Blitz3d to Unity Wiki
(Offline)