Plot differential equations with respect to two variables in a 3d plane

3 visualizaciones (últimos 30 días)
I have a system of three differential equations and coded as follows.
I have a seperate function "first_term.m" to create the first part of the equation and another function "second_term.m" to create the second part. And then there is another function "add_RHS.m" to combine both these terms and pass it to ModelRHS(t,x,param).
Here's my add_RHS.m function that defines model equations.
if some condition > 0
dxdt(j) = dxdt(j) + first_term ;
end
if some condition < 0
dxdt(j) = dxdt(j) + second_term ;
end
Both these first and second terms consist of and . I need to plot vs vs in a 3D plane. Can someone plese suggest a way to do this? Simulation for this system of differential equations is given below.
editparams; %file that contains parameters
Tend = 100;
Nt = 100;
% Define RHS functions
RHS = @(t,x)RHS(t,x,param);
%Execution-----------------------------------------------------------------
x0 = [0.004, 0.05, 0.1]; %Initial condition
t = linspace(0,Tend,Nt); %TSPAN
[t, A] = ode45(RHS, t, x0);

Respuesta aceptada

Davide Masiello
Davide Masiello el 26 de Abr. de 2022
Editada: Davide Masiello el 26 de Abr. de 2022
  24 comentarios
Torsten
Torsten el 28 de Abr. de 2022
Looks better, but maybe you could scale dy3 by a factor of 10000.
UserCJ
UserCJ el 28 de Abr. de 2022
Thanks @Torsten. Yes, I did. It took so long to get in here!

Iniciar sesión para comentar.

Más respuestas (1)

Bruno Luong
Bruno Luong el 27 de Abr. de 2022
Editada: Bruno Luong el 27 de Abr. de 2022
Try this (adapt to your code):
%editparams; %file that contains parameters
Tend = 10;
Nt = 100;
% Define RHS functions
RHS = @(t,x) sin(t).*x.^2;
%Execution-----------------------------------------------------------------
x0 = rand; %Initial condition
t = linspace(0,Tend,Nt); %TSPAN
[t, x] = ode45(RHS, t, x0);
close all
tgrid = t;
Nx = 60;
xgrid = linspace(min(x),max(x),Nx);
[T,X] = meshgrid(tgrid,xgrid);
DXDT = RHS(T,X);
surf(tgrid,xgrid,DXDT);
hold on
dxdt = RHS(t,x);
plot3(t,x,dxdt,'r','Linewidth',3);
  6 comentarios
Torsten
Torsten el 27 de Abr. de 2022
It won't work in your case since you solve for 3 unknown functions, not 1 as in Bruno's example code.
Bruno Luong
Bruno Luong el 27 de Abr. de 2022
Editada: Bruno Luong el 27 de Abr. de 2022
In reply to your code
editparams
if some type of edge
if another type of edge
introduce parameters
addRHS
I would said modify my code to
Do something with your RHS to compute DXDT correctly

Iniciar sesión para comentar.

Categorías

Más información sobre Help and Support en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by