2016-11-14 44 views

回答

2

你的方程time reversible,也就是说,你可以改变你的微分方程,使它们在时间上向后运动吗?最典型的情况是这意味着逆转渐变的标志。例如,对于速率为r(梯度为x = r*x)的简单指数增长模型,翻转该符号将使梯度为-r*x,并生成指数衰减而不是指数增长。

如果是这样,你所要做的就是用你的最终条件作为你的初始条件,改变渐变的符号,你就完成了。

我最初误读你的问题,因为你知道都是的最初和最终条件。这种类型的问题被称为boundary value problem,并需要从标准(更基本)initial-value problems单独的一类数值算法。

library(sos) 
findFn("{boundary value problem}") 

告诉我们,上有几个CRAN R封装(bvpSolve看起来最有前途)为解决这类问题。

0

给定一个微分方程

y'(t)=F(t,y(t)) 

在其中y(tf)=yf被给定为初始状态的间隔[t0,tf],可以通过考虑

x(s) = y(tf - s) 
==> x'(s) = - y'(tf-s) = - F(tf-s, y(tf-s)) 
    x'(s) = - F(tf-s, x(s)) 

现在

x(0) = x0 = yf. 
变换此成标准形式

This shou ld很容易使用包装函数进行编码,最后一些列表反转从xy


有些ODE求解器还允许负的步长,使人们可以简单地给时间的y按降序tf建设t0不使用一些中介x

相关问题