2014 dxdy logo

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

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




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

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

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

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

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

Спасибо!

 
 
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение09.09.2011, 13:22 
Вы ничего не сказали про:
1. Область, в которой решается эта задача.
2. Краевые условия.
3. Требуемая аппроксимация.
4. Каков "разброс" $\Delta x_i$?
5. Что известно относительно функции $D(x)$? (В первую очередь, конечно, знак. Во вторую очередь ограниченность, отделенность значений от 0, гладкость и тп).

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

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

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 

(Оффтоп)

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

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

 
 
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение15.09.2011, 19:16 
Цитата:
Это что же выходит, вы полтораста лет порезали на двадцатисекундные интервалы? Тогда нужен метод, весьма устойчивый к ошибкам округления.


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

 
 
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение15.09.2011, 19:58 
Аватара пользователя
А нелинейно преобразовать х нельзя? Чтобы была новая y, равномерно расставленная?
И второе. Вовсе убрать производные по х, рассматривать, как 6 обычных Д.У.

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

(Оффтоп)

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

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

 
 
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение15.09.2011, 20:33 
sup в сообщении #481795 писал(а):
Вы ничего не сказали про:
1. Область, в которой решается эта задача.

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

:appl: :lol1:

 
 
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение16.09.2011, 10:06 
ИСН в сообщении #483372 писал(а):
вот масштабы у людей!
мы тут, понимаешь, возимся, туда-сюда, дай червонец до субботы, запихай скрипт в крон, проблема 2037? - плевать, не доживём; а кто-то о вечности думает :lol:


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

-- 16.09.2011, 11:15 --

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


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

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

 
 
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение17.09.2011, 19:50 
А бывают функции гладкие, но не дважды дифференцируемые?

 
 
 
 Re: Решение ДУ с переменным шагом - подскажите метод пожалуйста
Сообщение19.09.2011, 17:27 
Null в сообщении #483796 писал(а):
А бывают функции гладкие, но не дважды дифференцируемые?

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

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


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