I'm trying to take ode45 output and adjust it so the independent variable (time in this instance) has consistent increments e.g. make the step sizes 1 second instead of being all over the place as they are. What I have so far is that I know there an intersection calculator so I was thinking I could use a loop to place a line at each second mark and figure the intersection from that. Doing so is a really round about and messy way; I don't like it. I want to perform this incrementization post-solve so that I don't damage my solution. Is there an effecient way of doing this?

 採用された回答

Steven Lord
Steven Lord 2019 年 6 月 24 日

0 投票

You could specify the tspan input to the ODE solver as 0:yourEndingTime. If you do this the solver will return the value of the solution at the specified times. [Internally it will use whatever timesteps it needs to solve the problem to the appropriate precision, but it will then return the value of the solution at those time steps.]
If you do need to solve this after solving with a tspan input that consists of just the starting and ending time, pass the solution structure returned by the ODE solver into deval.

1 件のコメント

Z Yerby
Z Yerby 2019 年 6 月 24 日
編集済み: Z Yerby 2019 年 6 月 24 日
So for example, if I wanted to produce a solution at every second of a minute I would have tspan = 0:1:60?
I didn't know about the deval function though. That certainly will come in handy.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

タグ

質問済み:

2019 年 6 月 24 日

編集済み:

2019 年 6 月 24 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by