Matlab tool to plot 3d phase portrait
Mostra commenti meno recenti
I have the following system of differential equations
x' = -alpha0 * x + beta0 * x * y;
y' = alpha1 * y - beta1 * x * y;
z' = -alpha2 * (z - 5.5)^3 - beta2 * x * y;
I wanted to take a look at the phase portrait of this system for various values of the coefficients. Is there an inbuilt matlab tool that can do that?
Risposta accettata
Più risposte (1)
Steven Lord
il 12 Mag 2024
0 voti
Use odeset to set the OutputFcn option to @odephas3. See the ballode or orbitode example files for a demonstration of how to use the OutputFcn option, though I believe those use @odeplot and @odephas2 instead of @odephas3.
3 Commenti
@Steven Lord suggested calling '@odephas3' to generate the 3D phase plot. Is this what you were looking for? The 'quiver3' function is used for plotting a 3D vector field, which can be challenging for humans to visualize when projected on a static 2D plane. However, on your MATLAB machine, you can manually rotate the view using your mouse.
initX = [0 0 0
0 0 1
1 0 0
1 0 1
1 1 0
1 1 1];
tspan = [0 10];
X0 = initX(3,:); % test different initial values
opts = odeset('OutputFcn', @odephas3); % <-- insert this
[t, X] = ode45(@ode, tspan, X0, opts);
%% Differential Equations
function dX = ode(t, X)
dX = zeros(3, 1);
x = X(1);
y = X(2);
z = X(3);
alpha0 = 1;
beta0 = 1;
alpha1 = 1;
beta1 = 1;
alpha2 = 1;
beta2 = 1;
dX(1) = -alpha0 * x + beta0 * x * y;
dX(2) = alpha1 * y - beta1 * x * y;
dX(3) = -alpha2 * (z - 5.5)^3 - beta2 * x * y;
end
Shreshtha Chaturvedi
il 12 Mag 2024
Modificato: Shreshtha Chaturvedi
il 12 Mag 2024
Categorie
Scopri di più su Numerical Integration and Differential Equations in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


