Есть функция, полученная в результате численного решения дифуравнения. Но я не могу получить даже значение этой функции в точке, не говоря уже о том, чтобы посчитать от неё функционал (что мне в конечном итоге нужно). Пробовал разные варианты - ни один не работает.
Вот код, который решает дифуравнение:
Код:
T = 10
q = -1
Fx[x_, y_] = q * x / (x^2 + y ^ 2)^(3 / 2)
Fy[x_, y_] = q * y / (x^2 + y ^ 2)^(3 / 2)
s = NDSolve[{
x''[t] == Fx[x[t], y[t]],
y''[t] == Fy[x[t], y[t]],
x[0] == -5,
y[0] == 1,
x'[0] == 1,
y'[0] == -0.6
},
{x, y},
{t, 0, T}
]
ParametricPlot[Evaluate[ {x[t], y[t]} /. s], {t, 0, T}, Frame -> True, ImageSize -> Large]
Вот я пытаюсь получить значение x[t] в трёх точках:
Код:
xt = x[t] /. s
xt[0]
xt[1]
xt[2]
Получаю ответ:
Код:
{InterpolatingFunction[{{0.,10.}},<>][t]}
{InterpolatingFunction[{{0.,10.}},<>][t]}[0]
{InterpolatingFunction[{{0.,10.}},<>][t]}[1]
{InterpolatingFunction[{{0.,10.}},<>][t]}[2]
Как получить числа - непонятно.