2014 dxdy logo

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

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


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


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

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

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

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

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



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Метод конечных разностей для второй производной...
Сообщение28.10.2010, 14:01 


06/10/10
106
У меня есть такое уравнение: $\ddot{x}+\omega^2x=0$ которое нужно приближённо считать методом конечных разностей. Я посмотрел описание этого метода: Метод конечных разностей
но там производная первого порядка заменяется на конечную разность, а как быть в случае со вторым порядком производной, как в моём случае?

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение28.10.2010, 14:07 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Никаких методов не знаю, но, ну ёлки, ну замените производную второго порядка на конечно-разностное приближение, что не так?

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение28.10.2010, 14:11 
Заслуженный участник
Аватара пользователя


23/08/07
5492
Нов-ск
JustAMan в сообщении #367165 писал(а):
У меня есть такое уравнение: $\ddot{x}+\omega^2x=0$ которое нужно приближённо считать методом конечных разностей.
Помимо уравнения есть что-нибудь? Начальные условия, например?

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение28.10.2010, 14:19 


06/10/10
106
ИСН в сообщении #367168 писал(а):
Никаких методов не знаю, но, ну ёлки, ну замените производную второго порядка на конечно-разностное приближение, что не так?

Да, я пробовал это сделать. Проблема у меня там в том, что в формуле приближённого вычисления второй производной:
$y''_i = \frac{ y_{i2} - 2 * y_{i1} + y_i }{ h^2 }$
непонятно откуда брать коэффициент $y_{i1}$? То ли это имеется ввиду, что следующий коэффициент ($y_{i2}$) вычисляется на основе предыдущего (именно он зовётся в формуле $y_{i1}$) и на основе перед-предыдущего ($y_i$).. Не так ли случаем?

-- Чт окт 28, 2010 15:21:31 --

TOTAL в сообщении #367172 писал(а):
Помимо уравнения есть что-нибудь? Начальные условия, например?

А, да, забыл упомянуть их: x(0) = A, x'(0) = 0.

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение28.10.2010, 14:38 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Именно так: надо два предыдущих.

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение28.10.2010, 15:00 
Заслуженный участник
Аватара пользователя


23/08/07
5492
Нов-ск
JustAMan в сообщении #367178 писал(а):
А, да, забыл упомянуть их: x(0) = A, x'(0) = 0.

Теперь решайте последовательно
$$\frac{x_{j+1}-x_{j}}{\tau}=\frac{1}{2}(v_{j+1}+v_{j})$$
$$\frac{v_{j+1}-v_{j}}{\tau}=-\frac{1}{2}\omega^2(x_{j+1}+x_{j})$$
$x_0=A, \; v_0=0$

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение28.10.2010, 15:21 
Заслуженный участник


11/05/08
32166
JustAMan в сообщении #367178 писал(а):
$y''_i = \frac{ y_{i2} - 2 * y_{i1} + y_i }{ h^2 }$

Запись плохая, надо так:

$\dfrac{ y_{i+1} - 2\,y_{i} + y_{i-1}}{ h^2 }+\omega^2y_{i}=0\,,$

откуда каждое следующее $y_{i+1}$ и выражается через два предыдущих.

JustAMan в сообщении #367178 писал(а):
А, да, забыл упомянуть их: x(0) = A, x'(0) = 0.

, т.е. для запуска процедуры надо знать два начальных значения: $y_{0}$ и $y_{1}$.

Простейший способ аппроксимации: $y_{0}=A$ (естественно) и $\dfrac{y_1-y_0}{h}=0$, т.е. $y_1=y_0$. Но это не очень хорошо -- первая производная аппроксимируется несимметрично, что ведёт к потере точности. Разумнее добавить фиктивный узел слева и узловое значение в нём $y_{-1}$. Тогда начальное условие на производную аппроксимируется как $\dfrac{y_1-y_{-1}}{2h}=0$, т.е. $y_{-1}=y_1$, что в сочетании с известным $y_{0}$ и основным уравнением $\dfrac{ y_{1} - 2\,y_{0} + y_{-1}}{ h^2 }+\omega^2y_{0}=0$ даёт искомое $y_{1}$.

(можно и как у TOTAL, но там логика сложнее)

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение28.10.2010, 16:33 


06/10/10
106
Спасибо большое вам!

ewert, отдельное спасибо за такой подсчёт $y_1$! :-) Расписал на бумаге всё это - вроде бы разобрался!

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение02.11.2010, 06:34 


06/10/10
106
Кстати, у меня тут получается какая-то очень странная ситуация.. Если брать уравнение гармонического колебания:

$\[\ddot x = \frac{{ - ({k_2} + {k_1})}}
{m}x\]
$

где k1 и k2 - жёсткость каждой пружины. При использовании метода конечных разностей, у меня получается такое рекурретное выражение:

$x_2 = 2*x_1 - x_0 + h^2 * (-k2-k1)/m * x_0$

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

Почему-то линия у меня загибается вниз и уходит туда в бесконечность: http://s002.radikal.ru/i198/1011/7c/df546cd541da.gif
Не подскажете ли почему такое может быть? Может с коэффициентами что-то не то?

Для тех, кто захочет поиграться с формулами этого excel-приложения, вот оно (формат - OpenOffice): http://webfile.ru/4866410

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение02.11.2010, 08:33 
Заслуженный участник
Аватара пользователя


23/08/07
5492
Нов-ск
JustAMan в сообщении #369131 писал(а):
Кстати, у меня тут получается какая-то очень странная ситуация.. Если брать уравнение гармонического колебания:

$\[\ddot x = \frac{{ - ({k_2} + {k_1})}}
{m}x\]
$

где k1 и k2 - жёсткость каждой пружины. При использовании метода конечных разностей, у меня получается такое рекурретное выражение:

$x_2 = 2*x_1 - x_0 + h^2 * (-k2-k1)/m * x_0$

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

Почему-то линия у меня загибается вниз и уходит туда в бесконечность:

$x_2 = 2*x_1 - x_0 + h^2 * (-k2-k1)/m * x_0$ замените на $x_2 = 2*x_1 - x_0 + h^2 * (-k2-k1)/m * x_1$
У Вас в программе $(-k2+k1),$ а надо $(k2+k1).$




Кроме того, вместо $\displaystyle \frac{ x_{i+1} - 2x_{i} + x_{i-1}}{ h^2 }=-\frac{k2+k1}{m} \;\; x_{i}$
на всякий случай используйте $\displaystyle \frac{ x_{i+1} - 2x_{i} + x_{i-1}}{ h^2 }=-\frac{k2+k1}{m} \;\; \frac{ x_{i+1} + 2x_{i} + x_{i-1}}{ 4 }$

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение02.11.2010, 10:16 
Заслуженный участник


11/05/08
32166
TOTAL в сообщении #369152 писал(а):
на всякий случай используйте

зачем?

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение02.11.2010, 10:42 
Заслуженный участник
Аватара пользователя


23/08/07
5492
Нов-ск
ewert в сообщении #369165 писал(а):
TOTAL в сообщении #369152 писал(а):
на всякий случай используйте

зачем?
Схема получается не условно, а абсолютно устойчивой.

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение02.11.2010, 11:25 
Заслуженный участник


11/05/08
32166
TOTAL в сообщении #369173 писал(а):
Схема получается не условно, а абсолютно устойчивой.

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

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение02.11.2010, 14:09 
Заслуженный участник
Аватара пользователя


23/07/05
17976
Москва
Вообще, можно свести к системе двух уравнений первого порядка, если ввести вторую неизвестную функцию $y=\dot x$:
$\begin{cases}\dot x=y\text{,}\\ \dot y=-\omega^2 x\end{cases}$
с начальными условиями $x(0)=A, y(0)=0$.
И уже к этой системе применять разностную схему.

Или задание требует применять разностную схему непосредственно к уравнению второго порядка?

 Профиль  
                  
 
 Re: Метод конечных разностей для второй производной...
Сообщение02.11.2010, 15:02 


06/10/10
106
Someone в сообщении #369220 писал(а):
Или задание требует применять разностную схему непосредственно к уравнению второго порядка?

Я так понимаю, главное, чтобы работало) Ну и научиться работать с разностями по отношению ко второму порядку. Если не получится со вторым - будем уменьшать) Спасибо за метод!


TOTAL в сообщении #369152 писал(а):
$x_2 = 2*x_1 - x_0 + h^2 * (-k2-k1)/m * x_0$ замените на $x_2 = 2*x_1 - x_0 + h^2 * (-k2-k1)/m * x_1$
У Вас в программе $(-k2+k1),$ а надо $(k2+k1).$

Кроме того, вместо $\displaystyle \frac{ x_{i+1} - 2x_{i} + x_{i-1}}{ h^2 }=-\frac{k2+k1}{m} \;\; x_{i}$
на всякий случай используйте $\displaystyle \frac{ x_{i+1} - 2x_{i} + x_{i-1}}{ h^2 }=-\frac{k2+k1}{m} \;\; \frac{ x_{i+1} + 2x_{i} + x_{i-1}}{ 4 }$

Спасибо! Проделал, пока что, до последней формулы. А этот случай, он сильно изменит ход вычисления?
У меня сейчас линия развернулась в обратную сторону и стала похожа на экспоненту: http://s010.radikal.ru/i314/1011/cb/a73290249569.gif
(там два графика - захватывается разное количество точек, во втором в два раза больше)
вот исходник: http://webfile.ru/4867642

Тут ведь получится синусоида должна? А у меня ерунда какая-то получается :) Не подскажите, почему такое получается?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.

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



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

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


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

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