问题:R 中有符号 ODE 求解器吗? (常微分方程 =常微分方程 https://en.wikipedia.org/wiki/Ordinary_differential_equation)
恐怕没有......但让我向专家确认......
例如,求解:
> (5x-6)^2 y' = 5(5x-6) y - 2
这里: y - 未知函数,y' - 其导数
(很容易用手解决: y = 1/(5(5x-6)) + C* (5x-6) ,但我想从 R 得到答案)。
我知道的:
1)有数值(非符号)求解器:
我知道有数值 ODE 求解器,例如库(deSolve),
请参阅此处的答案:R语言能否求一阶微分方程的泛解? https://stackoverflow.com/questions/50229410/can-r-language-find-a-generic-solution-of-the-first-order-differential-equation/50230098?noredirect=1#comment87478037_50230098
2)有符号包:(但它们似乎不包含 ODE 求解器)
R 中有一些符号包,例如
参见 Ryacas 和 rSymPy 以及基 R 中的一些基本符号计算,参见:https://stats.stackexchange.com/questions/4775/symbolic-computation-in-r/4778 https://stats.stackexchange.com/questions/4775/symbolic-computation-in-r/4778
3) R 的各种微分方程求解器的简要概述:
https://cran.r-project.org/web/views/DifferentialEquations.html https://cran.r-project.org/web/views/DifferentialEquations.html
但是我无法找到求和 ODE 求解器 (((
我玩过Ryacas
,事实上,您无需做太多工作就可以获得一些简单 ODE 的符号解。不幸的是,YACAS 未能为您的示例 ODE 找到解决方案。但是,根据您正在探索的 ODE,这可能仍然有用。如果没有,我很乐意删除这篇文章。
作为最初的简单示例,我们考虑以下 ODE:y'' + y = 0
:
-
加载库
library(Ryacas);
-
Since Ryacas
只是YACAS的一个接口,我们可以使用YACAS'OdeSolve
求解常微分方程
yacas("OdeSolve( y\'\' + y == 0 )")
#expression(C70 * exp(x * complex_cartesian(0, -1)) + C74 * exp(x *
# complex_cartesian(0, 1)))
这给出了正确的解决方案const * exp(- ix) + const * exp(+ ix)
.
-
不幸的是,当使用您的特定示例时,OdeSolve
未能找到解决方案:
yacas("OdeSolve( y\'\' == (5 * (5 * x - 6) * y - 2) / (5 * x - 6)^2 )")
#expression(y(2) - (5 * ((5 * x - 6) * y(0)) - 2)/(5 * x - 6)^2)
当我们使用YACAS在线演示 http://www.yacas.org/yacas_online/yacas_online.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)