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类中有一些符号包 请参

问题: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类中有一些符号包 请参见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 。谢谢你的回答!