В общем, математика всегда предполагает самый общий случай, то есть, если я устанавливаю функцию
a[s_]:={a1[s],a2[s],a3[s]}
и хочу вычислить ее норму Norm [a [s]]
, например, она вернет:
Sqrt[Abs[a1[s]]^2 + Abs[a2[s]]^2 + Abs[a3[s]]^2]
Однако, если я знаю, что все ai [s]
реальны, я могу вызвать:
Assuming[{a1[s], a2[s], a3[s]} \[Element] Reals, Simplify[Norm[a[s]]]]
, который вернет:
Sqrt[a1[s]^2 + a2[s]^2 + a3[s]^2]
Что я и ожидал.
Проблема возникает при попытке, например, вывести a [s]
, а затем (обратите внимание на D
):
Assuming[{a1[s], a2[s], a3[s]} \[Element] Reals, Simplify[Norm[D[a[s],s]]]]
Снова возвращает результат с абсолютными значениями, полученный из предположение, что числа могут быть мнимыми.
Как решить эту проблему? Я хочу определить функцию с действительным знаком и работать с ней как с таковой. То есть, например, я хочу, чтобы его производные были реальными.