И я пятак вставлю.
Assumptions = F1[r, t] Reals;но это как-то не помогло.
Вот так сработало (нужно было дополнительно попросить упростить):
Assuming[F1[r, t] \[Element] Reals && F2[r, t] \[Element] Reals, Simplify@Conjugate[F1[r, t] + I F2[r, t]]]
Объявление
Element[{F1[r, t]}, Reals] говорит о том, что
F1[r, t] полагается действительным. Из этого машина не может сделать вывод ни о том, что
F1[x, y] действителен, ни даже о том, что
F1[2, 3] действителен, поскольку
r и
t (могут быть) несвязанные буквы. Опасно так писать, можно незаметить перехода к другим обозначениям, где всё поламается. Лучше писать
Element[{F1[___], F2[___]}, Reals] или
Element[{_F1, _F2}, Reals].
Вот так работает:
Код:
fi = F1[r, t] + I F2[r, t];
Conjugate[fi] // ComplexExpand
Комадна
ComplexExpand пытается упростить выражение, предполагая, что все переменные имеют действительные значения.
Этот подход самый лёгкий, но работает, только если функции на момент вызова
ComplexExpand являются неопределёнными (свободными буквами) или если они не содержат комплекснозначных членов. В противном случае есть вероятность выстрелить в ногу.
Можно определить новую команду: cj[x_]:=ComplexExpand@Conjugate[x]
Хорошая идея. Надо будет попробовать. Но вот все-таки звездочка (:conj:) в тексте выглядит как-то приятнее. Но вроде бы есть какие-то команды позволяющие зарезервированные Математикой обозначения переделывать под свои нужды. Если не ошибаюсь, это команда
Unprotect[].
Один из способов — создать собственный контекст, в котором переопределить звёздочку. Тогда и конфликта не будет с другими пакетами, и можно будет переключаться между двумя контекстами.
Ещё нужно посмотреть, что предлагает
sithif.