linear 1st order ODEs sytem with time-dependent coefficients solver
古いコメントを表示
I need to solve many times the following ODEs system:
F'(t) = A(t)*F(t) + B(t)*U(t)
F(0) = F0
where matrices A(t), B(t) and vector control function U(t) contains time-dependent coefficients or functions, which are represented in my case by discrete time-series (fixed sampling period ~ 1sec, 1e3-1e5 samples). Typical dimension of problem is ~ 2 - 6.
Proper interpolation (smooth and fast enough) of discrete time-series is the crucial requirement.
This ODEs systems will be solved many times (~ 1e2-1e4 times) for different A(t),B(t), U(t) and F0 , so solver should be fast enough + parallelizеd (multithreaded).
The MATLAB offers a set of generic ODE solvers, but I am looking for a specific problem solver (linear 1st order ODEs system with time-dependent coefficients), which will be fast and reliable. So far I found only one solver - LDE.
My questions are:
- Is there any other special solver (implemented in MATLAB) suitable to solve my specific problem effectively and reliably?
- Is there any reason to expect, that some special solver would be better than standard MATLAB ODE solvers in my specific problem?
- Is there any suitable or recomended strategy how to solve this specific problem?
12 件のコメント
Paul
2023 年 7 月 21 日
Is there any insight as to how A(t), B(t), and U(t) should behave between times n*T and (n+1)*T ?
Paul
2023 年 7 月 21 日
Is linear interpolation between the samples of A(t), B(t), and U(t) considered to be "proper"?
Michal
2023 年 7 月 21 日
Paul
2023 年 7 月 21 日
I did. I interpreted "up to the 1st derivative" as meaning the functions A(t) etc. are continuous, but their first derivatives might not be. Perhaps I misundertood and that means the first derivatives are also continuous but the second derivatives might not be. But the basic question still stands, which is that if a solver like (if not excactly) ode45 is going to be used, what should the solver assume to evaluate A(t) et., al. at all values of t, not just at the sample times defined by the sampling period?
Star Strider
2023 年 7 月 27 日
@Michal —
Don’t worry — I won’t deign to respond to any of your future posts. Being insulted once is more than enough. (Single-trial learning.)
Michal
2023 年 7 月 27 日
Star Strider
2023 年 7 月 27 日
It was obvious that my answer did not solve your problem, so I deleted it. (with very rare exceptions, I delete my answers that are not accepted or that I believe are not likely to be accepted.) You had a comment that included a citation, so before deleting my answer, I moved that comment to a comment to your original question (I checked to be certain that it had been moved before deleting my answer), although it now seems to have disappeared.
Michal
2023 年 7 月 27 日
Bjorn Gustavsson
2023 年 8 月 3 日
I recall reading the answers to this question and gaining some insight to this type of problem. Now, what remains is nothing more than the cold ashes. That's a pity.
採用された回答
その他の回答 (1 件)
5 件のコメント
Paul
2023 年 7 月 25 日
As I understand it, all of the examples in LDE used closed form expressions for the differential equations. But in your problem you only have the A(t), B(t) and U(t) as discrete time series at a fixed sampling period. How did you use those discrete time series to implement the D and C functions for lde?
Michal
2023 年 7 月 25 日
Paul
2023 年 7 月 25 日
I'm not familiar with the term "proper interpolation." Is "proper interpolation" a specfic way to interpolate between time samples?
Michal
2023 年 7 月 25 日
Paul
2023 年 7 月 25 日
Yes, I've read your question, comments, and answer. Which interpolation method did you use in the anonymous function handles input to LDE? Just asking out of curiosity at this point because it seems you have a satisfactory answer to your question.
カテゴリ
ヘルプ センター および File Exchange で Configure Simulation Conditions についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!