英文:
How to implement noise processes for RODE in Julia?
问题
du/dt = [W[1] + W[2]]*u(t)
其中,W[1] 是一个随机复值高斯场,W[2] 是一个实数噪声项。
我认为 RODEProblemSolver 可以解决这样的问题。
function f(du, u, p, t, W)
du .= u * (W[1] + W[2])
end
prob = RODEProblem(f, u0, tspan, p)
sol = solve(prob, RandomEM(), dt=dt)
我需要先定义 W,因为我不想使用高斯白噪声(默认值)。而且我也找不到 DiffEqNoiseProcess 库中所需的过程。我需要如何正确定义 W?
对于我的第二个问题:
如何存储 W[1] 并让 RODE 为固定的 W[1] 和不同的 W[2] 生成不同的解决方案?
英文:
I'm trying to implement a RODE in Julia:
du/dt = [W[1] + W[2]]*u(t)
where W[1] is a random compex valued Gaussian field and W[2] is a real noise term.
I think the RODEProblemsolver can solve such problems
function f(du, u, p, t, W)
du .= u * (W[1] + W[2])
end
prob = RODEProblem(f, u0, tspan, p)
sol = solve(prob, RandomEM(), dt = dt )
I have to define W first, because I do not want Gaussian white noise (default).
I also cannot find the desired process in the DiffEqNoiseProcess library.
What do I need to define W propertly?
My second question for the problem:
How can I store W[1] and let RODE generate different solutions for fixed W[1] and varying W[2]?
答案1
得分: 2
> 我需要如何正确定义 W?
这取决于情况。您可以使用此处描述的 AbstractNoiseProcess
类型之一:
https://docs.sciml.ai/DiffEqNoiseProcess/stable/abstract_noise_processes/
例如,如果最佳方式是通过一组值来描述您的噪声,那么请使用 NoiseGrid
。或者如果通过函数 f(W,t)
来描述噪声,则可以使用 NoiseFunction
。等等。当您有了噪声过程后,只需将它传递给 prob = RODEProblem(f, u0, tspan, p, noise = mynoiseprocess)
。
> 我对这个问题的第二个问题是:如何存储 W[1] 并让 RODE 生成固定 W[1] 和不同 W[2] 的解决方案?
最简单的方法可能是使用 NoiseFunction
,具体取决于如何生成 W[2]。
英文:
> What do I need to define W properly?
It depends. You can use one of the AbstractNoiseProcess
types described here:
https://docs.sciml.ai/DiffEqNoiseProcess/stable/abstract_noise_processes/
For example, if the best way to describe your noise is by a grid of values, then use NoiseGrid
. Or with a function f(W,t)
then use NoiseFunction
. Etc. And when you have the noise process, just pass it in prob = RODEProblem(f, u0, tspan, p, noise = mynoiseprocess)
> My second question for the problem: How can I store W[1] and let RODE generate different solutions for fixed W[1] and varying W[2]?
Easiest way to do this might be with NoiseFunction
, depending on the way W[2] is generated.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论