How to introduce a constraint and stop condition in ode45 ?
Show older comments
There are two questions. The first question is how to introduce a constraint in ode45 for a variable.
For example, the constraint of y(2) is 0<=y(2)<=2 in the following code,and how to introduce it?

The second question is how to introduce a stop condition in ode45?
For example, how to stop the integration of ode45 at two conditions when y(1)<-1 and y(2)<-2 in the following code?
Please give me help. Thanks.
y10=2;
y20=0;
Y0=[y10,y20];
[t, Y] = ode45(@fun,[0:0.1:20], Y0);
plot(t,Y(:,1),'-o',t,Y(:,2),'-o')
xlabel('Time t');
ylabel('Solution y');
legend('y_1','y_2')
function Dy=fun(t,y)
Dy=zeros(2,1);
Dy(1)=y(2);
Dy(2)=(1-y(1)^2)*y(2)-y(1)
end
Accepted Answer
More Answers (1)
Jan
on 8 Jun 2022
1 vote
Both is done by an event function. There you can check the values of the current trajectory and stop the integration. If the values should be limited only, you restart the integration from the current location setting the corresponding derivative to 0.
Categories
Find more on Ordinary Differential 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!