2014 dxdy logo

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

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


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


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

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

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

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

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



Начать новую тему Ответить на тему
 
 Численное решение уравнения параболического типа
Сообщение27.05.2010, 18:42 
Аватара пользователя


12/06/06
22
Добрый день!

Будьте так добры, подскажите, пожалуйста, правильный ли метод решения выбран. (Меня гложет червячок сомнения, да и получающиеся графики смущают).

Уравнение:
$
 \frac{\partial u}{\partial t} + \mu_n(\frac{\partial \phi}{\partial x} \cdot \frac{\partial u}{\partial x} + \frac{\partial \phi}{\partial y} \cdot \frac{\partial u}{\partial y}) - D_n \cdot \Delta u + \frac{u}{\tau_n} = \mu \cdot \nabla \phi \cdot \nabla \phi_k$

$ \mu_n, D_n, \tau_n $- константы
$\phi(x, y)$ - функция, заданная в искомой области

Мне нужно было найти и нарисовать u через определенные промежутки времени.
Использовался метод дробных шагов, описанный у Бахвалова и Ко (стр.581). Но он предназначен для решения параболических уравнений.
(Это немного смущает, у меня не точно параболическое, а ещё с первой частной производной и самой функцией).

Первоначальное уравнение было заменено соотношениями:
$
 \frac{u^{n+ \frac{1}{2}}_{ij} - u^n_{ij}}{2 \triangle t} + \mu_n(\frac{\partial \phi}{\partial x} \cdot \frac{u^{n+\frac{1}{2}}_{i+1j} - u^{n+\frac{1}{2}}_{ij}}{\triangle x}) - D_n \cdot (\frac{u^{n+\frac{1}{2}}_{i+1j} - 2u^{n+\frac{1}{2}}_{ij} + u^{n+\frac{1}{2}}_{i-1j}}{\triangle x^2}) = - \frac{u^{n+\frac{1}{2}}}{\tau_n}$

$
 \frac{u^{n+1}_{ij} - u^{n+\frac{1}{2}}_{ij}}{ 2 \triangle t} + \mu_n(\frac{\partial \phi}{\partial y} \cdot \frac{u^{n+1}_{ij+1} - u^{n+1}_{ij}}{\triangle y}) - D_n \cdot (\frac{u^{n+1}_{ij+1} - 2u^{n+1}_{ij} + u^{n+1}_{ij-1}}{\triangle y^2}) = \mu \cdot \nabla \phi \cdot \nabla \phi_k$

И затем последовательно они решаются и результат первого подставляется во второе.
И так каждую итерацию внешнего цикла. Внешний цикл по времени.

Имею ли я право таким методом решать задачу?
У меня возникли сомнения, когда, воспользовавшись методом определения устойчивости фон Неймана, получилось, что
метод устойчив, при большом dx и dy, а, если увеличивать точность - всё будет расходиться.

Посоветуйте, пожалуйста, очень нужен взгляд со стороны!

Изначально известно, что u(x,y) = 0, и на определенных границах области $\frac{\partial u}{\partial x} = 0$, а на других $\frac{\partial u}{\partial y} = 0$ .

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение27.05.2010, 20:10 
Заслуженный участник


09/01/06
800
А какое у Вас определение параболических уравнений? :)

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение27.05.2010, 20:14 
Аватара пользователя


12/06/06
22
$\frac{\partial u}{\partial t} = \Delta u + f(x, t)$

Что, у меня уже крыша едет? Это не параболическое с несколькими пространственными переменными? :cry: :shock:

Имеется в виду $\Delta u = \frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2}$

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение27.05.2010, 20:37 
Заслуженный участник


09/01/06
800
Pete[r], уравнение теплопроводности, которое Вы написали, - частный случай параболического уравнения.

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение28.05.2010, 10:20 
Аватара пользователя


12/06/06
22
Спасибо, Кэп :) (К.О.).
Это понятно, только у меня уравнение связано с распространением электрического заряда ;). Оно аналогично уравнению теплопроводности.

А проблема-то осталась...

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение28.05.2010, 10:44 
Заслуженный участник
Аватара пользователя


23/08/07
5494
Нов-ск
Pete[r] в сообщении #324596 писал(а):
Мне нужно было найти и нарисовать u через определенные промежутки времени.
Это учебная задача? Решать её требуется определённым методом?

${\partial \phi}/{\partial x}$ и ${\partial \phi}/{\partial y}$ эти производные имеют определённый знак?

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение28.05.2010, 11:34 
Аватара пользователя


12/06/06
22
TOTAL в сообщении #324801 писал(а):
Это учебная задача? Решать её требуется определённым методом?

${\partial \phi}/{\partial x}$ и ${\partial \phi}/{\partial y}$ эти производные имеют определённый знак?


