Limiting "y" output of ODE solvers
조회 수: 1 (최근 30일)
이전 댓글 표시
I am currently running an ODE solver in the form
dy = @(t,y) M*y;
[tout,y_out] = ode45(dy, trange,yinit);
% y_out is a length(trange) by length(yinit) matrix
range_needed = [1:10,100:105]; %for example
y_needed = y_out(:,range_needed);
Essentially I only actually "want" a section of y_out but doing it this way fills lots of the memory with values I don't actually need. Edit: To clarify I want all the time values in trange not some limited value, what I want to limit in the output is the size in the other direction, let us call it the "spatial" direction.
I could use an output function to process the ODE output and only select this bit but the one I have written isn't very good. Is there any way to do what I can do this the ode45 options? Failing that is there a function anyone knows that does this on the FEX?
댓글 수: 0
답변 (1개)
Torsten
2016년 4월 29일
You can exactly specify the times when you want ode45 to provide the solution in "trange".
Best wishes
Torsten.
참고 항목
카테고리
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!