2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

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

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Методы численного решения СЛАУ (большие матрицы)
Сообщение24.12.2008, 23:16 


03/12/08
111
Существует ли алгоритм выбора метода решения СЛАУ?

Проблема такая, попробовал метод простых итераций --- очень долго сходится (порядка 1000 итераций). Попробовал проанализировать матрицу (в ходе численных экспериментов) : заполнена полностью, симметрии не вижу, норма больше единицы (в ходе расчета процесса меняется от 1.1 до 4), кстати, с числом обусловленности вроде ничего (от 2 до 4).

И задумался, на какие методы смотреть: прямой, итерационный, вариационный? Какой конкретно выбрать? Решать придется системы от 200X200 до 10000X10000.

 Профиль  
                  
 
 Re: Решить СЛАУ
Сообщение25.12.2008, 23:42 


03/12/08
111
хе, не думал что масштабирование так влияет.

Решаю систему x=Ax+f, попробовал поступить так ax=aAx+af, затем x=x-ax+aAx+af и при a>0.1 и a<0.9 наблюдаю резкое уменьшение числа итераций. Например, при 200X200 вместо 1133 итерации при a=1; 24 итерации при a=0.5. Где бы почитать (на уровне человека знающего "вышку") об оптимальном подборе коэф. масштабирования a или способа минимизации спектрального радиуса матрицы?

Правда норма всеравно больше 1. Это не страшно?

 Профиль  
                  
 
 
Сообщение26.12.2008, 00:03 
Аватара пользователя


27/10/08
222
Что такое норма? В чем заключаются прямой, итерационный и вариационный методы и в чем их основные отличия? Итерация --- это то же самое, что и преобразование матрицы (умножение строки на число, прибавление одной строки к другой)?
Я знаю только метод приведения СЛАУ к трапециевидной форме? при котором число преобразований равно
$$(n-1)+(n-2)+(n-3)+\ldots 1=\frac{n(n-1)}{2}$$
Как называется такой метод?

 Профиль  
                  
 
 
Сообщение26.12.2008, 10:43 


11/07/06
201
d.dragon.n76 в сообщении #171391 писал(а):
Решаю систему x=Ax+f, попробовал поступить так ax=aAx+af, затем x=x-ax+aAx+af и при a>0.1 и a<0.9 наблюдаю резкое уменьшение числа итераций. Например, при 200X200 вместо 1133 итерации при a=1; 24 итерации при a=0.5. Где бы почитать (на уровне человека знающего "вышку") об оптимальном подборе коэф. масштабирования a или способа минимизации спектрального радиуса матрицы?


Это не масштабирование. Это называется SOR (successive over relaxation). Немного об этом
есть в Голуб, Ван Лоун "Матричные вычисления". Но если я не ошибаюсь, то за полным
описанием верхних релаксаций он отсылает к какой-то книге Янга по итерационным методам.
Точнее сейчас не могу сказать, ибо нет под рукой.

 Профиль  
                  
 
 
Сообщение26.12.2008, 11:20 


03/12/08
111
1. К сожалению Голуб, Ван Лоун не смог найти в сети и скачать

2. скачал книгу Петров И.Б., Лобанов А.И. Лекции по вычислительной математики. В ней во второй лекции говорится об итерационных методах, в частности на стр. 56 о методе минимальных невязок. Причем никаких ограничений на исходную СЛАУ не накладывается.

Я правильно понимаю. что метод минимальных невязок не накладывает никаких ограничений на матрицу A в уравнении Ax=b, кроме может быть того что она должна быть невырождена? Как быстро проверить что матрица невырожденна?

 Профиль  
                  
 
 
Сообщение26.12.2008, 14:32 


11/07/06
201
d.dragon.n76 в сообщении #171486 писал(а):
1. К сожалению Голуб, Ван Лоун не смог найти в сети и скачать


На английском очень легко найти. http://www.poiskknig.ru/cgi-bin/poisk.cgi?lang=ru&st=Golub&network=1 - вторая в списке Golub G.H. van Loan C.F. Matrix Computations.

d.dragon.n76 в сообщении #171486 писал(а):
Я правильно понимаю. что метод минимальных невязок не накладывает никаких ограничений на матрицу A


