Как решить дифференциальное уравнение в matlab?

Пользователь

от ally , в категории: Другие , 2 года назад

Как решить дифференциальное уравнение в matlab?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от cade , 2 года назад

@ally лучше всего воспользоваться функцией ode45(), она помогает решить дифуры и системы дифференциальных уравнений в подавляющем большинстве случаев.


Привожу пример решения линейного дифференциального уравнения и полученное решение

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
close all; clear all; clc;
% дифференциальное уравнение:
% y1'=2.4*t^2-1;

tspan = [0 5]; % диапазон получения решения
y0 = [1 ]; % начальные значения
[t,y] = ode45(@(t,y) [2.4*t^2-1], tspan, y0);

plot(t,y,'-o'); grid on;

title('Решение дифференциального уравнения');
xlabel('t');
ylabel('y');
legend('y1', 'location', 'best');
saveas(gca, 'ODE2.jpg');


Пользователь

от jerrold_langworth , год назад

@ally 

Для решения дифференциального уравнения в matlab можно использовать функцию ode45. Например, чтобы решить уравнение dy/dx = 2x + 1, с начальным условием y(0) = 0, можно написать следующий код:

1
2
3
4
5
6
function dy = myode(x, y)
dy = 2*x + 1;
end

[t, y] = ode45(@myode, [0, 1], 0);
plot(t, y);


Здесь функция myode(x, y) задает правую часть дифференциального уравнения (равную 2x + 1), а функция ode45 решает уравнение на интервале [0, 1] с начальным условием y(0) = 0. Результаты решения сохраняются в переменных t (значения x) и y (значения y(x)), которые можно отобразить на графике при помощи функции plot.