問題タブ [complex-numbers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaでの離散フーリエ変換(FFTではない)
私はJavaでCSEクラスの割り当てを行っており、FFTと直接DFT(行列計算を使用)を実装しています。FFTは正常に機能しますが、直接DFTが機能しません。私のフーリエ行列は正しい値で出てこないので、それがユーザーエラーであるかどうか、または問題が代わりに使用しているComplexクラス(org.apache.commons.math.complex)にあるかどうかを知りたいです。そのような主流のクラスでは、それは単なるユーザーエラーだと思います。誰かがそれを指摘できれば、それは素晴らしいことです。
私のフーリエ行列の計算は次のように機能します。
デバッグの目的でいくつかの項目を変数に引き出していますが、コードはすべて私の理解から機能するはずです。
ただし、上記のコードは、長さ4のベクトルの場合、次の行列を生成します。
どんな助けでも大歓迎です。
python - Pythonに高精度の複素数用のライブラリはありますか?
Pythonに高精度の複素数用のライブラリはありますか?
c++ - C ++で複素数を使用する方法は?
C++コードで複素変数を書く方法を教えてください。
私は別々の実数部psi_rlと虚数部psi_imを持っています。ここで、psi = psi_rl +ipsi_imと記述する必要があります。このタスクを実行する方法を知っていますか?
ありがとう。
matlab - matlab 画像処理エラー
matlab で画像のフーリエ変換を見つけようとしています。ライブラリ関数の hep なしでこれを行っています。コードは次のとおりです。
このプログラムをコンパイルすると、次のエラーが発生します。
a=imread('lena128','bmp') の代わりに a=rand(1,128) を使用すると、そのエラーは発生しません。オンラインで検索したところ、同様の問題が見つかりました。しかし、解決策はありません。誰かが私のためにエラーを指摘できますか?
wolfram-mathematica - Mathematica で複雑な関数をプロットする
sage でcomplex_plotの動作をコピーする Mathematica グラフィックスを作成するにはどうすればよいですか? すなわち
... 1 つの変数の複素関数を取り、以下に示すように、指定された xrange と yrange で関数の出力をプロットします。出力の大きさは明るさで示され (ゼロは黒、無限大は白)、引数は色相で表されます (赤は正の実数で、引数が大きくなるにつれてオレンジ、黄色、... と増加します)。 .
絶対値の等高線を重ねたゼータ関数の例 ( Neutral Driftsの M. Hampton から盗んだもの) を次に示します。
Mathematica のドキュメンテーション ページFunctions Of Complex Variablesでは、複雑な関数を使用して視覚化し、「潜在的にフェーズごとに色付けする」ことができると書かれていContourPlot
ますDensityPlot
。しかし、問題は両方のタイプのプロットにあり、ColorFunction
その点の等高線または密度に等しい単一の変数しかとらないため、絶対値をプロットするときにフェーズ/引数に色を付けることは不可能に思えます。Plot3D
これは、 3 つのパラメータすべて(x,y,z)
が に渡される場所の問題ではないことに注意してくださいColorFunction
。
Plot3D docsの「きれいな例」など、複雑な関数を視覚化する方法が他にもあることは知っていますが、それは私が望むものではありません。
また、以下に1 つの解決策がありますContourPlot
(Wikipedia で使用されているグラフィックスを生成するために実際に使用されています) が、かなり低レベルの関数を定義しており、またはのような高レベルの関数で可能であると思いますDensityPlot
。これは、より低いレベルの構造を使用するお気に入りのアプローチを提供することを妨げるものではありません!
編集: Mathematica ジャーナルに Michael Trott による素晴らしい記事がいくつかありました:
Visualizing Riemann surface of algebraic functions , IIa , IIb , IIc , IId .
リーマン面の視覚化デモ.
リーマン曲面の復活 (Mma v6 の更新)
もちろん、Michael Trott はMathematica のガイド ブックを書きました。これには多くの美しいグラフィックが含まれていますが、加速された Mathematica のリリース スケジュールに遅れをとっているようです!
python - インターリーブされたNumPy整数配列をcomplex64に変換する最速の方法は何ですか?
実数と虚数の整数がインターリーブされた受信データのストリームがあります。これらを complex64 値に変換することは、私のプログラムで最も遅い操作です。これは私の現在のアプローチです:
C 拡張を作成したり、cython のようなものを使用したりせずに、もっとうまくやることはできますか? 改善できない場合、これらのようなテクノロジを使用する最も簡単なアプローチは何ですか?
iphone - iOS -- 複素数の実装
この質問のフォローアップとして:
Apple の複素数サポートを使用して電卓アプリを実装している最中に、そのサポートを使用して計算すると次のようになることに気付きました。
(1+i)^2=1.2246063538223773e-16 + 2i
もちろん、正しい単位は (1+i)^2=2i です。これは、より一般的な現象の具体的な例です。丸め誤差は、ゼロであるはずの部分をわずかにゼロ以外の値に丸める場合、非常に厄介です。
これに対処する方法についての提案はありますか? 他の方法で複素数の整数べき乗を実装することもできますが、一般的な問題は残り、私のソリューション自体が他の矛盾を引き起こす可能性があります。
c# - このフーリエ変換の実装の何が問題になっていますか
離散フーリエ変換を実装しようとしていますが、機能していません。おそらくどこかにバグを書いたと思いますが、まだ見つけていません。
次の式に基づきます。
この関数は最初のループを実行し、X0-Xn-1..をループします。
そして実際の計算では、おそらくこれがバグの場所です。
次に、残りのコードの説明:
var sign = reverse ? 1.0: -1.0;
逆DFTは引数に含まれませんが-1
、通常のDFTは-1
引数に含まれます。
var argument = sign*2.0*Math.PI*k/data.Length;
アルゴリズムの引数です。この部分:
その後、最後の部分
transformed += data[i]*Complex.FromPolarCoordinates(1, argument*i);
アルゴリズムを注意深くコピーしたと思うので、どこで間違いを犯したのかわかりません...
追加情報
Adam Grittが彼の回答で示したように、AForge.netによるこのアルゴリズムの優れた実装があります。コードをコピーするだけで、おそらく30秒でこの問題を解決できます。しかし、私は自分の実装で何を間違えたのかまだわかりません。
私は自分の欠陥がどこにあるのか、そして私が間違って解釈したものに本当に興味があります。
c++ - std::transform と tr1::bind を使用して std::complex のベクトルを変換する
std::complex の std::vector が与えられた場合、複素数の実部のみを含むベクトルに変換し、一定の係数で除算したいと思います。今、私はそれをします:
これはもちろん問題なく動作しますが、 std::transform を使用して同じことを行う方法を探しています。私は試した:
しかし、それはうまくいきません。このエラーがあります:
「未解決のオーバーロードされた関数型」がある理由がわかりません。
誰かが私に何が悪いのか説明してもらえますか?
c - C99:複素数の虚数部を負のゼロにすることができます
C99複素数floatの虚数部に負のゼロを格納することは可能ですか?
符号付き虚数部を使用して複素定数を静的に初期化するにはどうすればよいですか?
小さな例がありますが、なぜa
、c
同じで、なぜ-std=c99
結果が変わるのか理解できません。
C99-TC3およびgccマニュアルからの引用を歓迎します。
C99(n1256.pdf)にもhttp://www.knosof.co.uk/cbook/にも関連するものが見つかりません