|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.12.2011, 18:32 | #1 | |
Форумчанин
Регистрация: 30.01.2011
Сообщений: 231
|
Решение ОДУ методом Рунге-Кутты
Не силён в диффурах, поэтому прошу вашей помощи.
Есть уравнение, которое необходимо решить методом Рунге-Кутты. y'=y-2x/y y(0)=1 h=0.2 - Это мои исходные данные. На википедии написано как решаются такие уравнения, но я не могу понять некоторые моменты: Код:
1. Нужно ли производить какие-либо предварительные расчеты с моим уравнением?Если нужно, то какие? 2. Цитата:
3.А что такое этот индекс n? Откуда он берётся? -------------------------------------------------------- Я надеюсь что кто-нибудь поможет мне разобраться, не хочется тупо у кого-нибудь списывать.
Злостный анимешнег =^.^=
|
|
02.12.2011, 19:28 | #2 |
Пользователь
Регистрация: 03.07.2011
Сообщений: 92
|
А ты ничего из условия не выпустил?
Решала такую же задачу, только в MathCad. Должен быть, по идее, отрезок a<=x<=b, на котором ты решаешь задачу Коши. 1. Расчетов никаких производить не нужно. Посоветовала бы только сделать присвоения y0=y(0), x0=a. 2. Шаг влияет на рассчеты. С помощью шага ты получаешь сетку x. Сетка - это таблица, дискретный набор значений x. Сразу отвечу, что такое n. n - количество разбиений, которое получается, когда делишь отрезок [a,b]. Все получаем просто: n=(b-a)/h i=1,2...n x=a+i*h в самой программе пишешь цикл for по переменной i, i<n, i++, вв которым сперва находишь коэффициенты k1, k2, k3, k4, а потом yn+1. Перед этим перед циклом говоришь, что при i=1 xi=x0, yi=y0. Последний раз редактировалось No_Comments; 02.12.2011 в 19:32. |
02.12.2011, 20:19 | #3 |
Форумчанин
Регистрация: 30.01.2011
Сообщений: 231
|
No_Comments, Блин! Спасибо Вам, прояснили для меня множество непонятных моментов! Сейчас попробую сделать, надеюсь что вопросов у меня больше не появится.
Злостный анимешнег =^.^=
|
02.12.2011, 21:49 | #4 |
Форумчанин
Регистрация: 30.01.2011
Сообщений: 231
|
А что делать после того, как получил массив y'ов?
Злостный анимешнег =^.^=
|
02.12.2011, 22:24 | #5 | |
Очень суровый
Участник клуба
Регистрация: 17.12.2009
Сообщений: 1,988
|
Цитата:
Ненавижу быть как все, но люблю, чтобы все были как я.
|
|
02.12.2011, 22:34 | #6 |
Форумчанин
Регистрация: 30.01.2011
Сообщений: 231
|
Вроде написал я программу, но только мне кажется, что я где-то намудрил. Всё ли правильно я сделал?
Вот код: Код:
Код:
Злостный анимешнег =^.^=
|
03.12.2011, 00:20 | #7 |
Форумчанин
Регистрация: 30.01.2011
Сообщений: 231
|
Методом эйлера получился тот же результат, ну что ж, у меня 2 варианта, либо всё верно, либо всё не верно = )
Злостный анимешнег =^.^=
|
03.12.2011, 14:24 | #8 |
Пользователь
Регистрация: 03.07.2011
Сообщений: 92
|
Немного не понятно, зачем вы в цикле каждый раз объявляете double k1,k2,k3,k4;
можно объявить эти переменные ранее. я бы предложила написать так: Код:
не пугайтесь формулы x[i+1]=x[i]+h. Она делает тоже самое, что и x[i]=a+h*i. Различие их в том, что первая находит х на i-ой итерации через предыдущий х, т.е. на итерации i-1, а вторая формула позволяет найти х на i-ой итерации независимо от предыдущего х, а через левую границу интервала и шаг. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Метод Рунге-Кутты | smbd2011 | Общие вопросы C/C++ | 5 | 16.09.2011 23:14 |
Метод Рунге-Кутты | smbd2011 | Помощь студентам | 0 | 16.09.2011 20:43 |
Численное решение систем ДУ методом Рунге-Кутта | Анет | Помощь студентам | 12 | 14.06.2011 17:06 |
вычматы, задача Коши для ОДУ, методы Рунге-Кутты | TdS | Помощь студентам | 0 | 02.01.2011 17:56 |
Метод Рунге Кутты и Эйлера | Nikolai17 | Помощь студентам | 1 | 20.05.2010 11:42 |