Комплекс скалярное произведение имеет два различных определений решает условные обозначения : · ¯u T V или ¯u T ° V . В BLAS я нашел подпрограммы cdotu, zdotu и cdotc, zdotc. Первые две подпрограммы фактически вычисляют u T v (поддельное внутреннее произведение!), А последние две подпрограммы сопрягают первый вектор во внутреннем произведении. Кроме того , любой из определения (конъюгат U или V ), ⟨ U , V ⟩ = ¯ ⟨ V , U ⟩с сопряжением! Более того, как указано в комментарии, выбор основных значений для многозначных сложных функций может зависеть от соглашения.
Мой вопрос: вызывает ли это осложнение реальную опасность для использования сложной арифметики в научных вычислениях? Этот вопрос подчеркивается авторами deal.ii, которые предлагают всегда разбивать комплексные числа на вещественную и мнимую части и использовать только действительную арифметику. Но я никогда не находил подход к расщеплению удобным. Например, подумайте о PML для гармонических по времени уравнений Максвелла.
Кажется, что беспокойство по поводу использования комплексных чисел преобладает в большинстве программ FEM с открытым исходным кодом, за исключением FreeFem ++ и libmesh. Но даже для двух исключений сложная арифметика менее проверена, чем действительная.
Мой последний вопрос: будем ли мы всегда избегать использования комплексных чисел?