2014 dxdy logo

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

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




 
 Выбор метода для решения жесткой системы ОДУ
Сообщение05.04.2010, 21:14 
Добрый вечер/день!
Столкнулась необходимостью решить численно жесткую систему ОДУ. Система нелинейная, 3 уравнения. Начала считать Рунге-Кутта(4, явный). Но безуспешно. Выяснилось, что необходимо полуявным методом (то есть в табл.Бутчера гл.диагональ не нулевая) решать. Скачав и прочитав много литературы, ясности нет. А именно,
1 необходимы ли условия на шаг или уже нет
2 порядок уже 2-й
3 эффективен ли? может быть какой-то другой лучше? (метод Гира, Нордикса ...)
4 какие еще секреты для жестких систем?

Заранее благодарна всем желающим помочь! :-)

 
 
 
 Re: Выбор метода для решения жесткой системы ОДУ
Сообщение05.04.2010, 21:25 
На мой взгляд, базовая книга по теме - Хайрер Э., Ваннер Г. Решение обыкновенных дифференциальных уравнений. Жесткие и дифференциально-алгебраические задачи

 
 
 
 Re: Выбор метода для решения жесткой системы ОДУ
Сообщение05.04.2010, 21:35 
В свое время для решения жестких систем ОДУ, возникающих в процессе моделирования химической кинетики, пользовался фортрановской программой LSODE (Livermore Solver for Ordinary Differential Equations).
Вариант LSODA хорошо подходит как для жестких, так и для нежестких систем, т.к. автоматически переключается с метода Адамса на метод Гира.

Взять можно здесь: http://www.netlib.org/odepack/

 
 
 
 Re: Выбор метода для решения жесткой системы ОДУ
Сообщение05.04.2010, 21:40 
LSODE (Livermore Solver for Ordinary Differential Equations) - есть ли аналог для VStudio C++ ?
Хайрера скачала в процессе изучения!)

 
 
 
 Re: Выбор метода для решения жесткой системы ОДУ
Сообщение05.04.2010, 21:47 
Irina_DS в сообщении #306667 писал(а):
LSODE (Livermore Solver for Ordinary Differential Equations) - есть ли аналог для VStudio C++ ?
Про реализацию на C++ ничего не знаю. Но можно построить фортрановскую DLL и подключить ее к программе на C++ без особых проблем. Собственно, я так и делал, но тогда существовал еще микрософтовский фортран. Ну а сейчас для этой цели вполне можно использовать фриварный Watcom (http://www.openwatcom.org/index.php/Main_Page)

 
 
 
 Re: Выбор метода для решения жесткой системы ОДУ
Сообщение05.04.2010, 22:06 
Watcom - это безусловно прекрасно! Но за отсутствием фривольного количества времени и небольшого опыта в таких делах, изучу это после deadline :-)
В LSODE используется метод дифференцирования назад. Где о нем написано компактно и полно?)
А Рунге-Кутта уже не актуален?

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


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