Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Решение системы дифференциальных уравнений
СообщениеДобавлено: 19 янв 2017, 10:17 
Не в сети
Начинающий
Зарегистрирован:
19 янв 2017, 09:56
Сообщений: 3
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Добрый день. Уже несколько дней пытаюсь решить систему диф.уравнений. Но пока безуспешно.
Чтобы сильно не захламлять тему я привел описание системы в файле.
Там же свое решение методом рунге-кутты.

Прошу проверить правильность моих рассуждений и ткнуть меня носом в ошибку. Спасибо.

На форум не прикрепляет документ поэтому выкладываю через гуглдиск.
https://drive.google.com/open?id=0B6a9xcxFxSO8bnFXbWZ1VTlMWXc

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Решение системы дифференциальных уравнений
СообщениеДобавлено: 19 янв 2017, 11:50 
Не в сети
Последняя инстанция
Зарегистрирован:
08 апр 2015, 12:21
Сообщений: 7576
Cпасибо сказано: 231
Спасибо получено:
2755 раз в 2543 сообщениях
Очков репутации: 473

Добавить очки репутацииУменьшить очки репутации
А чему у Вас равняется kq1?

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Решение системы дифференциальных уравнений
СообщениеДобавлено: 19 янв 2017, 12:24 
Не в сети
Начинающий
Зарегистрирован:
19 янв 2017, 09:56
Сообщений: 3
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Это я ошибся при составлении документа. Я из кода просто менял индексы.
Вот правильный вариант:

k1 = f1(x0, y0, z0, c0);
q1 = f2(x0, y0, c0);
p1 = f3(x0, y0, c0);

k2 = f1((x0 + h / 2.0), (y0 + h * k1 / 2.0), (z0 + h * q1 / 2.0), (c0 + h * p1 / 2.0));
q2 = f2((x0 + h / 2.0), (y0 + h * k1 / 2.0), (c0 + h * p1 / 2.0));
p2 = f3((x0 + h / 2.0), (y0 + h * k1 / 2.0), (c0 + h * p1 / 2.0));

k3 = f1((x0 + h / 2.0), (y0 + h * k2 / 2.0), (z0 + h * q2 / 2.0), (c0 + h * p2 / 2.0));
q3 = f2((x0 + h / 2.0), (y0 + h * k2 / 2.0), (c0 + h * p2 / 2.0));
p3 = f3((x0 + h / 2.0), (y0 + h * k2 / 2.0), (c0 + h * p2 / 2.0));

k4 = f1((x0 + h), (y0 + h * k3), (z0 + h * q3), (c0 + h * p3));
q4 = f2((x0 + h), (y0 + h * k3), (c0 + h * p3));
p4 = f3((x0 + h), (y0 + h * k3), (c0 + h * p3));

y = y0 + h * (k1 + 2.0 * k2 + 2.0 * k3 + k4) / 6.0;
z = z0 + h * (q1 + 2.0 * q2 + 2.0 * q3 + q4) / 6.0;
c = c0 + h * (p1 + 2.0 * p2 + 2.0 * p3 + p4) / 6.0;

y0 = y;
z0 = z;
c0 = c;
x0 = x0+h


k1 = 56272.633607426171
q1 = 0;
p1 = -0.039240000000000004;


Я в целом с привидением формул не ошибся?? Чисто математический ход решения.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Решение системы дифференциальных уравнений
СообщениеДобавлено: 19 янв 2017, 13:12 
Не в сети
Последняя инстанция
Зарегистрирован:
08 апр 2015, 12:21
Сообщений: 7576
Cпасибо сказано: 231
Спасибо получено:
2755 раз в 2543 сообщениях
Очков репутации: 473

Добавить очки репутацииУменьшить очки репутации
Судя по тому, что систему разносит уже после первой итерации, ошибка в коде, а не в формулах Рунге-Кутта. Советую Вам самим код проверить на соответствие формулам алгоритма. Можно в Интернете найти тестовые примеры для проверки значений всех переменных, занятых в алгоритме на первой. второй итерациях с заданным шагом интегрирования

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Решение системы дифференциальных уравнений
СообщениеДобавлено: 25 янв 2017, 09:28 
Не в сети
Начинающий
Зарегистрирован:
19 янв 2017, 09:56
Сообщений: 3
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Код проверил. Ошибки исправил. Но все равно значение вроде бы и похожи но все равно очень сильно расходятся с решением в маткаде.

Ввел в систему все 4 уравнения:
Вот так теперь выглядит решение:

kq1 = f1(t, Vb0, Hb0, Thetabr0);
q1 = f2(t, Vb0, Thetabr0);
p1 = f3(t, Vb0, Thetabr0);
r1 = f4(t, Vb0, Thetabr0);

kq2 = f1((t + h / 2.0), (Vb0 + h * kq1 / 2.0), (Hb0 + h * q1 / 2.0), (Thetabr0 + h * p1 / 2.0));
q2 = f2((t + h / 2.0), (Vb0 + h * kq1 / 2.0), (Thetabr0 + h * p1 / 2.0));
p2 = f3((t + h / 2.0), (Vb0 + h * kq1 / 2.0), (Thetabr0 + h * p1 / 2.0));
r2 = f4((t + h / 2.0), (Vb0 + h * kq1 / 2.0), (Thetabr0 + h * p1 / 2.0));

kq3 = f1((t + h / 2.0), (Vb0 + h * kq2 / 2.0), (Hb0 + h * q2 / 2.0), (Thetabr0 + h * p2 / 2.0));
q3 = f2((t + h / 2.0), (Vb0 + h * kq2 / 2.0), (Thetabr0 + h * p2 / 2.0));
p3 = f3((t + h / 2.0), (Vb0 + h * kq2 / 2.0), (Thetabr0 + h * p2 / 2.0));
r3 = f4((t + h / 2.0), (Vb0 + h * kq2 / 2.0), (Thetabr0 + h * p2 / 2.0));

kq4 = f1((t + h), (Vb0 + h * kq3), (Hb0 + h * q3), (Thetabr0 + h * p3));
q4 = f2((t + h), (Vb0 + h * kq3), (Thetabr0 + h * p3));
p4 = f3((t + h), (Vb0 + h * kq3), (Thetabr0 + h * p3));
r4 = f4((t + h), (Vb0 + h * kq3), (Thetabr0 + h * p3));

Vb = Vb0 + h * (kq1 + 2.0 * kq2 + 2.0 * kq3 + kq4) / 6.0;
Hb = Hb0 + h * (q1 + 2.0 * q2 + 2.0 * q3 + q4) / 6.0;
Thetab = Thetabr0 + h * (p1 + 2.0 * p2 + 2.0 * p3 + p4) / 6.0;
Xb = Xb0 + h * (r1 + 2.0 * r2 + 2.0 * r3 + r4) / 6.0;

Vb0 = Vb;
Hb0 = Hb;
Thetabr0 = Thetab;
Xb0 = Xb;


Снова прошу помощи в проверке и в решении указанной системы.
Спасибо.

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

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Решение системы дифференциальных уравнений

в форуме Дифференциальные и Интегральные уравнения

BAHO

1

299

09 июн 2016, 17:55

Решение системы дифференциальных уравнений

в форуме Дифференциальные и Интегральные уравнения

Ivan_2587

0

429

27 авг 2014, 07:47

Решение системы обыкновенных дифференциальных уравнений

в форуме MATLAB

leksi

0

378

13 мар 2016, 12:24

Найти общее решение системы дифференциальных уравнений

в форуме Дифференциальные и Интегральные уравнения

Kiryanovth

3

519

14 июн 2017, 19:25

Найти общее решение системы дифференциальных уравнений

в форуме Дифференциальные и Интегральные уравнения

Shamil

2

213

02 апр 2019, 11:45

Системы дифференциальных уравнений

в форуме Дифференциальные и Интегральные уравнения

Akk21q

0

161

23 май 2019, 08:57

Системы дифференциальных уравнений

в форуме Дифференциальные и Интегральные уравнения

KENT

16

546

22 дек 2019, 02:35

Системы дифференциальных уравнений

в форуме Дифференциальные и Интегральные уравнения

351w

2

150

21 дек 2019, 21:00

Найти подход к решению системы дифференциальных уравнений

в форуме Дифференциальные и Интегральные уравнения

dtn888

0

216

19 июл 2020, 11:37

Решение дифференциальных уравнений

в форуме Дифференциальные и Интегральные уравнения

sergey_boreysha

2

268

27 фев 2019, 16:28


Часовой пояс: UTC + 3 часа [ Летнее время ]



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

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


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

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved