I want to solve the Fokker-Planck Equation which is used to describe the evolution of orbital dynamics, but I got an error like
NDSolveValue::litarg: To avoid possible ambiguity, the arguments of the dependent variable in p[t,{Subscript[r, 1],Subscript[r, 2],Subscript[r, 3],Subscript[v, 1],Subscript[v, 2],Subscript[v, 3]}] should literally match the independent variables.
Main source code is given as below:
tmin = 0;
tmax = 60;
x =
{Subscript[r, 1], Subscript[r, 2], Subscript[r, 3],
Subscript[v, 1], Subscript[v, 2], Subscript[v,3]};
pdf0 = 1/(8 π^3 Sqrt[Det[Σ]])Exp[-(1/2) (x - M).Inverse[Σ].(x - M) ];
sol =
NDSolveValue[
{D[p[t, x], {t}] == LFP[x, p[t, x]], p[0, x] == pdf0},
p[t, x],
{t, tmin, tmax},
{x[[1]], -∞, ∞}, {x[[2]], -∞, ∞},
{x[[3]], -∞, ∞}, {x[[4]], -∞, ∞},
{x[[5]], -∞, ∞}, {x[[6]], -∞, ∞}]
Note that x is a 6x1 vector. Σ is a 6x6 covariance matrix and M is a 6x1 real vector. As you can see, pdf0 is the PDF of MultiGaussian distribution. LFP is a differential operator. I guess this operator is correctly defined since I have tested it with values. There are two questions:
- How to express the partial differential equation with vectorised form?
- How to express the natural boundary?
pa vector valued function?) – george2079 Dec 17 '16 at 14:19p[t,Sequence@x]all four places. – george2079 Dec 18 '16 at 13:42LFPif that doesnt fix it. – george2079 Dec 18 '16 at 13:53D[p,x[[i]]]insideLFPbecausexwill have numeric value there, but that is not related to the error in the question. – george2079 Dec 19 '16 at 12:33p[t,Sequence@@x]. The idea being you unknown function is a function with 7 arguments, not two arguments with one argument a list. – george2079 Dec 19 '16 at 20:52Σ,M,LFP? – xzczd Dec 22 '16 at 10:50