2014 dxdy logo

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

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


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


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

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

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

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

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



Начать новую тему Ответить на тему
 
 Метод прогонки
Сообщение07.12.2015, 16:53 
Аватара пользователя


13/08/13

4323
Объясните мне смысл метода прогонки для решения краевой задачи, если можно использовать метод стрельбы, и для линейных систем достаточно нескольких выстрелов, чтобы свести все к задаче Коши?

 Профиль  
                  
 
 Re: Метод прогонки
Сообщение07.12.2015, 17:11 
Заслуженный участник


09/05/12
25179
Sicker в сообщении #1080310 писал(а):
Объясните мне смысл метода прогонки для решения краевой задачи, если можно использовать метод стрельбы, и для линейных систем достаточно нескольких выстрелов, чтобы свести все к задаче Коши?
Во-первых, просто скорость. Во-вторых... Вы уверены, что нескольких выстрелов всегда будет достаточно? :wink:

 Профиль  
                  
 
 Re: Метод прогонки
Сообщение07.12.2015, 17:20 
Аватара пользователя


13/08/13

4323
Pphantom
Если уравнение линейное, то да. Там же только цэшки определить.

 Профиль  
                  
 
 Re: Метод прогонки
Сообщение07.12.2015, 17:38 
Заслуженный участник


09/05/12
25179
Sicker в сообщении #1080323 писал(а):
Если уравнение линейное, то да. Там же только цэшки определить.
М-да? Ну попробуйте численно решить, например, такое уравнение:
$$
 \frac{d^2 y}{dx^2} - 3\, \frac{dy}{dx}+ 2\,y=4\,e^{3x}
$$
Граничные условия $y(0)=4$ и $y(10)=10$, решать надо методом стрельбы слева.

 Профиль  
                  
 
 Re: Метод прогонки
Сообщение07.12.2015, 18:47 
Заслуженный участник
Аватара пользователя


04/09/14
5003
ФТИ им. Иоффе СПб
Sicker,
почитайте: Ц. На (T.Y.Na) Вычислительные методы решения прикладных граничных задач [Мир, 1982]
очень полезно.

 Профиль  
                  
 
 Re: Метод прогонки
Сообщение07.12.2015, 19:26 
Аватара пользователя


13/08/13

4323
Pphantom в сообщении #1080327 писал(а):
Граничные условия $y(0)=4$ и $y(10)=10$, решать надо методом стрельбы слева.

Если ввести разностную сетку, то нужно сделать два выстрела $x_1=P_{1}\cdot h+4$;$x_1=P_{2}\cdot h+4$, где $h$-шаг сетки, $P$ - произвольно взятая разностно вычисленная производная. Смотрим соответствующее $x_n(P_1)$, $x_n(P_2)$, находим нужное нам $P=P_1-\frac{x_n(P_2)-10}{x_n(P_2)-x_n(P_1)}(P_2-P_1)$,

-- 07.12.2015, 19:26 --

amon
Спасибо, почитаю.

 Профиль  
                  
 
 Re: Метод прогонки
Сообщение07.12.2015, 19:46 
Заслуженный участник


09/05/12
25179
Sicker в сообщении #1080353 писал(а):
Если ввести разностную сетку, то нужно сделать два выстрела $x_1=P_{1}\cdot h+4$;$x_1=P_{2}\cdot h+4$, где $h$-шаг сетки, $P$ - произвольно взятая разностно вычисленная производная. Смотрим соответствующее $x_n(P_1)$, $x_n(P_2)$, находим нужное нам $P=P_1-\frac{x_n(P_2)-10}{x_n(P_2)-x_n(P_1)}(P_2-P_1)$,
Это все очень хорошо выглядит в теории, а Вы попробуйте реализовать свою идею на практике. :D

Собственно, пример несложный, поэтому можно даже программу не писать: выберите $P_1$ и $P_2$ по вкусу, затем найдите общее решение аналитически, подставьте в него получившиеся условия задач Коши и вычислите (вернее, попробуйте вычислить) $P$. Тогда, думаю, станет яснее, почему стрельба - не всегда удачная идея. :mrgreen:

 Профиль  
                  
 
 Re: Метод прогонки
Сообщение07.12.2015, 19:54 
Аватара пользователя


13/08/13

4323
Pphantom
Да, кстати, я это чего спрашиваю :D
Мне нужно было интерполировать функцию кубическим сплайном с глобальным способом задания наклонов. И нужно было вычислить соответствующие $m_i$ с граничными условиями. Я решил моим методом стрельбы, и офигел от разброса значений :-) У меня при разбиении на $N=20$ частей окончательно вычисленное значение $m_n$ где-то отличалось на 504 от истинного, которое надо было получить хотя бы с точность до тысячных. Я думал, что ошибка в том, что фортран все округляет, и поэтому набегает ошибка. Потому что если скажем изменить то значение $P$, которое я получил свои способом на одну сотую, то у меня не то что конечное значение изменится на сотню, а на миллиард! Так что я решил взять шаг поменьше $N=10$ и все вроде прилично получилось.
Препод не принял, сказал делать прогонкой, ибо прогонка это все :D

-- 07.12.2015, 19:56 --

Pphantom в сообщении #1080359 писал(а):
затем найдите общее решение аналитически

А почему аналитически? Численно и надо, а то большая погрешность будет. И если б программа считала идеально, то все должно было быть отлично.

 Профиль  
                  
 
 Re: Метод прогонки
Сообщение07.12.2015, 20:09 
Заслуженный участник


09/05/12
25179
Sicker в сообщении #1080362 писал(а):
Мне нужно было интерполировать функцию кубическим сплайном с глобальным способом задания наклонов. И нужно было вычислить соответствующие $m_i$ с граничными условиями. Я решил моим методом стрельбы, и офигел от разброса значений :-) У меня при разбиении на $N=20$ частей окончательно вычисленное значение $m_n$ где-то отличалось на 504 от истинного, которое надо было получить хотя бы с точность до тысячных.
Ничего, это цветочки, бывает хуже.
Sicker в сообщении #1080362 писал(а):
Я думал, что ошибка в том, что фортран все округляет, и поэтому набегает ошибка.
Нет, Фортран тут ни при чем.
Sicker в сообщении #1080362 писал(а):
Так что я решил взять шаг поменьше $N=10$ и все вроде прилично получилось.
Препод не принял, сказал делать прогонкой, ибо прогонка это все :D
Именно. В определенных случаях можно обойтись и стрельбой, но если Вы заранее не знаете, что происходит, прогонка надежнее.
Sicker в сообщении #1080362 писал(а):
А почему аналитически? Численно и надо, а то большая погрешность будет. И если б программа считала идеально, то все должно было быть отлично.
Я помню, как у Вас обстояли дела с вычислительным программированием, поэтому решил, что так результат осознается быстрее (и тут его аналитически можно легко получить). Но, если хотите, можете попробовать и численно. Для вящей пикантности - используя переменные одинарной точности. :lol1:

 Профиль  
                  
 
 Re: Метод прогонки
Сообщение07.12.2015, 20:46 
Аватара пользователя


13/08/13

4323
Pphantom в сообщении #1080366 писал(а):
используя переменные одинарной точности. :lol1:

А в идеале надо бесконечной :mrgreen:

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

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



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

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


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

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