Variable precision arithmetic in ode45 and others?

조회 수: 9 (최근 30일)
Michael Croucher
Michael Croucher 2020년 10월 29일
댓글: Walter Roberson 2022년 6월 23일
Is it possible to use vpa in ordinary differential equation solvers like ode45?

채택된 답변

Walter Roberson
Walter Roberson 2020년 10월 29일
편집: Walter Roberson 2020년 10월 30일
Sort of. The internal symbolic engine has two numeric ode routines. At the moment I do not know if there is a matlab level interface to those routines.
You might need to use feval(symengine) to access the routines.
  댓글 수: 9
FastCar
FastCar 2022년 6월 23일
Any luck?
Walter Roberson
Walter Roberson 2022년 6월 23일
Mathworks said that those routines are gone and will not be back.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

John D'Errico
John D'Errico 2020년 10월 29일
Short answer - no.
Long answer - nnnnoooooo.
ODE45 uses only singles or doubles. Nothing symbolic. vpa is a symbolic tool.
  댓글 수: 2
Michael Croucher
Michael Croucher 2020년 10월 29일
Thanks John. I thought as much but wanted to check.
John D'Errico
John D'Errico 2020년 10월 29일
I suppose it may happen one day. For example, vpaintegral appeared a few years ago. They could provide a tool to do the same for an ODE. But I don't see it happening soon.

댓글을 달려면 로그인하십시오.


Steven Lord
Steven Lord 2020년 10월 30일
What types of differential equations are you trying to solve that you need to use arbitrary precision arithmetic?
If you're trying to solve the ODE symbolically rather than numerically, take a look at the dsolve function in Symbolic Math Toolbox.
If you have computed a symbolic equation for the right-hand side of your system of ODEs, you can convert that into a form that the numeric ODE solvers in MATLAB (like ode45) can accept that operates on double arrays using odeFunction also in Symbolic Math Toolbox.
This documentation page may be of interest.

카테고리

Help CenterFile Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by