Да, но решать её можно как угодно, главное - решить правильно.
${\partial \phi}/{\partial x}$ везде отрицательный, а
${\partial \phi}/{\partial y}$ - в половине области отрицательный, в другой половине - положительный.

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение28.05.2010, 11:56 


13/11/09
166
Посмотрите у Самарского. Строится для такого типа уравнений метод 2 порядка по пространству. да ещё и монотонные... Там полуразности-полусуммы коэффициетов при первых производных идут (по потоку/ против потока).

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение28.05.2010, 12:05 
Заслуженный участник
Аватара пользователя


23/08/07
5494
Нов-ск
$
 \frac{u^{n+ \frac{1}{2}}_{ij} - u^n_{ij}}{2 \triangle t} + \mu_n(\frac{\partial \phi}{\partial x} \cdot \frac{u^{n+\frac{1}{2}}_{i+1j} - u^{n+\frac{1}{2}}_{ij}}{\triangle x}) - D_n \cdot (\frac{u^{n+\frac{1}{2}}_{i+1j} - 2u^{n+\frac{1}{2}}_{ij} + u^{n+\frac{1}{2}}_{i-1j}}{\triangle x^2}) = - \frac{u^{n+\frac{1}{2}}}{\tau_n}$

$
 \frac{u^{n+1}_{ij} - u^{n+\frac{1}{2}}_{ij}}{ 2 \triangle t} + \mu_n(\frac{\partial \phi}{\partial y} \cdot \frac{u^{n+1}_{ij+1} - u^{n+1}_{ij}}{\triangle y}) - D_n \cdot (\frac{u^{n+1}_{ij+1} - 2u^{n+1}_{ij} + u^{n+1}_{ij-1}}{\triangle y^2}) = \mu \cdot \nabla \phi \cdot \nabla \phi_k$


(1) надо изменить знаменатель у производной по времени
$\frac{u^{n+1}_{ij} - u^{n+\frac{1}{2}}_{ij}}{ \triangle t/2}$

(2) надо:
$\frac{\partial \phi}{\partial y} \cdot \frac{u^{n+1}_{ij+1} - u^{n+1}_{ij}}{\triangle y}$, если $\frac{\partial \phi}{\partial y} < 0$
$\;\;\;\;\frac{\partial \phi}{\partial y} \cdot \frac{u^{n+1}_{ij} - u^{n+1}_{ij-1}}{\triangle y}$, если $\frac{\partial \phi}{\partial y} > 0$

(3) Считайте с маленьким шагом по времени

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение28.05.2010, 12:58 
Аватара пользователя


12/06/06
22
TOTAL в сообщении #324830 писал(а):
$
 \frac{u^{n+ \frac{1}{2}}_{ij} - u^n_{ij}}{2 \triangle t} + \mu_n(\frac{\partial \phi}{\partial x} \cdot \frac{u^{n+\frac{1}{2}}_{i+1j} - u^{n+\frac{1}{2}}_{ij}}{\triangle x}) - D_n \cdot (\frac{u^{n+\frac{1}{2}}_{i+1j} - 2u^{n+\frac{1}{2}}_{ij} + u^{n+\frac{1}{2}}_{i-1j}}{\triangle x^2}) = - \frac{u^{n+\frac{1}{2}}}{\tau_n}$

$
 \frac{u^{n+1}_{ij} - u^{n+\frac{1}{2}}_{ij}}{ 2 \triangle t} + \mu_n(\frac{\partial \phi}{\partial y} \cdot \frac{u^{n+1}_{ij+1} - u^{n+1}_{ij}}{\triangle y}) - D_n \cdot (\frac{u^{n+1}_{ij+1} - 2u^{n+1}_{ij} + u^{n+1}_{ij-1}}{\triangle y^2}) = \mu \cdot \nabla \phi \cdot \nabla \phi_k$


(1) надо изменить знаменатель у производной по времени
$\frac{u^{n+1}_{ij} - u^{n+\frac{1}{2}}_{ij}}{ \triangle t/2}$

(2) надо:
$\frac{\partial \phi}{\partial y} \cdot \frac{u^{n+1}_{ij+1} - u^{n+1}_{ij}}{\triangle y}$, если $\frac{\partial \phi}{\partial y} < 0$
$\;\;\;\;\frac{\partial \phi}{\partial y} \cdot \frac{u^{n+1}_{ij} - u^{n+1}_{ij-1}}{\triangle y}$, если $\frac{\partial \phi}{\partial y} > 0$

(3) Считайте с маленьким шагом по времени

Спасибо большое!:)

1. Так у меня было первоначально, логично ведь - поделить $\triangle t$ на 2, раз делаются полушаги, но прочитав Бахвалова, я увидел двойку именно в знаменателе.
2. А почему так надо? На чем это основано? (честно, графики даже не поменялись - как мертвому припарки, наверное, слишком маленькое влияние оказывает такой замен)
3. Шаг по времени у меня очень маленький, по крайней мере удовлетворяет условию $\tau <<< \triangle x^2} $ - много меньше - это на четыре-пять порядков.

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение28.05.2010, 13:10 
Заслуженный участник
Аватара пользователя


