Confusion on event function
古いコメントを表示
Hi all, I want to incorporate an event into my ode45 code. The event is that every time the value y reaches 1 (initial condition 0) it should stop integrating and must restart from zero. I will share the code I have written below. Looks fine, but I am not able to understand how it works. Actually where did I set the event in this code? (I was just imitating a code given in the documentation). If it works for N=1, I need to generalise it for large number of systems. Will that be possible?
N=1;
m=0.3;
%Initial values
ystart=zeros(N,1);
options = odeset('Events',@SpikeEvents,'RelTol',1e-5,'AbsTol',1e-4);
%ODE solver
[t,y,te,ye,ie]=ode45(@ELIF,tspan,ystart,options);
%Plotting
plot(t,y)
xlabel('time')
ylabel('voltage')
title('Leaky IF with spike reset')
%Defining event
%Defining event
function [value,isterminal,direction] = SpikeEvents(t,y)
value = y(1);
isterminal = 1; % Stop the integration
direction = 1;
end
%Defining the system of equations
function dydt=ELIF(t,y,m)
N=1;
m=0.3;
dydt=zeros(N,1);
for i=1:N
dydt(i)=-y(i)+m; %The model equation
end
end
採用された回答
その他の回答 (1 件)
Vipin Padinjarath
2018 年 10 月 30 日
1 投票
12 件のコメント
Walter Roberson
2018 年 10 月 30 日
No, just use the last element of your current tspan variable, the point where you would want to end anyhow.
Vipin Padinjarath
2018 年 10 月 30 日
Vipin Padinjarath
2018 年 11 月 14 日
Vipin Padinjarath
2018 年 12 月 3 日
編集済み: Vipin Padinjarath
2018 年 12 月 3 日
Walter Roberson
2018 年 12 月 3 日
編集済み: Walter Roberson
2018 年 12 月 3 日
why loop to N and have the if? Why not loop to N-1 ?
You would not even need to loop just vectorize.
Walter Roberson
2018 年 12 月 3 日
value = y - 1;
would appear to provide testing for all of the systems .
Vipin Padinjarath
2018 年 12 月 3 日
Vipin Padinjarath
2018 年 12 月 3 日
Walter Roberson
2018 年 12 月 3 日
no loop just
value = y - 1;
Vipin Padinjarath
2018 年 12 月 7 日
Walter Roberson
2018 年 12 月 8 日
編集済み: Walter Roberson
2018 年 12 月 12 日
y-1
if you want to test all of the y values at the same time which is what I have interpreted your question about simultaneous systems to be .
Vipin Padinjarath
2018 年 12 月 12 日
カテゴリ
ヘルプ センター および File Exchange で Programming についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!