【问题标题】:How to solve a linear differential equation with a random coefficient in Mathematica如何在 Mathematica 中求解具有随机系数的线性微分方程
【发布时间】:2012-07-16 00:10:40
【问题描述】:

我有一个类似的差分系统

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)。无论如何,我不知道如何求解这个微分方程。

非常感谢任何指导。

【问题讨论】:

  • 你想“探索”什么?
  • 如何修改配置空间中的轨迹(y(t) 与 x(t))(对于给定的初始条件)。

标签: random wolfram-mathematica differential-equations stochastic


【解决方案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}]

【讨论】:

  • 嗯,我明白了,这基本上是给系数一个值(从随机分布中得出),然后作为初始情况求解微分方程。但我想改变系数的值作为时间的函数,每次都是一个随机数。我的意思是,A = A(t) = 随机函数。很抱歉从一开始就不清楚。
  • 非常感谢。是的,我会随机散步,你的回答对我进行了很大的帮助。再次感谢!
猜你喜欢
  • 2015-10-10
  • 2019-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
相关资源
最近更新 更多