Filter löschen
Filter löschen

How to solve a system of nonlinear differential equation that follows some pattern

2 Ansichten (letzte 30 Tage)
I have a system of nonlinear differential equation that follows some patter, for example . I could solve for some small n. I want to solve it for . Is there any way to do that or we can tonly type manually. Is it possible to use loops in function environment to solve such cases? Thank you!

Antworten (2)

Torsten
Torsten am 7 Jun. 2024
Bearbeitet: Torsten am 7 Jun. 2024
function dy = fun(t,y)
dy = y.*[y(2:end);y(1)]
end
or a function handle
fun = @(t,y) y.*[y(2:end);y(1)]

Sam Chak
Sam Chak am 7 Jun. 2024
The looping approach is given as follows:
%% for-loop approach
function dx = ode1(t, x, n)
dx = zeros(n, 1);
for i = 1:n-1
dx(i) = x(i)*x(i+1);
end
dx(n) = x(n)*x(1);
end
%% direct equations (for comparison)
function dx = ode2(t, x, n)
dx = zeros(n, 1);
dx(1) = x(1)*x(2);
dx(2) = x(2)*x(3);
dx(3) = x(3)*x(4);
dx(4) = x(4)*x(1);
end
[t, x] = ode45(@(t, x) ode1(t, x, 4), [0 0.2], [1; 2; 3; 4]);
plot(t, x), grid on, xlabel('t')

Kategorien

Mehr zu Numerical Integration and Differential Equations finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by