Проблема с вычислением обратной матрицы, Как бороться в нулями на главной диагонали? |
1. Заголовок темы должен быть информативным. В противном случае тема закрывается и удаляется ...
2. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
3. Одна тема - один вопрос (задача)
4. Спрашивайте и отвечайте четко и по существу!!!
Проблема с вычислением обратной матрицы, Как бороться в нулями на главной диагонали? |
vly67 |
11.07.2007 16:55
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
Необходимо решить систему нелинейных уравнений. Я это делаю через метод Ньютона, в процессе вычисляя обратную матрицу.
Я вычисляю обратную матрицу Lu методом, приведением матрицы к верхнетреугольной. На этом месте получается затык потому, что на главной диагонали получаются нули или очень малые значения. Эта матрица имеет решение, но нужны какие-то методы, чтобы обойти этот ступор. Ранее , на этомфоруме, я встречал совет прибавлять к строке, в которой на главной диагонали образовался ноль, все нижестоящие - это неверный путь. Таким образом не находятся даже обратные матрицы, которые без труда вычислялись. Я просто суммировал 2 произвольные строки. В прямой матрице также делал эту операцию (и не делал тоже), при перемножении прямой и обратной матриц единичной не получалось. Может кто знает как решить эту проблему? |
Evyn |
11.07.2007 17:28
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 20 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
у меня есть чтото в конспекте похожее , к примеру
2 3 11 5 | 2 1 1 5 2 | 1 2 1 3 2 | -3 1 1 3 1 | -3 и от левой верхней части диагональ к низу |
vly67 |
11.07.2007 17:35
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
|
Tan |
11.07.2007 17:39
Сообщение
#4
|
Профи Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: 10 |
Может есть смысл прикрепить задание? Возможно есть вариант более простого решения.
-------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
Гость |
11.07.2007 17:46
Сообщение
#5
|
Гость |
|
Evyn |
12.07.2007 13:37
Сообщение
#6
|
Новичок Группа: Пользователи Сообщений: 20 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Не знаю , говорим ли мы про одно и тоже. У меня пример такой:
{ 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 |
13.07.2007 10:38
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 52 Пол: Мужской Репутация: 0 |
Необходимо решить систему нелинейных уравнений. Я это делаю через метод Ньютона, в процессе вычисляя обратную матрицу. Я вычисляю обратную матрицу Lu методом, приведением матрицы к верхнетреугольной. На этом месте получается затык потому, что на главной диагонали получаются нули или очень малые значения. Эта матрица имеет решение, но нужны какие-то методы, чтобы обойти этот ступор. Ранее , на этомфоруме, я встречал совет прибавлять к строке, в которой на главной диагонали образовался ноль, все нижестоящие - это неверный путь. Таким образом не находятся даже обратные матрицы, которые без труда вычислялись. Я просто суммировал 2 произвольные строки. В прямой матрице также делал эту операцию (и не делал тоже), при перемножении прямой и обратной матриц единичной не получалось. Может кто знает как решить эту проблему? Метод Гаусса(LU) -- самый плохой метод. Попробуй с выбором главного элемента(NPU). Да методов много, вот запрограммировать их сложнее. |
Evyn |
15.07.2007 9:40
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 20 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Весьма полезный ресурс
http://matclub.ru/lec1/ |
vly67 |
16.07.2007 14:21
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
ПРоблема в сингулярности матрицы, т.е. система имеет множество решений (детерминант матрицы равен нулю). Пока не найду путей обхода этого. Возможно и есть какие-то выходы , путём добавление в систему уравнений фиктивных переменных , а потом вычисление и основных.
Я вот экпериментировал, посмотрите. что вышло Есть система уравнеий 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 Но мне нужно работать с огромным массивом чисел, и понять как вводить фиктивную переменную и сколько их нужно для единственного решения - это я не могу пока. |
Гость |
16.07.2007 20:04
Сообщение
#10
|
Гость |
ПРоблема в сингулярности матрицы, т.е. система имеет множество решений (детерминант матрицы равен нулю). Пока не найду путей обхода этого. Возможно и есть какие-то выходы , путём добавление в систему уравнений фиктивных переменных , а потом вычисление и основных. Я вот экпериментировал, посмотрите. что вышло Есть система уравнеий 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, ты же вроде решаешь методом Ньютона ? Вычисление обратной матрицы есть на форуме. Да сам метод есть у меня. Ты хоть расскажи, что надо сделать, как и каким методом. |
vly67 |
18.07.2007 11:23
Сообщение
#11
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
Что-то такое детерминант матрицы ? Если определитель матрицы равен нулю, то обратной матрицы не существует. Если система имеет множество решений, то система имеет множество решений. С этим ничего не поделаешь. vly67, ты же вроде решаешь методом Ньютона ? Вычисление обратной матрицы есть на форуме. Да сам метод есть у меня. Ты хоть расскажи, что надо сделать, как и каким методом. Ты вообще мало что понял из того , что я изложил.Если сказать точнее - ты вообще ничего не понял. В общем это пустая трата времени. |
willhunting |
18.07.2007 11:50
Сообщение
#12
|
Пионер Группа: Пользователи Сообщений: 52 Пол: Мужской Репутация: 0 |
|
Текстовая версия | 29.04.2024 9:45 |