0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 5
1

Решение системы уравнений методом Рунге-Кутта 4-го порядка

26.04.2017, 03:46. Показов 2208. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Помогите составить код для решения данной системы уравнений.
Миниатюры
Решение системы уравнений методом Рунге-Кутта 4-го порядка  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2017, 03:46
Ответы с готовыми решениями:

Решение системы дифференциальных уравнений Методом Рунге-Кутта 4 порядка
В соседней теме я уже выкладывал решение системы дифф. уравнений через ode23....

Решение системы ДУ 4-го порядка методом Рунге-Кутта
Необходимо решить данную систему методом Рунге-Кутта. Шаг по времени 0.001. Помогите, пожалуйста,...

Реализовать решение системы взаимосвязанных дифференциальных уравнений Т*dy/dt=k*x-y методом Рунге-Кутта
Здравствуйте! помогите пожалуйста! мне нужно в матлабе реализовать решение системы одинаковых...

Решение задачи Коши для системы 2 диф. уравнений методом Рунге-Кутты 4 порядка
Здравствуйте, помогите с написанием это программой, вообще не знаю как писать.

9
Модератор
1646 / 1498 / 497
Регистрация: 13.09.2015
Сообщений: 5,235
26.04.2017, 06:24 2
Raib, загляните в низ страницы, в раздел "Похожие темы".
0
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 5
26.04.2017, 09:13  [ТС] 3
Похожие темы просматривал, но у меня вопрос немного конкретнее. Как записать вектор столбец для моей системы?
0
Эксперт по математике/физике
3389 / 1912 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
26.04.2017, 09:44 4
Не очень понятно что Вы спрашиваете, но наверно так
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
% x1 - x(1)
% x2 - x(2)
% v1 - x(3)
% v2 - x(4)
function y = diffur(t,x)
global m1 m2 c1 c2 N 
 y = zeros(4,1);
 y(1)=x(3);
 y(2)=x(4);
 y(3)=(m1*N-c1*(x(4)-x(3)))/m1;
 y(4)=(m1*N-c2*(x(4)-x(3)))/m2;
end
0
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 5
15.06.2017, 15:48  [ТС] 5
Написал программу, а матлаб не считает, подскажите пожалуйста где ошибка.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
clear
clc
script
global m1 c1 m2 c2 f g A1 A2 O
m1=10;
c1=0.3;
m2=12;
c2=0.15;
f=50;
g=9.8;
A1=1;
A2=2;
O=0.25;
v0=[0 1 0.15 0.3];
[t,y,tfinal]=ode45(@diplom_urdv1,[0 100],v0);
y1=y(:,3);
plot(t,y); 
legend('y1','y2','y3')
grid on
xlabel('время, t');
 
 
 
function dydt = diplom_urdv1(t,y)
global m1 m2 c1 c2 f g A1 A2 O
 dydt = zeros(4,1);
 dydt(1)=y(3);
 dydt(2)=y(4);
 dydt(3)=1/m1*(c1(y(2)-y(1))-f*m1*g*sign(y(3))-A1*cos(O*t));
 dydt(4)=1/m2*(-c2(y(2)-y(1))-f*m2*g*sign(y(4))-A2*cos(O*t));
