2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Привести слау к сходящейся в методе простых итераций
Сообщение05.04.2011, 20:07 
В общем мне нужно расписать и запрограммировать мпи применительно к слау. С этим проблем не возникло,как и с несколькими вариациями метода. Но вот в условии сходимости к этому методу сказано, что норма матрицы должна быть <1, чтобы диагональные элементы преобладали над остальными. Поискав по интернету, не нашёл как можно это сделать. Кроме как аналитически, индивидуально для каждой слау.
Немного подумав, придумал некую ересь, которая возможно поможет в этом, но это скорее "перебираем пока либо не найдём, либо не надоест", и то, бредом мне кажется))
Скажите, есть ли такой метод, который можно програмно описать, чтобы привести систему к сходящейся? :?:

 
 
 
 
Сообщение06.04.2011, 11:31 
Аватара пользователя
Попробуйте умножить обе части уравнения слева на матрицу $\dfrac{2A^T}{||A^TA||}$, где A — исходная матрица СЛАУ, T означает транспонирование, а матричную норму можно взять любую. Как-то так. Диагонального преобладания не гарантирую, но сходимость должна появиться, ну, если A хорошая :-)

 
 
 
 Re:
Сообщение06.04.2011, 18:16 
worm2 в сообщении #431747 писал(а):
Попробуйте умножить обе части уравнения слева на матрицу $\dfrac{2A^T}{||A^TA||}$, где A — исходная матрица СЛАУ, T означает транспонирование, а матричную норму можно взять любую. Как-то так. Диагонального преобладания не гарантирую, но сходимость должна появиться, ну, если A хорошая :-)

Огромное спасибо! как раз то что нужно, слау отлично привелась и посчиталась.

 
 
 
 Re: Привести слау к сходящейся в методе простых итераций
Сообщение06.04.2011, 23:59 
хотя да, некоторые системы не может решить, выдаёт большую ошибку) осталось прикинуть что за такие системы плохие))

 
 
 
 
Сообщение07.04.2011, 08:37 
Заведомо не будет сходиться, если норма матрицы -- евклидова (т.е. равна квадрату наибольшего сингулярного числа). Чтобы этого избежать, можно чуть-чуть уменьшить двойку; впрочем, вряд ли Вы использовали именно евклидову норму. В остальных случаях сходиться обязана, только сходимость будет жутко медленной для плохо обусловленных матриц. Собственно, скорость сходимости -- линейная, причём знаменатель геометрической прогрессии отличается от единицы на число, примерно обратное числу обусловленности, и если число обусловленности ну хотя бы порядка сотни (что не такая уж и редкость) -- то сами понимаете.

 
 
 
 Re:
Сообщение07.04.2011, 12:23 
ewert в сообщении #432011 писал(а):
Заведомо не будет сходиться, если норма матрицы -- евклидова (т.е. равна квадрату наибольшего сингулярного числа). Чтобы этого избежать, можно чуть-чуть уменьшить двойку; впрочем, вряд ли Вы использовали именно евклидову норму. В остальных случаях сходиться обязана, только сходимость будет жутко медленной для плохо обусловленных матриц. Собственно, скорость сходимости -- линейная, причём знаменатель геометрической прогрессии отличается от единицы на число, примерно обратное числу обусловленности, и если число обусловленности ну хотя бы порядка сотни (что не такая уж и редкость) -- то сами понимаете.

Да, извиняюсь, всё сходится. Просто брал максимально 1к итераций, ошибка была порядка 2000%, при 50к итераций ошибка стала уже порядка тысячных для "плохой матрицы'). А вот сделал метод релаксаций- после поиска наилучшего коэф. понадобилось всего 1к .

 
 
 
 
Сообщение07.04.2011, 12:46 
Аватара пользователя
Кстати, зачем я двойку написал? :-)
2 — это да, граница теоретической сходимости. Но зачем нам граница? Можно поменьше взять, единицу, например.
Хотя если у Вас метод релаксаций готов, то это уже неактуально.

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group