如何用Mathematica中的随机系数求解线性微分方程

时间:2012-07-16 00:10:41

标签: random wolfram-mathematica differential-equations stochastic

我有一个差异系统,如

dx / dt = A x(t)+ B y(t)

dy / dt = C x(t)+ D y(t)

其中A,B,C和D是实常数。现在我需要探索系统的行为,如果A,而不是一个常数,是一个在给定范围之间均匀分布的随机数。我只需要定性检查。我没有关于随机积分的背景知识,因此我不知道这实际上是否与Ito积分有关(这个问题https://mathematica.stackexchange.com/questions/3141/how-can-you-compute-it-integrals-with-mathematica)。无论如何,我不知道如何解决这个微分方程。

任何指导都非常感谢。

1 个答案:

答案 0 :(得分:1)

解决系统的标准方法是

FullSimplify[ 
        DSolve[{y'[t] == a x[t] + b y[t], x'[t] == c x[t] + d y[t]}, {y, x}, t]]

现在,当{a,b,c,d}是随机参数时,您应该考虑要探索什么。

修改

也许你想要这样的东西:

s = FullSimplify[
     DSolve[{y'[t] == #[[1]] x[t] + #[[2]] y[t], x'[t] == #[[3]] x[t] + #[[4]] y[t], 
            x[0] == 1, y[0] == 1}, {y, x}, t]] & /@ RandomReal[{-1, 1}, {30, 4}];

ParametricPlot[Evaluate[{x[t], y[t]} /. s[[All, 1]]], {t, 0, 1}]

enter image description here