Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/88: Рейтинг темы: голосов - 88, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 16

Метод Рунге-Кутты для решения системы ОДУ

10.12.2013, 10:06. Показов 18061. Ответов 27
Метки faq+ (Все метки)

Студворк — интернет-сервис помощи студентам
4 дня сижу и пытаюсь понять этот метод(
Миниатюры
Метод Рунге-Кутты для решения системы ОДУ  
Вложения
Тип файла: rar 915-25.rar (852 байт, 109 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2013, 10:06
Ответы с готовыми решениями:

Метод Рунге-Кутты для решения системы ОДУ
Не могу преобразовать систему в уравнения первого порядка. Помогите пожалуйста . Добавлено через 9 часов 33 минуты Система ОДУ: ...

ОДУ Рунге-Кутты
function =two(f,y0,a,b,eps) % f - имя функции системы % y0 - начальные условия % a,b - интервал времени % eps - точность h =...

ОДУ методом Рунге-Кутты
y"-4y`+ 5y = 3x y(0)=1.48 y`(0)=3.6 Точн. значение e^2x(cosx+sinx)+3x/5+12/25 Помогите пожалуйсто решить методом Рунге-Кутты

27
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
10.12.2013, 20:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Svetl123 Посмотреть сообщение
Но вот видео с этой анимации не пойму как делать
в этом сообщении: https://www.cyberforum.ru/post3985757.html
под спойлером есть команда, которая создает видео
0
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 16
10.12.2013, 23:04  [ТС]
Цитата Сообщение от Зосима Посмотреть сообщение
в этом сообщении: https://www.cyberforum.ru/post3985757.html
под спойлером есть команда, которая создает видео
Не додумался как через movie2avi, сделал через videowriter
Мне нужно сделать таблицу с погрешностями между этим решением и ode45
Посоветуешь может какую ф-ю для облегчения создания таблицы?
Или придется все в ручную?
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
11.12.2013, 13:28
Табличку нарисовать сложнее чем сделать видео но вся загвоздка в том, что в ode шаг выбирается автоматически и он не постоянный, поэтому количество точек ручного и автоматического решений будет разным....
А! не, массив времени можно задать в ode:
Matlab M
1
2
3
4
5
6
7
8
clear, clc
 
y0 = [0 0.1 0.1];
[T,U] = three('one',y0,0,10,80);
[t v] = ode45('one',T,y0);
d = abs(U-v);
disp('       T        X         Y         Z         dX        dY        dZ')
disp([T U d])
0
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 16
11.12.2013, 15:20  [ТС]
Спасибо, друГ) Ноя уже сделал так с утра додумался) хы)
у меня вопросец я переработал код в апостериорный но с вайлом мучаюсь не continue не break не берет) как быть не знаю)
Два часа назад защитил работу )
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 [T U]=two(f,y0,a,b,M)
% f - имя функции системы
% y0 - начальные условия
% a,b - интервал времени
% M - кол-во точек разбиения
h = (b-a)/M;
U = zeros(M+1,length(y0));
T = (a:h:b)';
U(1,:) = y0;
eps = 0.01;
for j=1:M 
    while(1)
    k1=h*feval(f,T(j), U(j,:) )';
    k2=h*feval(f,T(j)+h/2, U(j,:)+k1/2)';
    k3=h*feval(f,T(j)+h/2, U(j,:)+k2/2)';
    k4=h*feval(f,T(j)+h, U(j,:)+k3)';
    D = U(j,:) + (k1+2*k2+2*k3+k4)/6 ;
    h=h/2;
    k1=h*feval(f,T(j), U(j,:) )';
    k2=h*feval(f,T(j)+h/2, U(j,:)+k1/2)';
    k3=h*feval(f,T(j)+h/2, U(j,:)+k2/2)';
    k4=h*feval(f,T(j)+h, U(j,:)+k3)';
    D1 = U(j,:) + (k1+2*k2+2*k3+k4)/6 ;
    if max(abs(D-D1)) > eps;
        h=h/2;
    continue
    else
        T(j+1) = T(j) + h;
        U(j+1,:) = D;
    end
    end
    h = 2*h;