end
0
Эксперт по математике/физике
3389 / 1912 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
15.06.2017, 16:12 6
Вот Ваша программа в одном файле
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function reshenie
clear all; clc;
%clear
%clc
%script
global m1 c1 m2 c2 f g A1 A2 O
m1=10;
c1=0.3;
m2=12;
c2=0.15;
f=50;
g=9.8;
A1=1;
A2=2;
O=0.25;
v0=[0 1 0.15 0.3];
%[t,y,tfinal]=ode45(@diplom_urdv1,[0 100],v0);
[t,y]=ode45(@diplom_urdv1,[0 0.1],v0);
y1=y(:,3);
plot(t,y); 
legend('y1','y2','y3')
grid on
xlabel('время, t');
end
 
 
function dydt = diplom_urdv1(t,y)
global m1 m2 c1 c2 f g A1 A2 O
dydt = zeros(4,1);
dydt(1)=y(3);
dydt(2)=y(4);
dydt(3)=1/m1*(c1*(y(2)-y(1))-f*m1*g*sign(y(3))-A1*cos(O*t));
dydt(4)=1/m2*(-c2*(y(2)-y(1))-f*m2*g*sign(y(4))-A2*cos(O*t));
end
Однако третье уравнение неустойчивое и решение слишком медленное.
Ваши уравнения гоординально отличаются от уравнений из первого поста.
Почему в 3 и 4 уравнениях y(1) и y(2)? Откуда взяслось sign?
Разберитесь с физикой процессов.
1
5236 / 3564 / 378
Регистрация: 02.04.2012
Сообщений: 6,471
Записей в блоге: 17
15.06.2017, 16:16 7
Raib, после с1 и с2 забыл написать умножение:
...c1*(y(2)-y(1))...
...-c2*(y(2)-y(1))...


Надеюсь ты не забыл, что x1 это y(1), x2 - y(2), x1' - y(3), x2' - y(4) ?

И для начала попробуй взять диапазон времени поменьше, [0 10] например

В результате ты получишь 4 кривые (x1, x2, x1', x2'), а в легенде у тебя только 3 подписи
1
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 5
15.06.2017, 20:20  [ТС] 8
Да отличается, потому что первая запись была не верная. Система уравнений выглядит вот так.
m1*\ddot{x1}-c1*(x2-x1)=f*m1*g*Sign(\dot{x1})+A1*Cos(\theta t) второе такое же только индексы поменяются и один знак..

Добавлено через 3 минуты
а разве y(1) тут не x1', y(2) - x2', y(3) - x1'', y(4) - x2''?
0
5236 / 3564 / 378
Регистрация: 02.04.2012
Сообщений: 6,471
Записей в блоге: 17
15.06.2017, 20:39 9
Цитата Сообщение от Raib Посмотреть сообщение
а разве y(1) тут не x1', y(2) - x2', y(3) - x1'', y(4) - x2''
нет. Входные данные как я написал: x1 - y(1), x2 - y(2), x1' - y(3), x2' - y(4), таким же образом получим и результат решения:
x1 = y(:,1);
x2 = y(:,2);


А результат функции системы, будет так как написал ты: dydt(1) это x1', dydt(2) - x2', dydt(3) - x1'', dydt(4) - x2''
Matlab M
30
31
32
33
dydt(1)=y(3); % x1'
dydt(2)=y(4); % x2'
dydt(3)=1/m1*(c1*(y(2)-y(1))-f*m1*g*sign(y(3))-A1*cos(O*t)); % x1''
dydt(4)=1/m2*(-c2*(y(2)-y(1))-f*m2*g*sign(y(4))-A2*cos(O*t)); % x2''
Но система записана верно.
1
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 5
15.06.2017, 20:51  [ТС] 10
Огромное спасибо, за помощь))
0
15.06.2017, 20:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2017, 20:51
Помогаю со студенческими работами здесь

Метод Рунге-Кутта 4-порядка для системы дифференциальных уравнений
Здравствуйте. Помогите мне, пожалуйста. Дана система дифференциальных уравнений и необходимо решить...

Метод Рунге-Кутта 4-порядка для системы дифференциальных уравнений
Есть система дифференциальных уравнений \frac{dM}{d\xi}=\frac{{R}_{1}-2\xi nМ\Pi}{{R}_{2}}\\...

Решение дифференциального уравнения методом Эйлера и методом Рунге-кутта 4 порядка
Помогите пожалуйста решить уравнение y''-4y'+5y=2x2ex , методом Эйлера и методом Рунге-кутта 4...

Решение ОДУ методом Рунге-Кутта 4го порядка
Решить ду y'=sin(x) методом рунге кутта 4го порядка


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru