Initial Step ODE45 not working
조회 수: 1 (최근 30일)
이전 댓글 표시
I am using an ode45 with options but my time vector still doesn't have the 1st step as I defined. I should have t=[0 5 15 25 35...] But I have t=[0 10 20 30...]
tspan=[1 10000]
options = odeset('NormControl','on','RelTol',simul.RelTol,'AbsTol',simul.AbsTol,'InitialStep',5,'Refine',1,'stats','off','MaxStep',MaxStp,'OutputFcn',@IntegrationFcn);
[ t , y ] = ode45( @dy , tspan , y_0 , options );
댓글 수: 2
채택된 답변
Walter Roberson
2018년 10월 21일
When you pass in a tspan that has two elements then ode45 will automatically pick times to evaluate at as needed to maintain accuracy.
You can pass a vector of times instead. ode45 will output for those times. It will continue to evaluate at whichever points it wants to maintain accuracy, but it will calculate for the times given and report only for those.
댓글 수: 2
Walter Roberson
2018년 10월 21일
Right. But you would want tspan starting from zero in most conditions, as the first element of tspan tells it the time at which the boundary conditions apply. So for example,
tspan = [0 5 10:10:10000];
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!