Форум программистов, компьютерный форум, киберфорум
Дифференциальные уравнения
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
5242 / 3570 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
1

Метод конечных разностей для решения ДУЧП

31.12.2016, 17:45. Показов 2216. Ответов 7

Author24 — интернет-сервис помощи студентам
Ребятки, здравствуйте!
Всех с наступающим!

Несколько времени тому назад мне под руку попалось одно хитрое уравнение, которое не дает мне покоя:

https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{r^2} \frac{\partial}{\partial r} \left( r^2 \frac{\partial V}{\partial r} \right) + \frac{1}{r^2}\frac{1}{sin(t)} \frac{\partial}{\partial t} \left( sin(t) \frac{\partial V}{\partial t} \right) = 0;

где r є [0.01, 0.04], t є [pi/6, 5*pi/6];
Граничные условия: V(0.01,t) = 150, V(0.04,t) = 0;
Начальные условия - произвольные (я брал V(r, pi/6) = 150-150*(r-0.01)/0.03 ).

Далее я убрал множитель https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{r^2} (т.к. r не равно нулю) и раскрыл скобки:

https://www.cyberforum.ru/cgi-bin/latex.cgi?2r \frac{\partial V}{\partial r} + r^2 \frac{\partial^2 V}{\partial r^2} + \frac{cos(t)}{sin(t)} \frac{\partial V}{\partial t} + \frac{\partial^2 V}{\partial t^2} = 0;

Затем перешел к дискретным величинам:

https://www.cyberforum.ru/cgi-bin/latex.cgi?dr = \frac{r_{max}-r_{min}}{N}; \; \; \; dt = \frac{t_{max}-t_{min}}{M}; \\i = 0..N; \; \; \; k = 0..M; \\r_i = r_{min} + dr\cdot i; \\t_k = t_{min} + dt\cdot k; \\V_{(k,i)} = V(t_k,r_i);

И перешел к разностной схеме (для (i,k)-го элемента):

https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{r_i}{dr}\left( V_{(k,i+1)}-V_{(k,i-1)} \right) + \frac{r_i^2}{dr^2}\left( V_{(k,i+1)}-2V_{(k,i)} + V_{(k,i-1)} \right) + \frac{\cot(t_k)}{2dt}\left( V_{(k+1,i)}-V_{(k-1,i)} \right) + \frac{1}{dt^2}\left( V_{(k+1,i)}-2V_{(k,i)}+V_{(k-1,i)} \right) =0;

Собрал множители при элементах и переобозвал их:

https://www.cyberforum.ru/cgi-bin/latex.cgi?A_d V_{(k,i-1)} + A_m V_{(k,i)} + A_u V_{(k,i+1)} + B V_{(k+1,i)} + C V_{(k-1,i)} = 0;

где

https://www.cyberforum.ru/cgi-bin/latex.cgi?A_d = \frac{r_i^2 - 2r_i dr}{dr^2}; \\A_m = -2 \left( \frac{r_i^2}{dr^2} + \frac{1}{dt^2} \right) ;\\A_u = \frac{r_i^2 + 2 r_i dr}{dr^2};\\B = \frac{2+dt \cot(t_k)}{2dt^2};\\C = \frac{2-dt \cot(t_k)}{2dt^2};

Откуда вытекает аккуратная схема:

https://www.cyberforum.ru/cgi-bin/latex.cgi?V_{(k+1,i)} = -\frac{1}{B} \left( \left[ A_d V_{(k,i-1)} + A_m V_{(k,i)} + A_u V_{(k,i+1)} \right] + C V_{(k-1,i)} \right) ; \\i = 1..N-1; \;\;\; k = 1..M-1

( ясное дело, что множитель -1/B можно сразу домножить на А...C и переобозвать, но пока оставлю )

где https://www.cyberforum.ru/cgi-bin/latex.cgi?V_{(0,i)} равно начальным условиям, https://www.cyberforum.ru/cgi-bin/latex.cgi?V_{(1,i)} можно найти из начальных условий первой производной:

https://www.cyberforum.ru/cgi-bin/latex.cgi?V_{(1,i)} \approx  V_{(0,i)} + dt \cdot \frac{\partial V}{\partial t} \left( 0, r_i \right);

Также я пробовал такой способ:
https://www.cyberforum.ru/cgi-bin/latex.cgi?V_{(1,i)} = -\frac{1}{B} \left( A_d V_{(k,i-1)} + A_m V_{(k,i)} + A_u V_{(k,i+1)} \right) ;

НО при любом раскладе решение "улетает" в бесконечность! причем чем меньше шаг, тем быстрее.
Интуитивно понимаю, что чем меньше шаг, тем численное решение должно быть ближе к точному, но на деле выходит совсем наоборот.
Это я где-то ошибся или этот метод тут не уместен? или может уравнение само виновато?