23/08/07
5494
Нов-ск
Pete[r] в сообщении #324841 писал(а):
2. А почему так надо? На чем это основано? (честно, графики даже не поменялись - как мертвому припарки, наверное, слишком маленькое влияние оказывает такой замен)
Для устойчивости

Pete[r] в сообщении #324841 писал(а):
3. Шаг по времени у меня очень маленький, по крайней мере удовлетворяет условию $\tau <<< \triangle x^2} $ - много меньше - это на четыре-пять порядков.
Это слишком маленький шаг (пропадает смысл использовать неявную схему)

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

Что Вас смущает в получаемом численном решении?

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение28.05.2010, 13:26 
Аватара пользователя


12/06/06
22
TOTAL в сообщении #324846 писал(а):
Для устойчивости

Это слишком маленький шаг (пропадает смысл использовать неявную схему)

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

Что Вас смущает в получаемом численном решении?

> Для устойчивости
Ага, понятно, спасибо большое!

> Попробуйте сделать расчет по явной схеме.
Да, сейчас как раз читаю про явные схемы у Самарского :)

Смущает то, что при изменении dx и dy меняются графики и со временем некоторые начинают расходиться.
Т.е. в начале там всполыхи, а потом они должны плавно растекаться, уменьшаясь. Но, когда я меняю размер сетки (например, со 100 на 50 или на 150), они не растекаются, а наоборот начинают увеличиваться до баснословных цифр: до +132 степени :shock:.
Мне хочется правильно и четко решить задачу, чтобы не было таких виляний с графиками.

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение28.05.2010, 13:41 
Заслуженный участник
Аватара пользователя


23/08/07
5494
Нов-ск
Pete[r] в сообщении #324854 писал(а):
Смущает то, что при изменении dx и dy меняются графики и со временем некоторые начинают расходиться.
Мне хочется правильно и четко решить задачу, чтобы не было таких виляний с графиками.

Вы правильно добиваетесь того, чтобы при измельчении сетки решение стремилось к чему-то.


Пусть решается уравнение
$u_t+au_x+bu_y=D(u_{xx}+u_{yy})$
Тогда шаг по времени $\tau$ для явной схемы с аппроксимацией производных, какую Вы используете, выбирайте из условия
$\tau \left( \frac{|a|}{h_x} + \frac{|b|}{h_y}+ \frac{|2D|}{h_x^2}+ \frac{|2D|}{h_y^2} \right) <1$

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение19.09.2010, 10:23 
Аватара пользователя


12/06/06
22
Друзья, добрый день!
Спасибо за ваши комментарии и помощь в разборках с этой задачей. Дело оказалось в том, что коэффициент диффузии, а именно $D_n$ по сравнению с остальными членами мог быть на несколько порядков меньше. Следовательно исходное уравнение превращалось в

$ \frac{\partial u}{\partial t} + \mu_n(\frac{\partial \phi}{\partial x} \cdot \frac{\partial u}{\partial x} + \frac{\partial \phi}{\partial y} \cdot \frac{\partial u}{\partial y}) + \frac{u}{\tau_n} = \mu \cdot \nabla \phi \cdot \nabla \phi_k$

То есть вторых производных в нем нет. Из-за этого используемый метод решения начинал расходиться. В остальных случаях всё замечательно и устойчиво решается! :)

Но, решив таким образом более сложную задачу с коэффициентом диффузии, на меня напал ступор, как же решить более легкое уравнение, которое можно представить в виде:

$
 \frac{\partial u}{\partial t} + a \cdot \frac{\partial u}{\partial x} + b \cdot \frac{\partial u}{\partial y} + c \cdot u = d $

Сижу, читаю про решение задач в частных производных ( у Самарского идет решение задачи Коши, а потом сразу эллиптических уравнений), а найти именно про численное решение уравнений первого порядка не получается.
Можно здесь применять какую-нибудь неявную схему? Или Кранка-Николсона?

 Профиль  
                  
 
 Re: Численное решение уравнения параболического типа
Сообщение21.09.2010, 14:04 
Аватара пользователя


12/06/06
22
Pete[r] в сообщении #353935 писал(а):
$
 \frac{\partial u}{\partial t} + a \cdot \frac{\partial u}{\partial x} + b \cdot \frac{\partial u}{\partial y} + c \cdot u = d $

Сижу, читаю про решение задач в частных производных ( у Самарского идет решение задачи Коши, а потом сразу эллиптических уравнений), а найти именно про численное решение уравнений первого порядка не получается.
Можно здесь применять какую-нибудь неявную схему? Или Кранка-Николсона?


А, всё, разобрался! Это ж многомерное уравнение переноса :). Решается неявными схемами (например, неявной попеременно-треугольной разностной схемой).

Всем спасибо большое!

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

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



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

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


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

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