2014 dxdy logo

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

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


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


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

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

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

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

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



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


09/09/11
7
имеется параболическое уравнение диффузии

$du/dt = D(x) \cdot d^2u/dx^2$

данные по вектору $x$ заданы с переменным шагом, то есть $\Delta x_i \ne  \Delta x_j$

требуется написать быстрый и устойчивый метод интегрирования данного уравнение (на фортране)
- метод Эйлера численно не устойчив из за переменного шага
- метод Кранка-Николсона устойчив, но требует больших вычислительных ресурсов

подскажите пожалуйста какими еще методами можно решить данное уравнение, которые бы обеспечили численную устойчивость при переменном шаге и скорость вычислений.
может есть какие ссылки на статьи и коды по данному предмету?

Спасибо!

 Профиль  
                  
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение09.09.2011, 13:22 
Заслуженный участник


22/11/10
1184
Вы ничего не сказали про:
1. Область, в которой решается эта задача.
2. Краевые условия.
3. Требуемая аппроксимация.
4. Каков "разброс" $\Delta x_i$?
5. Что известно относительно функции $D(x)$? (В первую очередь, конечно, знак. Во вторую очередь ограниченность, отделенность значений от 0, гладкость и тп).

На мой взгляд, в простейшем "нормальном" случае должна сработать неявная схема вместе с методом прогонки.

 Профиль  
                  
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение15.09.2011, 09:21 


09/09/11
7
Дополнительные условия

1. Область, в которой решается эта задача.
задача из области агро-экологии, расчет диффузии нитратов в почве на период более сотни лет
имеется время $t$ с шагом $dt = 2,5\cdot10^{-4}$(дня)
имеется шесть слоев почвы $x_i$ толщиной $x_1 \ne x_2 \ne x_3 \ne x_4 \ne x_5 \ne x_6 $ соответственно
для каждого слоя $i$ на каждом шаге времени $t$ известна концентрация $u_1, u_2, u_3, u_4, u_5, u_6$ нитратов
диффузия нитратов в почве рассчитывается по сложной формуле, которая задана, диффузия зависит от слоя почвы, температуры и влажности в данный момент времени, т. е. $D = f(x, T(t), \Theta(t))$, где $ x \in \{x_i\}, i=1,6$

2. Краевые условия.
температура $T(t)$, влажность $\Theta(t)$, концентрация для каждого слоя $u_i(t)$, ширина каждого слоя $x_i = \operatorname{const}$

3. Требуемая аппроксимация.
точность аппрокимации ограничена шагом времени $dt = 2,5\cdot10^{-4}$(дня), фиксированным дискретным набором слоев почвы, и константой концентрации для каждого слоя

4. Каков "разброс" ?
концентрация функция не убывающая и не возрастающая, вполне могут быть пики в средних слоях почтвы, слои почвы от 20 мм до 300 мм, обычно $x_{i} < x_{i+1}$

5. Что известно относительно функции ? (В первую очередь, конечно, знак. Во вторую очередь ограниченность, отделенность значений от 0, гладкость и тп).
диффузия $D = f(x, T(t), \Theta(t))$ - функция строго положительно определенная, можно предположить гладкость функции, но учитывая дискретность значений слоев почвы это не так.

Требуется
рассчитать изменения концентрации нитратов во времени на границах между различными слоями почвы
$du/dt(x_i|x_{i+1})$ согласно уравнению диффузии

 Профиль  
                  
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение15.09.2011, 14:17 
Заслуженный участник


09/09/10
3729

(Оффтоп)

coolweather в сообщении #483228 писал(а):
расчет диффузии нитратов в почве на период более сотни лет
имеется время $t$ с шагом $dt = 2,5\cdot 10^{-4}$ (дня)

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

 Профиль  
                  
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение15.09.2011, 19:16 


09/09/11
7
Цитата:
Это что же выходит, вы полтораста лет порезали на двадцатисекундные интервалы? Тогда нужен метод, весьма устойчивый к ошибкам округления.


в том то все и дело, делается прогноз на 150 лет, замеры почвы каждые 20 сек примерно
если считать полу-явным Кранком-Николсоном то вычислительных мощностей не хватает
если считать Эйлером, он неустойчив из-за дискретных значений

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


11/03/08
9970
Москва
А нелинейно преобразовать х нельзя? Чтобы была новая y, равномерно расставленная?
И второе. Вовсе убрать производные по х, рассматривать, как 6 обычных Д.У.

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


18/05/06
13438
с Территории

(Оффтоп)

coolweather в сообщении #483360 писал(а):
делается прогноз на 150 лет, замеры почвы каждые 20 сек примерно

вот масштабы у людей!
мы тут, понимаешь, возимся, туда-сюда, дай червонец до субботы, запихай скрипт в крон, проблема 2037? - плевать, не доживём; а кто-то о вечности думает :lol:

 Профиль  
                  
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение15.09.2011, 20:33 


10/02/11
6786
sup в сообщении #481795 писал(а):
Вы ничего не сказали про:
1. Область, в которой решается эта задача.

coolweather в сообщении #483228 писал(а):
Область, в которой решается эта задача.
задача из области агро-экологии

:appl: :lol1:

 Профиль  
                  
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение16.09.2011, 10:06 


09/09/11
7
ИСН в сообщении #483372 писал(а):
вот масштабы у людей!
мы тут, понимаешь, возимся, туда-сюда, дай червонец до субботы, запихай скрипт в крон, проблема 2037? - плевать, не доживём; а кто-то о вечности думает :lol:


но ведь это как раз расчеты про доживем или не доживем, в связи с парниковым эффектом, как климат поменяется, как почва и растительность, что с животными, насекомыми и бактериями станет. и 150 лет это только начало, чтобы модель утвердить, потом расчеты и на более долгие сроки делать будем, причем все делается с точностью до 8км2 и для всей Земли.

-- 16.09.2011, 11:15 --

Евгений Машеров в сообщении #483369 писал(а):
А нелинейно преобразовать х нельзя? Чтобы была новая y, равномерно расставленная?
И второе. Вовсе убрать производные по х, рассматривать, как 6 обычных Д.У.


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

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

 Профиль  
                  
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение17.09.2011, 19:50 
Заслуженный участник


12/08/10
1680
А бывают функции гладкие, но не дважды дифференцируемые?

 Профиль  
                  
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение19.09.2011, 17:27 


09/09/11
7
Null в сообщении #483796 писал(а):
А бывают функции гладкие, но не дважды дифференцируемые?

зависит от порядка гладкости

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

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



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

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


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

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