Не накладывает. А вот сходиться будет не всегда. Это зависит от подбора итерационных параметров.

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

 Профиль  
                  
 
 
Сообщение02.01.2009, 19:59 


02/01/09
9
Методом Гаусса СЛАУ 200х200 решаются в "лёт" (точность максимально возможная, т.к. метод точный), а вот большая СЛАУ размером 10000х10000 решается очень долго на Athlon'е 64 3500+ заняло 4:33:12 часа (для расчетов использовал свою программу в которой реализован метод Гаусса включающий поиск и размещение на главной диагонали максимального элемента матрицы на каждом из N этапов расчета с дополнительной функцией итерационного уточнения корней по тому же методу). Очень часто встречаются ссылки на метод Ланцоша, его программная реализация (как я видел общий алгоритм) не сложна, можно попробовать написать самому или использовать возможности математических программ.

 Профиль  
                  
 
 Re: Методы численного решения СЛАУ (большие матрицы)
Сообщение15.04.2010, 22:59 
Аватара пользователя


04/02/09
12
d.dragon.n76 в сообщении #171010 писал(а):
Существует ли алгоритм выбора метода решения СЛАУ?

Проблема такая, попробовал метод простых итераций --- очень долго сходится (порядка 1000 итераций). Попробовал проанализировать матрицу (в ходе численных экспериментов) : заполнена полностью, симметрии не вижу, норма больше единицы (в ходе расчета процесса меняется от 1.1 до 4), кстати, с числом обусловленности вроде ничего (от 2 до 4).

И задумался, на какие методы смотреть: прямой, итерационный, вариационный? Какой конкретно выбрать? Решать придется системы от 200X200 до 10000X10000.



Такое ощущение, что не существует пакетов программирования для работы с матрицами...
Матлаб запросто такие системы решит хоть матричным хоть Гауссовым методом...
Команды в Матлабе:
X = A\B; и X = rref([A B]); для метода Гаусса,
где A - матрица коэффициентов, а В - столбец свободных членов.

 Профиль  
                  
 
 Re: Методы численного решения СЛАУ (большие матрицы)
Сообщение16.04.2010, 11:25 
Заслуженный участник


19/07/08
1266
yasya17 в сообщении #310085 писал(а):
Такое ощущение, что не существует пакетов программирования для работы с матрицами...

Вот и выросло новое поколение... Про Lapack хоть раз слышали? Там правда никаких окошек... :lol:

 Профиль  
                  
 
 Re: Методы численного решения СЛАУ (большие матрицы)
Сообщение21.04.2010, 11:58 


22/09/09
275
d.dragon.n76 в сообщении #171010 писал(а):
Существует ли алгоритм выбора метода решения СЛАУ?

Проблема такая, попробовал метод простых итераций --- очень долго сходится (порядка 1000 итераций). Попробовал проанализировать матрицу (в ходе численных экспериментов) : заполнена полностью, симметрии не вижу, норма больше единицы (в ходе расчета процесса меняется от 1.1 до 4), кстати, с числом обусловленности вроде ничего (от 2 до 4).

И задумался, на какие методы смотреть: прямой, итерационный, вариационный? Какой конкретно выбрать? Решать придется системы от 200X200 до 10000X10000.

Если спектр собственных значений матрицы действительный и определенный, то весьма эффективен метод Чебышевских ускорений итераций с оптимальным набором параметров. Ваши задачи не очень большие, в физике реакторов Чеб.итер. решают и 100000х100000.

 Профиль  
                  
 
 Re: Методы численного решения СЛАУ (большие матрицы)
Сообщение21.04.2010, 22:45 
Заслуженный участник
Аватара пользователя


30/01/09
6681
Численное решение таких больших плотно заполненных систем - задача сложная. Слышал о таком методе (возможно предложил Н.Шор). Систему линейных уравнений заменяют задачей чебышевского приближения. Т.е. минимизируют максимальную невязку. Получается задача негладкой оптимизации. К ней можно применить метод субградиента. Подробности поищите в книге Поляка Б.Т. Введение в оптимизацию. Либо в какой-либо книге Шора Н. Попробую завтра на работе в Матлабе проэкспериментировать.

 Профиль  
                  
 
 Re: Методы численного решения СЛАУ (большие матрицы)
