2014 dxdy logo

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

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



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


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

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

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

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

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



Начать новую тему Ответить на тему
 
 Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение01.12.2013, 12:46 


15/05/10
20
Дана система диф. уравнений:

$c_1 ' = (-k_3 c_1 (1 - x_1 - x_2 - x_3 - x_4) + k_3 x_3) \cdot L / N + (c_1 ^ {0} - c_1) \cdot V / N$

$c_2 ' = (-k_1 c_2 (1 - x_1 - x_2 - x_3 - x_4) + k_{-1} x_1 - k_2 c_2 (1 - x_1 - x_2 - x_3 - x_4) ^ {2} + k_{-2} x_2 ^ 2) \cdot L / N + (c_2 ^ {0} - c_2) \cdot V / N$

$c_3 ' = k_5 x_1 x_4 L / N + (c_3^0 - c_3) V / N$

$c_4 ' = k_5 x_1 x_4 L / N + (c_4 ^ 0 - c_4) V / N$

$x_1 ' = k_1 c_2 (1 - x_1 - x_2 - x_3 - x_4) - k_{-1} x_1 - k_5 x_1 x_4$

$x_2 ' = 2(k_2 (1 - x_1 - x_2 - x_3 - x_4) ^ 2 c_2 - k_{-2} x_2 ^ 2) - k_4 x_2 x_3$

$x_3 ' = k_3(1- x_1 - x_2 - x_3 - x_4) c_1 - k_3 x_3 - k_4 x_2 x_3$

$x_4 ' = 2 k_4 x_2 x_3 - k_5 x_1 x_4$

$T' = (T^0 - T) V / N + Q k_5 x_1 x_4 / C_P$

Константы $k_{-3}, k_{-2}, k_{-1}, k_{1}, k_{2}, k_{3}, k_{4}, k_{5}$ разных порядков, примерно от $10^{11}$ до $10^{24}$. Поэтому система является довольно жесткой. Пытаюсь решить неявным метом - с целью простоты методом Рунге Кутта 2 порядка (решения данной системы лишь подзадача). Однако результаты неправильные.

Какие методы помимо Рунге Кутта можно использовать для решения подобных систем ?

 Профиль  
                  
 
 Re: Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение01.12.2013, 21:48 


08/03/11
164
На сколько я понимаю, неявный метод не гарантирует "правильного" решения.
Для неявных схем просто возможно использовать больший шаг по сравнению с явными.
Если у вас нет ошибок в самом алгоритме, попробуйте уменьшать шаг интегрирования.
Можете попробовать найти ограничение на шаг интегрирования спектральным методом.
В мануале Mathematica есть, что то про жесткие системы, также там ссылки на какие-то статьи по теме.
http://www.wolfram.com/learningcenter/tutorialcollection/AdvancedNumericalDifferentialEquationSolvingInMathematica/

 Профиль  
                  
 
 Re: Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение01.12.2013, 23:33 
Заслуженный участник


25/02/11
1384
Есть книга Хайрер Э., Ваннер Г. Решение обыкновенных дифференциальных уравнений. Жесткие и дифференциально-алгебраические задачи. Там много чего должно быть. Насколько помню, также прилагаются листинги готовых програм на фортране.

 Профиль  
                  
 
 Re: Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение05.12.2013, 19:34 


15/05/10
20
Vince Diesel в сообщении #795206 писал(а):
Есть книга Хайрер Э., Ваннер Г. Решение обыкновенных дифференциальных уравнений. Жесткие и дифференциально-алгебраические задачи. Там много чего должно быть. Насколько помню, также прилагаются листинги готовых програм на фортране.


Да, спасибо, я это все видел. Я пишу программу сам, а вот метод который все это дело решает не получается.. Или такая вот система.

Могут ли здесь на форуме помочь с программой, если я скину исходный код ?

-- Чт дек 05, 2013 20:35:51 --

sithif в сообщении #795185 писал(а):
На сколько я понимаю, неявный метод не гарантирует "правильного" решения.
Для неявных схем просто возможно использовать больший шаг по сравнению с явными.
Если у вас нет ошибок в самом алгоритме, попробуйте уменьшать шаг интегрирования.
Можете попробовать найти ограничение на шаг интегрирования спектральным методом.
В мануале Mathematica есть, что то про жесткие системы, также там ссылки на какие-то статьи по теме.
http://www.wolfram.com/learningcenter/tutorialcollection/AdvancedNumericalDifferentialEquationSolvingInMathematica/


Использовал разные шаги, при больших например = 1, или = 10, результат уходит в NaN, при маленьких ответ не верен

 Профиль  
                  
 
 Re: Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение06.12.2013, 23:44 


09/08/11
68
Цитата:
Использовал разные шаги, при больших например = 1, или = 10, результат уходит в NaN, при маленьких ответ не верен

Вероятно, сказывается ошибка округления. Попробуйте использовать более длинные представления чисел (например, long double вместо double, или вообще длинную арифметику).

 Профиль  
                  
 
 Re: Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение07.12.2013, 20:09 
Заслуженный участник
Аватара пользователя


15/10/08
7392
Обычно в таких делах подключают вручную вычисленную матрицу Якоби.

 Профиль  
                  
 
 Re: Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение08.12.2013, 12:07 


15/05/10
20
10110111 в сообщении #797161 писал(а):
Цитата:
Использовал разные шаги, при больших например = 1, или = 10, результат уходит в NaN, при маленьких ответ не верен

Вероятно, сказывается ошибка округления. Попробуйте использовать более длинные представления чисел (например, long double вместо double, или вообще длинную арифметику).


Использую Extended вроде как этого хватает, числа переваливают за E+400

-- Вс дек 08, 2013 13:08:52 --

Утундрий в сообщении #797456 писал(а):
Обычно в таких делах подключают вручную вычисленную матрицу Якоби.


Ну все таки мне ее придется считать на каждом шаге , т.е. раз 200. Или вы мне предлагаете вычислить ее вручную, а затем вставить в программу в виде отдельной функции?

 Профиль  
                  
 
 Re: Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение08.12.2013, 14:44 
Заслуженный участник
Аватара пользователя


15/10/08
7392
Antistas в сообщении #797644 писал(а):
вычислить ее вручную, а затем вставить в программу в виде отдельной функции?

Натюрлихъ.

 Профиль  
                  
 
 Re: Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение08.12.2013, 17:52 


15/05/10
20
Утундрий в сообщении #797708 писал(а):
Antistas в сообщении #797644 писал(а):
вычислить ее вручную, а затем вставить в программу в виде отдельной функции?

Натюрлихъ.


Легко сказать:) для метода второго порядка придется только 18 * 18 функций писать:)

 Профиль  
                  
 
 Re: Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение21.06.2014, 17:12 
Заслуженный участник


15/05/05
3328
USA
Antistas в сообщении #794889 писал(а):
Какие методы помимо Рунге Кутта можно использовать для решения подобных систем ?
Метод Адамса.

 Профиль  
                  
 
 Re: Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение08.08.2014, 07:35 


02/04/07
29
Я использую метод Розенброка с действительными или комплексными коэффициентами. С комплексными лучше, но считает существенно дольше.

 Профиль  
                  
 
 Re: Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение08.08.2014, 09:24 
Заслуженный участник
Аватара пользователя


01/08/06
2009
Уфа
Метод Гира уже советовали?

 Профиль  
                  
 
 Re: Неявный метод Рунге Кутта для решения жесткой системы ДУ
Сообщение21.01.2016, 17:43 


26/09/12
81
А напишите константы в численном виде, можно попробывать сравнить результаты (мои и ваши).

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

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



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

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


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

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