科学計算における複雑な算術演算の危険性


11

複素内積二つの異なる定義が規則によって決定した:ˉ U Tの VまたはU T ˉ V。BLASで、cdotu、zdotu、およびcdotc、zdotcのルーチンを見つけました。前の2つのルーチンは実際にu T v(偽の内積!)を計算し、最後の2つのルーチンは内積の最初のベクトルを共役させます。また、いずれかの定義によって(共役U又はV)、U V = ¯ V U u,vu¯TvuTv¯uTvuvu,v=v,u¯活用して!さらに、コメントで指摘されているように、多値の複雑な関数の主要な値を選択することは、慣習に依存する可能性があります。

私の質問は次のとおりです。この複雑さは科学計算での複雑な算術演算の使用に対して真の危険を引き起こしますか?この問題は、複素数を常に実部と虚部に分割し、実算のみを使用することを提案するdeal.iiの著者によって強調されています。しかし、分割アプローチが便利だとは思いませんでした。たとえば、時間調和マックスウェル方程式のPMLについて考えます。

FreeFem ++およびlibmeshを除くほとんどのオープンソースFEMソフトウェアでは、複素数を使用することの心配が一般的であるようです。ただし、2つの例外についても、複雑な算術演算は実際よりもテストされていません。

私の最後の質問は、複素数の使用を常に避けなければならないのかということです。


3
1ii

@hardmathありがとうございます!質問に追加しました。
ホイ張

@hardmath:「テスト例の小さなセット」-線形代数演算を包括的に実装するほとんどのライブラリでは、内積がとられる場所が数十または数百になる可能性があります。その正確性を検証するには数百のテストが必要であり、正しく実装するには数か月かかる可能性があります。もちろん、それは不可能ではなく、一部のライブラリはそれを行っています。それは多くの作業であり、すべてのライブラリ作成者が正しいと確信しているわけではありません:
Wolfgang Bangerth

@WolfgangBangerth、多分あなたはdeal.iiの設計決定を説明できますか?
ビル・バルト

3
常に複素数の使用を避けるべきでしょうか?お願いします たとえば、すべての計算科学者は非対称固有値分解が必要だと思います。
フェデリコポロニ

回答:


2

複雑な算術の問題は、実際の場合の1つの方法と比較して、複雑なベクトルのスカラー積を定義する方法が異なるということです。複素スカラー積の実際の問題は別の問題であると思いますが、それはあなたの観測と密接に関係しています。

複素数演算では、スカラー積の引数の順序は重要ですが、実際の演算では重要ではありません。多くのアルゴリズムは、複雑で実際の演算でも基本的に同じです。つまり、一度書くだけで、複雑で実際の演算に同じコードを使用するだけで済みます。(たとえば、C ++では、この目的でテンプレートを使用できます。)コードの記述が完了したら、通常はテストします。一部のスカラー積の引数の順序の間違いを発見するには、複素数値のテストケースでコードをテストする必要があります。

多くの場合、複雑な値の問題に対する有効なコードがある場合、アルゴリズムの実値のコードを無料で入手できます。複雑な値のテストケースを使用してコードをテストすると、多くの場合、コードは実数に対しても正確になります。ただし、実数値のコードを複雑なものにするには、追加の作業が必要です。したがって、複雑な値の問題よりも実際の値の方が適切に機能する(そして徹底的にテストされている)コードがさらに多くあります。

私の質問は次のとおりです。この複雑さは科学計算で複雑な算術演算を使用する真の危険を引き起こしますか?

次のように「はい」と言います。コードが複雑な値の問題について十分にテストされていない場合、コードにバグが発生する可能性が高くなりますが、これは見ている具体的なコードによって異なります。コードが十分にテストされていれば、問題はありません。

私の最後の質問は、複素数の使用を常に避けなければならないのかということです。

すでに指摘したように、実数では解決できない問題があります。たとえば、非対称行列の固有値の計算。したがって、複雑な算術演算が必要です。


-1

このペーパーは関連しています:

初等の複雑な関数の分岐カット、または何の兆候もありません。

http://people.freebsd.org/~das/kahan86branch.pdf


5
SciCompへようこそ!おそらく、リンクした論文が関連する理由についてもっと説明できますか?要約はあなたの答えをより価値のあるものにし、支持される可能性が高くなります。十分なコンテキストのないリンクを追加する回答は、思いとどまる傾向があります。
ジェフオックスベリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.