Помощь - Поиск - Пользователи - Календарь
Полная версия: Проблема с вычислением обратной матрицы
Форум «Всё о Паскале» > Образование и наука > Математика
vly67
Необходимо решить систему нелинейных уравнений. Я это делаю через метод Ньютона, в процессе вычисляя обратную матрицу.
Я вычисляю обратную матрицу Lu методом, приведением матрицы к верхнетреугольной. На этом месте получается затык потому, что на главной диагонали получаются нули или очень малые значения. Эта матрица имеет решение, но нужны какие-то методы, чтобы обойти этот ступор.
Ранее , на этомфоруме, я встречал совет прибавлять к строке, в которой на главной диагонали образовался ноль, все нижестоящие - это неверный путь. Таким образом не находятся даже обратные матрицы, которые без труда вычислялись. Я просто суммировал 2 произвольные строки. В прямой матрице также делал эту операцию (и не делал тоже), при перемножении прямой и обратной матриц единичной не получалось.
Может кто знает как решить эту проблему?
Evyn
у меня есть чтото в конспекте похожее , к примеру

2 3 11 5 | 2
1 1 5 2 | 1
2 1 3 2 | -3
1 1 3 1 | -3

и от левой верхней части диагональ к низу
vly67
Цитата(Evyn @ 11.07.2007 23:28) *

у меня есть чтото в конспекте похожее , к примеру

2 3 11 5 | 2
1 1 5 2 | 1
2 1 3 2 | -3
1 1 3 1 | -3

и от левой верхней части диагональ к низу


Не совсем вас понял. Ваша матрица имеет обратную и она легко вычисляется.
Tan
Может есть смысл прикрепить задание? Возможно есть вариант более простого решения.
Гость
Цитата(Tan @ 11.07.2007 17:39) *

Может есть смысл прикрепить задание? Возможно есть вариант более простого решения.


Матрица огромна и задание сюда не войдёт. Я дам вам вот эту матрицу ,у неё таже болезнь - она в прямом решении не имеет обратной матрицы

