Simulation of Equation Set Equal to Zero
2 次查看(过去 30 天)
显示 更早的评论
I'm trying to run simulations on the following equation:
Second-dervative(x) + gamma * x^2 * derivative(x) - alpha * derivative(x) + omega^2 * x = 0
Gamma, alpha, and omega are constants that I plug in and vary to see changes in the function.
From my understanding, the second derivative of a variable to the power of 1 (i.e. X^1) is always 0, and the first derivative is always 1.
If I plug in 1 for Gamma, alpha and Omega, I end up with this equation.
0 + 1.*(x.^2) * 1 - 1.*1 + 1^2 .* x
My question is, how do I simulate this equation, equal to zero? Here's the code I am working with.
% Set paramaters.
xo = 0;
x = [xo];
t = [0];
x0 = [-1, 0, 1 ];
% Simulate
[t,x] = ode23(@fx, [0 10], x0);
plot (t,x,"LineWidth",2)
xlabel("t")
ylabel("x")
xlim = [0 10];
ylim = [0 10];
function xdot = fx(t,x)
xdot = 0 + 1.*(x.^2) * 1 - 1.*1 + 1^2 .* x;
end
Is this the right way to do it? I feel like I'm missing something.
2 个评论
采纳的回答
Sam Chak
2021-12-10
Looks like the Van der Pol oscillator.
clear all; clc
tspan = 0:0.001:10;
y0 = [1; 0];
[t, y] = ode45(@(t,y) [y(2); y(2) - ((y(1)).^2).*y(2) - y(1)], tspan, y0);
plot(t, y)
plot(y(:, 1), y(:, 2))
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Particle & Nuclear Physics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!