end
end
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
11.12.2013, 16:03
Svetl123, ну а где ты в своей програмке задаешь точность eps ?

Добавлено через 5 минут
ой не заметил...

Добавлено через 10 минут
Вот, причесал:
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
function [T U]=two(f,y0,a,b,eps)
% f - имя функции системы
% y0 - начальные условия
% a,b - интервал времени
% eps - точность
h = (b-a)/50; % начальное приближение шага
T(1) = a;
U(1,:) = y0(:)' ;
j = 1;
while T(end)<=b
    k1=h*feval(f,T(j), U(j,:) )';
    k2=h*feval(f,T(j)+h/2, U(j,:)+k1/2)';
    k3=h*feval(f,T(j)+h/2, U(j,:)+k2/2)';
    k4=h*feval(f,T(j)+h, U(j,:)+k3)';
    D = U(j,:) + (k1+2*k2+2*k3+k4)/6 ;
    h=h/2; 
    k1=h*feval(f,T(j), U(j,:) )';
    k2=h*feval(f,T(j)+h/2, U(j,:)+k1/2)';
    k3=h*feval(f,T(j)+h/2, U(j,:)+k2/2)';
    k4=h*feval(f,T(j)+h, U(j,:)+k3)';
    D1 = U(j,:) + (k1+2*k2+2*k3+k4)/6 ;
    if max(abs(D-D1)) > eps; % если точность не достигнута
        h=h/2; % уменьшаем шаг
        continue
    else
        T(j+1) = T(j) + h;
        U(j+1,:) = D;
        h = 2*h;
        j = j+1;
    end
end
end
и вызов
Matlab M
1
2
3
4
5
6
7
8
clear, clc
 
y0 = [0 0.1 0.1];
[T,U] = three('one',y0,0,10,80);
[t v] = two('one',y0,0,10,0.01);
plot3(U(:,1), U(:,2), U(:,3),'r',...
    v(:,1),v(:,2),v(:,3),'b')
grid on
0
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 16
11.12.2013, 16:34  [ТС]
Matlab M
1
2
3
4
5
6
7
8
clear, clc
 
y0 = [0 0.1 0.1];
[T,U] = three('one',y0,0,10,80);
[t v] = two('one',y0,0,10,0.01);
plot3(U(:,1), U(:,2), U(:,3),'r',...
    v(:,1),v(:,2),v(:,3),'b')
grid on
файла-ф-ии three(это у меня запускающий файл так называется главный т.е) у мну точно нет а если делать так то графики не содятся:
Matlab M
1
2
3
4
5
clear, clc
[T,U] = two('one',[0 0.1 0.1],0,10,0.01);
[t v] = ode45('one',[0 10],[0 0.1 0.1]);
plot3(U(:,1), U(:,2), U(:,3),'r',v(:,1), v(:,2), v(:,3),'bo')
grid on
Миниатюры
Метод Рунге-Кутты для решения системы ОДУ  
0
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 16
11.12.2013, 17:39  [ТС]
Хотя все я разобрался)
Спасибо, тебе)
Меня Никита кстати звать, на будущее, надеюсь увидимся)
В вк все ранво не отвечаешь)
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
12.12.2013, 18:29
Svetl123, молоток!

Не по теме:

в вк я заглядываю часто, но не всегда отвечаю :pardon:

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.12.2013, 18:29

ОДУ методом Рунге-Кутты
(2(x^2)+x)y&quot;+(2x+2)y`- y = 1/x y(a)=5 y`(a)=-25 Уже всю голову сломал(

Нужно сделать задачу в Matlab из готового решения в Mathcad. Используется метод Рунге-Кутты с фиксированным шагом
Используется метод Рунге-Кутты с фиксированным шагом.

ОДУ 4-ого порядка методом Рунге-Кутты
Есть неоднородное дифференциальное уравнение 4-ого порядка. как свести его к системе уравнений 1-ого порядка, что бы можно было применить...

Решить систему ОДУ методом Рунге-Кутты 4-5-го порядка
Решить заданную систему обыкновенных дифференциальных уравнений (ОДУ) методом Рунге -Кутты 4-5-го порядка. Для этого использовать...

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


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru