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

2 views (last 30 days)
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!

Answers (2)

Torsten
Torsten on 7 Jun 2024
Edited: Torsten on 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 on 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')

Categories

Find more on Systems of Nonlinear Equations in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!