Сообщение22.04.2010, 18:24 
Аватара пользователя


28/06/08
1706
В матлабе 10000х10000 решаются просто
методом LU декомпозиции, если матрица разряженная начиная с версии 6 используется новый алгорит толи с Lapack толи еще от куда, (matlab это всеголишь интерфейс к подобным алгоритмам написаным на C)

Аx=b
вот например LU декомпозиции для плотной матрицы матрицы А (для sparse есть другой)
[L,U,P]=lu(A,т)
с перестоновкой строк/столбцов так чтобы избежать накопления ошибок
(t ∈ [0,1] - pivoting treshold for permutation)

дальше просто
PA=LU
PAx=Pb
LUx=Pb
c=Pb
y=L\c
x=U\y


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

 Профиль  
                  
 
 Re: Методы численного решения СЛАУ (большие матрицы)
Сообщение22.04.2010, 19:49 
Заслуженный участник
Аватара пользователя


30/01/09
6681
Прошу моё предыдущее сообщение о методе субградиента не принимать во внимание. Эксперименты показали его медленную работу. Зато в Матлабе посредством косой черты легко решались системы до 4000*4000 (30 секунд). Дальше начинались тормоза, вызванные нехваткой памяти. Если решать систему 10000*10000, то надо памяти гигабайта полтора. Плохо показал себя итерационный метод бисопряжённых градиентов (Ланцоша?).

 Профиль  
                  
 
 Re: Методы численного решения СЛАУ (большие матрицы)
Сообщение22.04.2010, 21:48 
Заслуженный участник


19/07/08
1266
мат-ламер в сообщении #312227 писал(а):
Плохо показал себя итерационный метод бисопряжённых градиентов (Ланцоша?).

Вы просто не умеете их готовить (с).
Эти два метода имеют между собой мало общего. Предназначены для разного, используются в разных случаях.

И пару слов о общей теории "крупными мазками". Для плотных (я надеюсь, правильно перевёл dense) матриц как правило прямые методы работают лучше. Потому что один фиг $n^2$. Итерационные начинают сильно выигрывать на сильно разреженных матрицах, когда прямые методы тривиально перестают работать.
Поэтому пожалуйста уточняйте что за матрицы вы решали. Нет алгоритмов, которые одинаково хорошо решают все задачи.

 Профиль  
                  
 
 Re: Методы численного решения СЛАУ (большие матрицы)
Сообщение22.04.2010, 22:51 


22/09/09
275
AlexNew в сообщении #312196 писал(а):
я так понимяю все разговоры о спектрах и итерациях имеют отношения непосредственно к поиску обратной матрицы ?
LU декомпозиция как раз позволяет этого избежать.

Если посмотреть в ретроспективе эту проблему то увидим, что именно стремление избежать матричных операций и продвинуло итерационные методы. Если еще вспомним, что в начале 70-х самая мощная отечественная ЭВМ - БЭСМ-6 имела всего 32768 машинных слов оперативной памяти, то становится очевидным невозможность (да еще и при той надежности электроники) решать важные и сложные задачи. Например, рассчитывать реактор АЭС (т.е. решать уравнение диффузии нейтронов). Даже 3-х слойный (устойчивый) метод Чебышевских ускорений накладывал жесткие ограничения на расчеты из-за памяти ЭВМ. Прорыв был сделан, когда проф. В.И. Лебедев в ИАЭ им. И.В. Курчатова разработал устойчивый 2-х слойный метод ускорений итераций с Чебышевским набором параметров. При этом СССР опередил другие страны в построении программ расчета водоохлаждаемых реакторов, хотя американские ЭВМ существенно превосходили советские.
Детали таких методов хорошо описаны в книге:
"Г. И. Марчук, В. И. Лебедев. Численные методы в теории переноса нейтронов. - М.: Атомиздат, 1971. "
К сожалению, сейчас многие уповают на вычислительную мощь и огромную память компьютеров и не ищут таких же (как нашел Лебедев), элегантных решений трудных задач :lol:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group