2016-12-18 5 views
0

У меня проблема с устранением Гаусса для нижней треугольной матрицы, я не могу представить, как здесь должны работать петли. Я попытался запустить цикл назад, но это не помогло. Пока что у меня есть исключение Гаусса для верхней треугольной матрицы.Устранение гауссова для нижней треугольной матрицы

For[k = 1, k <= size - 1, k++, 
    For[i = k + 1, i <= size, i++, 
     If[tab[[k]][[k]] != 0, 
     help = tab[[i]][[k]]/tab[[k]][[k]]; 
     For[j = k, j <= size, j++, 
     tab[[i]][[j]] = tab[[i]][[j]] - help*tab[[k]][[j]]; 
     identity[[i]][[j]] = identity[[i]][[j]] - help*tab[[k]][[j]] 
     ] 
     ] 
     ] 
    ] 

Может кто-нибудь помочь мне, пожалуйста?

@edit

Я сделал петлю, как этого

For[k = size, k > 1, k--, 
For[i = k - 1, i >= 1, i--, 

И кажется, что это работает, но теперь у меня есть проблема, потому что эти две петли не дают обратимую матрицу.

Пример матрица:

[ 3 4 2 ] 
[ 5 5 5 ] 
[ 1 5 3 ] 

Выход для верхнего диагонального

[3 4 2 ] 
[0 -5/3 5/3 ] 
[0 0 6 ] 

выхода для идентификации-Matrix

[1 0  0 ] 
    [-5 -17/3 -10/3 ] 
    [-1 -5 -4 ] 

и теперь, когда я бег петли для нижней диагонали, вывод для него неверен. Он не делит основную диагональ

+0

Вы видели ['RowReduce'] (http://reference.wolfram.com/language/ref/RowReduce.html). Вы также можете взглянуть на руководство [Matrices and Linear Algebra] (http://reference.wolfram.com/language/guide/MatricesAndLinearAlgebra.html), которое ссылается на многие другие направляющие линейной алгебры. – Edmund

+0

Обратите внимание, что цикл 'For' в математике немного отличается от C. В C/C++ приращение индекса выполняется после операций цикла, в то время как в написанном вами коде, перед любыми операциями внутри цикла индекс увеличивается. –

+0

показать некоторые примерные малые матрицы и ожидаемые результаты. Неясно, есть ли у вас проблема кодирования или проблема с линейной алгеброй (исключение Гаусса на верхней треугольной матрице ничего не делает) – agentp

ответ

0

Ну, на самом деле я нашел проблему, но я не знаю, как я мог решить, что петля верхнего треугольника-матрицы отлично работает, но проблема заключается в нижнем треугольном , он не делит элементы по диагонали.

 Смежные вопросы

  • Нет связанных вопросов^_^