Re: Решение СЛАУ
- From
- Sergei Katkovsky ()
- To
- Maxim Balagansky
- Date
- 2003-01-15T16:16:42Z
- Area
- RU.ALGORITHMS
From: "Sergei Katkovsky" <energoav@dialup.ptt.ru>
Hello, Maxim!
You wrote to Sergej Tarasov on Wed, 15 Jan 2003 08:50:10 +0300:
??>> Дифференциальные уравнения обычно приводят к разряженным симметричным
??>> (как правило хорошо приводящимся к ленточным) системам (конечные
??>> элементы или корнечные разности).
MB> Да и с ленточными не все просто... Если дифур второго порядка, то лента
MB> в пять элементов получится...
Не в пять. Лента будет в 2N+1 элементов для сетки NxM, N < M. Шириной ленты
считается обычно расстояние до самой далекой ненулевой диагонали, даже если
есть и нулевые между ними.
MB> Ну ка, специальный алгоритм для решения таких систем?
Для таких простых систем много методов, например, прямой метод с БПФ, или
итерационный асимптотически оптимальный многосеточный. Они в более
нерегулярных случаях пасуют.
MB> Есть прогонка для 5-ти диагональных матриц, но с ней проблем больше чем
MB> с Гауссом...
С прогонкой? Никаких проблем вообще. Даже самому делать не надо, бери Lapack
и вызывай *GBSV. Да и вручную написать алгоритм несложно. Вот когда матрица
не 5-ти, а 2N+1-диагональная, это уже намного медленней и много памяти будет
жрать.
MB> А если краевое условие, даже для дифура 1-го порядка, достаточно
MB> сложное,например, содержащее вторые производные, то и прогонкой его не
MB> решишь, вот так то...
MB> Я, например, о Гауссе для систем более чем 10х10 забыл с того момента,
MB> когда у нас прошли лабораторные работы по матрице Гильберта...
Ну, положим, матрица Гильберта сама по себе очень плохо обусловлена, так что
чем бы ты ее не решал, точность будет плохой. Хотя, конечно, хуже всегда
можно сделать. Но даже если ты SVD использовать будешь, оно тебе мало
поможет.
Сергей Катковский
(Отвечайте на kots сабака mail точка ru)
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)