2014 dxdy logo

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

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




На страницу 1, 2  След.
 
 Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение06.12.2012, 00:13 
Помогите решить дифур методом РК :

\mathop \xi \limits^{ \bullet  \bullet }  = \frac{{\cos (\xi )}}{{{{\sin }^2}(\xi )}}

\xi (0) = \pi/4

\xi' (0) = 0
\xi (t)
Не очень понятно как выполнять приращения по t , ведь у нас оно явно не задано в уравнение

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение06.12.2012, 00:29 
Аватара пользователя
silas в сообщении #654803 писал(а):
Не очень понятно как выполнять приращения по t

То есть, надо понимать, что все остальное понятно.
Зиер гут. Напишите сюда "метод РК" в общем случае.

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение06.12.2012, 11:39 

(Оффтоп)

silas в сообщении #654803 писал(а):
\mathop \xi \limits^{ \bullet \bullet } = \frac{{\cos (\xi )}}{{{{\sin }^2}(\xi )}}

Это у неё глаза на лоб от изумления духа вылезли?...

silas в сообщении #654803 писал(а):
Не очень понятно как выполнять приращения по t , ведь у нас оно явно не задано в уравнение

Естественно: выбор шага -- это Ваша задача. Т.е. это -- внешний по отношению к собственно задаче Коши параметр в методе Рунге-Кутты.

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение06.12.2012, 17:35 
Цитата:
То есть, надо понимать, что все остальное понятно.

Возможно, левая часть какая - то мудреная)
Цитата:
Напишите сюда "метод РК" в общем случае.

http://ru.wikipedia.org/wiki/%CC%E5%F2% ... 3%F2%F2%FB
Не охота переписывать формулы.
Суть в том, что в методе Рунге-Кутта 4 - го порядка шаг происходит по y и по x.

Цитата:
silas в сообщении #654803 писал(а):
Не очень понятно как выполнять приращения по t , ведь у нас оно явно не задано в уравнение

Естественно: выбор шага -- это Ваша задача. Т.е. это -- внешний по отношению к собственно задаче Коши параметр в методе Рунге-Кутты.


Выбор шага понятно, что дело мое, но
t = x это аргумент, а не шаг.

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение06.12.2012, 17:51 
Аватара пользователя
silas в сообщении #654803 писал(а):
Не очень понятно как выполнять приращения по t , ведь у нас оно явно не задано в уравнение
Рунге-Кутт здесь пока ни при чём.
Понятно ли, как по значению ускорения и приращению времени получить приращение скорости? :-)

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение06.12.2012, 17:55 
silas в сообщении #655083 писал(а):
Суть в том, что в методе Рунге-Кутта 4 - го порядка шаг происходит по y и по x.

А это вообще не имеет отношения к делу. Ваша задача -- тупо запрограммировать правую часть дифура и не менее тупо запрограммировать один шаг метода Рунге-Кутты, совсем уж тупо предусмотрев внутри второй процедуры вызовы первой. Будет ли при этих вызовах фактически использоваться шаг по иксам -- это уже исключительно личное дело самого Рунге-Кутты; Ваше дело лишь предусмотреть формальную возможность такого использования.

Впрочем, можете в целях экономии кода сочинить вариант метода, упрощённый с учётом автономность системы. Но это дело не очень благодарное для наколенной работы: ускорения Вы на практике всё равно не заметите, а много думать вредно.

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение06.12.2012, 20:17 
Цитата:
Рунге-Кутт здесь пока ни при чём.
Понятно ли, как по значению ускорения и приращению времени получить приращение скорости? :-)

Я знаю , что можно взять обычный интеграл, но нужно оперировать именно методом Рунге-Кутта

Цитата:
А это вообще не имеет отношения к делу. Ваша задача -- тупо запрограммировать правую часть дифура и не менее тупо запрограммировать один шаг метода Рунге-Кутты, совсем уж тупо предусмотрев внутри второй процедуры вызовы первой. Будет ли при этих вызовах фактически использоваться шаг по иксам -- это уже исключительно личное дело самого Рунге-Кутты; Ваше дело лишь предусмотреть формальную возможность такого использования.


Вообщем нужно решить систему?
dy/dt = z;
z' = cos(y)/[sin(y)]^2

Но даже если так, то дальнейшие шаги мне не понятны.

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение06.12.2012, 20:39 
Шаг по $t$ задается дополнительно. Либо от балды, либо от балды с последующей коррекцией.

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение06.12.2012, 20:59 
silas в сообщении #655193 писал(а):
Я знаю , что можно взять обычный интеграл,

Нельзя.

silas в сообщении #655193 писал(а):
Но даже если так, то дальнейшие шаги мне не понятны.

Да, ровно так и никак иначе. Как я понял, Вас явно сбивает с толку отсутствие $t$ в правой части системы, в то время как в методе Рунге-Кутты оно как бы присутствует. Ну так отсутствие (в исходной системе) -- это всего лишь частный случай присутствия.

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение06.12.2012, 22:11 
Аватара пользователя
Действительно, как же поступить, если нужно вычислить $C(t)$ при $t=12,54$, а гадкое $C$ от $t$ не зависит?! Просто руки опускаются...

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение07.12.2012, 00:27 
Изображение
Схема Рунге – Кутта четвертого порядка точности

Так решать?

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение07.12.2012, 00:37 
Аватара пользователя
silas
Где-то так. (Вот, что животворящее зачеркивание делает!)
ewert
Имелся в виду первый интеграл, который тут просто в глаза бросается.

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение07.12.2012, 00:50 
Утундрий в сообщении #655330 писал(а):
Имелся в виду первый интеграл, который тут просто в глаза бросается.

А уже было ТС замечено: мало ли что кому где куда бросается. Дохтур сказал в морг -- значит, в морг.

silas в сообщении #655327 писал(а):
Так решать?

Ну как-то так, только от буковок в глазах рябит. Перепишите всё это в векторном виде. Это значит: напишите процедуру (не важно, на каком языке), которая принимала бы на вход векторные аргументы и возвращала бы аналогичные.

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение07.12.2012, 20:03 
Используется синтаксис C
k1 = z;
        l1 = (cos(y)/[sin(y)*sin(y)]);
        k2 = z + h*l1/2;
        l2 = (cos(y+h*k1/2)/[sin(y+h*k1/2)*sin(y+h*k1/2)]);
        k3 = z + h*l2/2;
        l3 = (cos(y+h*k2/2)/[sin(y+h*k2/2)*sin(y+h*k2/2)]);
        k4 = z + h*l3;
        l4 = (cos(y+h*k3)/[sin(y+h*k3)*sin(y+h*k3)]);
       
        y = y + h*(k1 + 2*k2+2*k3+k4)/6;
       
        z = z + h*(l1+2*l2+2*l3+2)/6;


h - шаг.
Похоже на правду?
А что делать с t?

 
 
 
 Re: Метод Рунге - Кутта (Применим ли в данном случае?)
Сообщение07.12.2012, 20:21 
silas в сообщении #655607 писал(а):
Похоже на правду?

Не-зна-ю. Сама программа крайне неразумно составлена. Следует отделять мух от котлет; в данном случае: процедуру реализации метода Рунге-Кутты ваще от процедуры реализации правой части конкретного дифура. В противном (очень противном) случае программа становится нечитабельной мало того что для постороннего читателя, но и для Вас самого.

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

 
 
 [ Сообщений: 18 ]  На страницу 1, 2  След.


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