Matlab tool to plot 3d phase portrait
显示 更早的评论
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?
采纳的回答
更多回答(1 个)
Steven Lord
2024-5-12
0 个投票
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 个评论
@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
2024-5-12
编辑:Shreshtha Chaturvedi
2024-5-12
类别
在 帮助中心 和 File Exchange 中查找有关 Numerical Integration and Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