Не по теме:

PS: прошу сильно книжками не пинать, я плохо разбираюсь в ДУЧП :-[



Добавлено через 6 часов 12 минут

Не по теме:

Как мужчина в полном расцвете сил может равнодушно созерцать мягкие изгибы символа частной производной?
Диффуры они как девушки: одни просто миленькие, но попадется одна - сведет с ума, лишит сна и аппетита! Все время думаешь о ней, взвешиваешь разные способы решения, хоть оно тебе вообще не нужно. А результат не сходится! Пытаешься отвлечься, порешать те, что по проще... не помогает! Решаешь простые, но думаешь о той единственной, которая запала в сердце.
И если исписаны ручкой несколько листов А4 с выводом разностной схемы - это уже нечто большее, чем просто ДЗ.

0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.12.2016, 17:45
Ответы с готовыми решениями:

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

Метод конечных разностей для системы диффуров в частных производных
Доброго времени суток, уважаемые форумчане. У меня возникла проблема при решении одной задачи....

Метод конечных разностей
Здравствуйте! Помогите, пожалуйста, мне необходимо реализовать метод конечных разностей для...

Метод конечных разностей
Подскажите, пожалуйста, как правильно составить СЛАУ для данного метода. (ДУ 2ого порядка с...

7
1728 / 1020 / 181
Регистрация: 03.06.2012
Сообщений: 1,220
01.01.2017, 20:12 2
Это задача для уравнения Лапласа в сферических координатах
для функции, не зависящей от полярного угла. Её решение
можно искать методом разделения переменных, но без ссылок
на учебник это объяснить трудно.
0
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
03.01.2017, 23:56 3
Зосима, подождите, у вас стоит тривиальное уравнение: лапласиан * V = 0, так?
А какой вид имеет функция V и почему вы решаете его конечно-разностным методом?
0
Эксперт по математике/физике
4217 / 3412 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
04.01.2017, 00:30 4
Цитата Сообщение от Зосима Посмотреть сообщение
Это я где-то ошибся или этот метод тут не уместен? или может уравнение само виновато?
Сама постановка задачи:
1) https://www.cyberforum.ru/cgi-bin/latex.cgi?t - это не время, а полярный угол https://www.cyberforum.ru/cgi-bin/latex.cgi?\theta , поскольку здесь уравнение с лапласианом
в сферических координатах.

2)
Цитата Сообщение от Зосима Посмотреть сообщение
Начальные условия - произвольные
Нет никаких начальных условий, а нужны граничные, и отсутствует условие на одной из границ, а именно для https://www.cyberforum.ru/cgi-bin/latex.cgi?\theta =5\pi /6

Конечно-разностная схема приводит к блочной трехдиагональной матрице системы.
Подробности - в Дж.Ортега, У.Пул Введение в численные методы решения дифференциальных уравнений, гл.8.
(без книг никак не обойтись)
1
1728 / 1020 / 181
Регистрация: 03.06.2012
Сообщений: 1,220
04.01.2017, 00:38 5
Цитата Сообщение от Том Ардер Посмотреть сообщение
"...азимутальный...". Полярного угла (https://www.cyberforum.ru/cgi-bin/latex.cgi?\varphi) здесь нет.
0
Эксперт по математике/физике
4217 / 3412 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
04.01.2017, 00:58 6
splen, вопрос терминологии. На плоскости https://www.cyberforum.ru/cgi-bin/latex.cgi?\varphi - полярный. На сфере https://www.cyberforum.ru/cgi-bin/latex.cgi?\varphi - азимутальный (мне привычнее астрономическое толкование). Сферическая система координат (извините за ссылку, только для уточнения терминов)
1
1728 / 1020 / 181
Регистрация: 03.06.2012
Сообщений: 1,220
04.01.2017, 01:12 7
Том Ардер, Вы правы, Ваша формулировка точнее.
0
5242 / 3570 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
04.01.2017, 09:07  [ТС] 8
Ребятки, спасибо!

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

* условие на границе V(r,5*pi/6) можно взять произвольное.

** книжку нашел, буду изучать на досуге.
0
04.01.2017, 09:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2017, 09:07
Помогаю со студенческими работами здесь

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

Метод конечных разностей - библиотека для решения ДУ n-го порядка
Пролистал Евгения Макарова "Инженерные расчёты в MathCAD" и наткнулся на феерический пример ДУ 4-го...

Метод конечных разностей для краевой задачи
Помогите пожалуйста. Надо написать программу, которая решает краевую задачу для ОДУ 2 порядка...

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

Метод конечных разностей
#include "stdafx.h" #include"iostream" #include"cmath" using namespace std; int main() { ...

Метод конечных разностей.
Очень нужна помощь: нужно решить задачу Пуассона методом конечных разностей. Много всего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru