2014 dxdy logo

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

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




 
 Метод Рунге-Кутта 2 порядка для дифура второго порядка
Сообщение26.04.2008, 18:47 
Дано дифференциальное уравнение 2 порядка:
$y''-xy'-xy = f(x)$
Дана точная функция, с которой будем работать:
$y = x^2sin x$
$x \epsilon [-\pi, \pi]$
Даны начальные условия:
$y(-\pi) = ?$
$y'(-\pi) = ?$
Необходимо решить задачу Коши.

Теперь, собственно, что не получается.
Во-первых, как я понимаю функция $f(x)$ получается путем подстановки точной функции в дифур, а начальные условия берутся путем подстановки $-\pi$ в точную функцию и её производную. Это так?

Тогда наше уравнение будет иметь вид:
$y''-xy'-xy = 4xcos x - 3x^2sin x - x^3(cos x + sin x) + 2 sin x$
Начальные условия:
$y(-\pi)$ = 0
$y'(-\pi)$ = -\pi^2

Затем, чтобы воспользоваться методом Рунге-Кутта, составляем систему дифуров 1 порядка:
$
\left\{ \begin{array}{l}
t = y',\\ 
t' = xt + xy + f(x)
\end{array} \right.
$

А теперь сам вопрос: как решить эту систему используя формулу Рунге-Кутта второго порядка
Сама формула:
$y_i_+_1 = y_i + h[(1-\alpha)f_1(x_i,y_i)+\alpha f_1(x_i+h/2\alpha, y_i+h/2\alpha f_1(x_i,y_i)]$
Где h - некоторый шаг, $\alpha = 0.5$

Исправил опечатку в формуле. Кстати, у Вас буква $f$ обозначает две разные функции. Jnrty.

Спасибо, букву $f$ тоже исправил.

 
 
 
 
Сообщение26.04.2008, 19:06 
Метод Рунге-Кутта является численным, т.е. приблизительным. Как решить? Пошагово. Отправная точка - начальные условия.

Чтобы порадовать преподавателя, постройте графики того, что Вы называете "точной функцией" (т.е. точного решения этого дифура), а также полученных решений при разных значениях h. Оцените величину ошибки приближенного решения в зависимости от величины выбранного шага.

Удачи!

 
 
 
 
Сообщение26.04.2008, 19:25 
Возможно, преподаватель хочет, чтобы был выбран такой шаг, чтобы получилось достаточно хорошее приближение.

 
 
 
 
Сообщение26.04.2008, 20:07 
Аватара пользователя
В чём проблема-то? Ваша система имеет вид
$$\begin{cases}y'=t\equiv\phi(x,y,t)\text{,}\\ t'=xt+xy+f(x)\equiv\varphi(x,y,t)\end{cases}$$
с начальными условиями
$$y|_{x=-\pi}=0,t|_{x=-\pi}=-\pi^2\text{.}$$
Поэтому полагаем
$$x_0=-\pi,y_0=0,t_0=-\pi^2\text{,}$$
а затем вычисляем
$$A_i=\phi(x_i,y_i,t_i),B_i=\varphi(x_i,y_i,t_i)\text{,}$$
$$A_{i+\frac 1{2\alpha}}=\phi\left(x_i+\frac h{2\alpha},y_i+\frac h{2\alpha}A_i,t_i+\frac h{2\alpha}B_i\right),B_{i+\frac 1{2\alpha}}=\varphi\left(x_i+\frac h{2\alpha},y_i+\frac h{2\alpha}A_i,t_i+\frac h{2\alpha}B_i\right)\text{,}$$
$$y_{i+1}=y_i+h\left((1-\alpha)A_i+\alpha A_{i+\frac 1{2\alpha}}\right),t_{i+1}=t_i+h\left((1-\alpha)B_i+\alpha B_{i+\frac 1{2\alpha}}\right)\text{,}$$
$$x_{i+1}=x_i+h\text{.}$$

Я ничего не напутал?

 
 
 
 
Сообщение26.04.2008, 20:07 
Спасибо, но вопрос был немного не в этом) Точнее совсем не в этом =)

Меня интересует, КАК решить эту систему..

Т.е. мне надо написать программу(MatLab), которая решает конкретную задачу..
Как я понимаю, нужно составить цикл, который пошагово будет выполнять вычисления..Но какие конкретно мне непонятно

 
 
 
 
Сообщение26.04.2008, 20:11 
Как какие?
По формулам Рунге-Кутта!

 
 
 
 
Сообщение26.04.2008, 20:14 
Someone
Спасибо, большое, проблема глупая)

Как я понял у нас A_i_+_1 будет увеличиваться на каждом шаге на t_i + h/2\alpha B_i, т.к. функция \phi зависит только от t

Похоже на правду, сейчас проверю =)

V.V формулы Рунге-Кутта применимы для дифура первого порядка, а у меня второго..В этом и была загвоздка у меня..В решении системы,а не использовании формулы =)

 
 
 
 
Сообщение26.04.2008, 20:25 
kdm писал(а):
формулы Рунге-Кутта применимы для дифура первого порядка, а у меня второго..В этом и была загвоздка у меня.

Вы же самостоятельно справились с этой "загвоздкой"! Система-то у Вас получилась именно первого порядка, т.е. для нее Рунге-Кутт прекрасно работает. А что функций две - не беда, можно считать, что функция одна, просто у нее две координаты.

 
 
 
 
Сообщение26.04.2008, 20:29 
Вот я собственно и спрашивал, как решить эту систему.. :)Было непонятно как применить к ней формулу.. :oops:

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


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