R中是否有符号ODE解算器?(ODE=常微分方程)
问题:R中是否有符号ODE解算器?(ODE=) 恐怕没有。。。但让我从专家那里证实 例如,解决:R中是否有符号ODE解算器?(ODE=常微分方程),r,differential-equations,R,Differential Equations,问题:R中是否有符号ODE解算器?(ODE=) 恐怕没有。。。但让我从专家那里证实 例如,解决: > (5x-6)^2 y' = 5(5x-6) y - 2 这里:y-未知函数,y-其导数 (用手很容易解决:y=1/(5(5x-6))+C*(5x-6),但我想从R中得到答案) 我所知道的: 1)有数字(非符号)解算器: 我知道有像library(deSolve)这样的数值ODE解算器, 请参见此处的答案: 2)有一些符号包:(但它们似乎不包含ODE解算器) 在R类中有一些符号包 请参
> (5x-6)^2 y' = 5(5x-6) y - 2
这里:y-未知函数,y-其导数
(用手很容易解决:y=1/(5(5x-6))+C*(5x-6),但我想从R中得到答案)
我所知道的: 1)有数字(非符号)解算器: 我知道有像library(deSolve)这样的数值ODE解算器, 请参见此处的答案: 2)有一些符号包:(但它们似乎不包含ODE解算器) 在R类中有一些符号包 请参见Ryacas和rSymPy以及基数R中的一些基本符号计算,请参见: 3)R的各种微分方程解算器的简要概述:
但是,我无法找到sumbolic ODE解算器(((我已经尝试过了
Ryacas
,事实上,你可以不用做太多的工作就获得一些简单颂歌的象征性解决方案。不幸的是,YACAS无法为你的示例颂歌找到解决方案。但是,根据你正在探索的颂歌,这可能仍然有用。如果没有,我很乐意删除这篇文章。
作为一个简单的例子,让我们考虑下面的颂歌:<代码> y′+y=0 < /代码>:
library(Ryacas);
Ryacas
只是YACAS的一个接口,我们可以使用YACAS的OdeSolve
来解决ODE问题
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)
当我们使用我不确定是否使用偏导数,但请尝试:
?D
…deriv是一个具有默认值和公式方法的通用函数。它返回一个用于计算表达式及其(部分)的调用同时使用导数。它使用所谓的算法导数。如果function.arg是一个函数,它的参数可以有默认值,请参见下面的fx示例。@TonyHellmuth感谢您的评论,但我不太明白……您能提供任何详细信息吗?如果我的问题不清楚,让我再说一句:I需要找到一个常微分方程的解……你最好的办法是找到一个好的C++库,然后使用<代码> RCPP < /COD>将它挂在RI上,而不知道符号的ODE求解器。R一个解决办法可能是调用类似的东西。你列出了代码> RSAMYRY 。谢谢你的回答!