1 2 3 4
5 6 7 8
9 10 11 1
1 1 1 2
Evyn
Не знаю , говорим ли мы про одно и тоже. У меня пример такой:
{ 2X(1)+3X(2)+11X(3)+5X(4)=2
{ X(1)+X(2)+5X(3)+2X(4)=1
{ 2X(1)+X(2)+3X(3)+2X(4)=-3
{ X(1)+X(2)+3X(3)+4X(4)=-3

Исходя из системы уравнений создается матрица ~

willhunting
Цитата(vly67 @ 11.07.2007 17:55) *

Необходимо решить систему нелинейных уравнений. Я это делаю через метод Ньютона, в процессе вычисляя обратную матрицу.
Я вычисляю обратную матрицу Lu методом, приведением матрицы к верхнетреугольной. На этом месте получается затык потому, что на главной диагонали получаются нули или очень малые значения. Эта матрица имеет решение, но нужны какие-то методы, чтобы обойти этот ступор.
Ранее , на этомфоруме, я встречал совет прибавлять к строке, в которой на главной диагонали образовался ноль, все нижестоящие - это неверный путь. Таким образом не находятся даже обратные матрицы, которые без труда вычислялись. Я просто суммировал 2 произвольные строки. В прямой матрице также делал эту операцию (и не делал тоже), при перемножении прямой и обратной матриц единичной не получалось.
Может кто знает как решить эту проблему?

Метод Гаусса(LU) -- самый плохой метод. Попробуй с выбором главного элемента(NPU). Да методов много, вот запрограммировать их сложнее.
Evyn
Весьма полезный ресурс
http://matclub.ru/lec1/
vly67
ПРоблема в сингулярности матрицы, т.е. система имеет множество решений (детерминант матрицы равен нулю). Пока не найду путей обхода этого. Возможно и есть какие-то выходы , путём добавление в систему уравнений фиктивных переменных , а потом вычисление и основных.
Я вот экпериментировал, посмотрите. что вышло
Есть система уравнеий
x1+ 2*x2 +3*x3 + 4*x4 = 30
5*x1+ 6*x2 +7*x3 + 8*x4 = 70
9*x1+ 10*x2 +11*x3 + 1*x4 = 66
x1+ 1*x2 +1*x3 + 2*x4 = 14

Вектор свободных членов V={30,70,66,14}
матрица D=
1 2 3 4
5 6 7 8
9 10 11 1
1 1 1 2

детерминант det(D) =0,
но система имеет решения при x1=1, x2=2, x3=3, x4=4, а также при
x1=-2, x2=8, x3=0, x4=4, и при многих других.
ПРи введении фиктивного члена x5=1 система приобретает вид
x1+ 2*x2 +3*x3 + 4*x4 +x5= 31
5*x1+ 6*x2 +7*x3 + 8*x4 +x5= 71
9*x1+ 10*x2 +11*x3 + 1*x4 +x5= 67
x1+ 1*x2 +1*x3 + 2*x4 +x5= 15
x2+x5 = 3
Матрица D1=
1 2 3 4 1
5 6 7 8 1
9 10 11 1 1
1 1 1 2 1
0 1 0 0 1
детерминант det(D1) =-88,
и система имеет одно решение при x1=1, x2=2, x3=3, x4=4, x5=1
Но мне нужно работать с огромным массивом чисел, и понять как вводить фиктивную переменную и сколько их нужно для единственного решения - это я не могу пока.

Гость
Цитата(vly67 @ 16.07.2007 14:21) *

ПРоблема в сингулярности матрицы, т.е. система имеет множество решений (детерминант матрицы равен нулю). Пока не найду путей обхода этого. Возможно и есть какие-то выходы , путём добавление в систему уравнений фиктивных переменных , а потом вычисление и основных.
Я вот экпериментировал, посмотрите. что вышло
Есть система уравнеий
x1+ 2*x2 +3*x3 + 4*x4 = 30
5*x1+ 6*x2 +7*x3 + 8*x4 = 70
9*x1+ 10*x2 +11*x3 + 1*x4 = 66
x1+ 1*x2 +1*x3 + 2*x4 = 14

Вектор свободных членов V={30,70,66,14}
матрица D=
1 2 3 4
5 6 7 8
9 10 11 1
1 1 1 2

детерминант det(D) =0,
но система имеет решения при x1=1, x2=2, x3=3, x4=4, а также при
x1=-2, x2=8, x3=0, x4=4, и при многих других.
ПРи введении фиктивного члена x5=1 система приобретает вид
x1+ 2*x2 +3*x3 + 4*x4 +x5= 31
5*x1+ 6*x2 +7*x3 + 8*x4 +x5= 71
9*x1+ 10*x2 +11*x3 + 1*x4 +x5= 67
x1+ 1*x2 +1*x3 + 2*x4 +x5= 15
x2+x5 = 3
Матрица D1=
1 2 3 4 1
5 6 7 8 1
9 10 11 1 1
1 1 1 2 1
0 1 0 0 1
детерминант det(D1) =-88,
и система имеет одно решение при x1=1, x2=2, x3=3, x4=4, x5=1
Но мне нужно работать с огромным массивом чисел, и понять как вводить фиктивную переменную и сколько их нужно для единственного решения - это я не могу пока.

Что-то такое детерминант матрицы ?
Если определитель матрицы равен нулю, то обратной матрицы не существует.
Если система имеет множество решений, то система имеет множество решений. smile.gif С этим ничего не поделаешь. vly67, ты же вроде решаешь методом Ньютона ? Вычисление обратной матрицы есть на форуме. Да сам метод есть у меня. Ты хоть расскажи, что надо сделать, как и каким методом.

vly67
Цитата(Гость @ 17.07.2007 2:04) *

Что-то такое детерминант матрицы ?
Если определитель матрицы равен нулю, то обратной матрицы не существует.
Если система имеет множество решений, то система имеет множество решений. smile.gif С этим ничего не поделаешь. vly67, ты же вроде решаешь методом Ньютона ? Вычисление обратной матрицы есть на форуме. Да сам метод есть у меня. Ты хоть расскажи, что надо сделать, как и каким методом.


Ты вообще мало что понял из того , что я изложил.Если сказать точнее - ты вообще ничего не понял. В общем это пустая трата времени.
willhunting
Цитата(vly67 @ 18.07.2007 12:23) *

Ты вообще мало что понял из того , что я изложил.Если сказать точнее - ты вообще ничего не понял. В общем это пустая трата времени.

Предыдущий пост гостя – мой.
Удачи.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.