Интегрирование в MATLAB
Функция int()Численные методы интегрирования
1. Метод трапеций (Trapezoidal Rule)примеры
Решение с использованием пользовательский функций
Задача 3: Найти скорость при x = 2Алгоритм решения:
function dydx = eqn3(x,y)
% y(1) - координата x
% y(2) - скорость v
F = 10/(1+2*x);
m = 10;
dydx = [y(2); F/m];
end
% Начальные условия
y0 = [0; 8]; % [x0; v0]
x_span = [0 2]; % интервал интегрирования по x
% Решаем дифференциальное уравнение
[x,y] = ode45(@eqn3, x_span, y0);
% Выводим результат
v_final = y(end,2)
Задача 4: Найти время достижения v = 7
Дано:
F = 5exp(v/11)
m = 44 кг
t0 = 0 с
v0 = 2 м/с
Найти t при v = 7 м/с
% eqn4.m
function dydt = eqn4(t,y)
F = 5*exp(y/11);
m = 44;
dydt = F/m;
end
function [value,isterminal,direction] = event_func(t,y)
value = y - 7; % событие когда y = 7
isterminal = 1; % останавливаем интегрирование
direction = 0; % любое пересечение
end
options = odeset('Events',@event_func);
y0 = 2;
[t,y,te,ye,ie] = ode45(@eqn4, [0 100], y0, options);
time_to_reach = te
Задача 5: Найти x при v = 3
Дано:
F = 5v/(8+v)
m = 12 кг
x0 = 0 м
v0 = 2 м/с
Найти x при v = 3 м/с
% eqn5.m
function dydx = eqn5(x,y)
% y(1) - координата x
% y(2) - скорость v
F = 5*y(2)/(8+y(2));
m = 12;
dydx = [y(2); F/m];
end
% Начальные условия
y0 = [0; 2]; % x0 = 0, v0 = 2
x_span = [0 10]; % предполагаемый интервал
% Решаем систему уравнений
[x,y] = ode45(@eqn5, x_span, y0);
% Находим x при v = 3
idx = find(y(:,2) >= 3, 1);
x_at_v3 = x(idx)