問題タブ [numerical-computing]

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.

0 投票する
0 に答える
109 参照

javascript - Javascriptの計算エラー(単純計算での数値エラー)

解決済み:

読んだ:

  1. 浮動小数点演算は壊れていますか?
  2. JavaScriptで浮動小数点数の精度を処理するには?

JavaScript 処理環境を取得して、次のように入力するだけです。

簡単な計算ですが、正しい結果が得られないようです (「150.30 + 150.03」などと書いても問題ありません)。

結果は 300.33000000000004 になります。

理由はありますか?

PS: スタック オーバーフローとウィキペディアの両方で、有限の精度による間違った計算計算に関する記事をいくつか読みましたが、私のケースに関連するものは何もありませんでした。

0 投票する
1 に答える
4397 参照

python - Pythonで2D配列の臨界点を見つけるにはどうすればよいですか?

(960,960) 配列があり、極値を見つけることができるように臨界点を見つけようとしています。

np.diff と np.gradient を使用してみましたが、問題が発生し、どの関数を使用すればよいかわかりません。

np.diff は 2 次差分を計算するオプションを提供しますが、勾配はそうではありません。

クリティカルポイントを取得するにはどうすればよいですか?

私はもう試した

ここで問題が発生します。これは、dxx に沿った値の一部がゼロに等しいためです。

次に、次のオプションがあります

しかし、これは私が探しているものを私に与えるでしょうか?

0 投票する
1 に答える
188 参照

wolfram-mathematica - 片端圧力インパルス、波動方程式

Mathematica を使用して表題の問題を数値的に解こうとしていますが、役に立ちません。長さ L の棒を想像してください。棒の音速は c です。幅が L/c に匹敵するガウス形状の圧力インパルスが一端に適用されます。ロッド内の粒子変位関数 u(t,x) を解きたいと思います。Mathematica コードは次のとおりです。

問題は、プログラムが何も出力せずに数分間実行し続けることです。問題が単純であること (つまり、解析解が存在すること) を考えると、数値解に到達するためのより迅速な方法があるはずです。誰かが私にいくつかの提案をしてくれませんか?

0 投票する
2 に答える
212 参照

c++ - Fortran COMPLEX の計算は C++ とは異なります

Fortran から C++ への移植を完了しましたが、COMPLEX 型にいくつかの違いがあることを発見しました。次のコードを検討してください。

そしてC++:

C++ バージョンを clang++ または g++ でコンパイルすると、次の出力が得られます: -0.256561150444368 ただし、Fortran バージョンをコンパイルすると、-0.25656115049876993 が得られます。

つまり、どちらの言語も IEEE 754 に従っているのではないですか? Octave(Matlab)で次を実行すると:

C++ バージョンと同じ結果が得られます。Fortran の COMPLEX 型はどうなっていますか? いくつかのコンパイラ フラグがありませんか? -ffast-math は何も変更しません。C++ と Fortran でまったく同じ 15 の 10 進数を生成したいので、移植の違いを簡単に見つけることができます。

Fortran の専門家はいますか? ありがとう!

0 投票する
1 に答える
1837 参照

matlab - Matlab は方程式の数値解を出力しません (代わりに ``Rootof some polynomials'' を出力します)

Matlab2014b 環境で次の方程式を数値的に解こうとしていますが、matlab は数値解を出力せず、代わりに次のように出力します。

一方、Wolframath で方程式を解くのは問題ありません。何が問題の原因なのか疑問に思っています。方程式には複雑な解があることに注意する価値があるかもしれませんが、私は0と1の間の解にしか興味がありません.

0 投票する
5 に答える
7890 参照

performance - Project Euler #5 の解決で Elixir が Ruby と Go の中で最も遅いのはなぜですか?

更新: Elixir は遅くはありません。私のアルゴリズムはそうでした。私のアルゴリズムは、リンゴとリンゴの比較でさえありませんでした。Ruby と Go の同等のアルゴリズムについては、以下の Roman の回答を参照してください。また、José のおかげで、MIX_ENV=prod というプレフィックスを付けるだけで、遅いアルゴリズムを大幅に高速化できます。質問の統計を更新しました。

元の質問: 言語の生産性と速度を確認するためだけに、複数の言語で Project Euler の問題に取り組んでいます。問題 5では、1 から 20 までのすべての数で割り切れる最小の正の数を見つけるように求められます。

ソリューションを複数の言語で実装しました。統計は次のとおりです。

  1. 1.4.2 に行く: 0.58 秒
  2. Ruby 2.2 MRI : 6.7 秒
  3. Elixir 1.0.5 (私の最初のアルゴリズム): 57 秒
  4. Elixir 1.0.5 (MIX_ENV=prod プレフィックスを使用した最初のアルゴリズム): 7.4 秒
  5. Elixir 1.0.5 (Roman's Go と同等のアルゴリズム) : 0.7 秒
  6. Elixir 1.0.5 (Roman's Ruby と同等のアルゴリズム) : 1.8 秒

Elixir のパフォーマンスが遅いのはなぜですか? すべての言語で同じ最適化を使用してみました。警告: 私は FP と Elixir の初心者です。

Elixir のパフォーマンスを改善するためにできることはありますか? より良い解決策を見つけるためにプロファイリング ツールを使用した場合は、それらを回答に含めていただけますか?

囲碁:

ルビーの場合:

エリクサーでは:

0 投票する
1 に答える
830 参照

mesh - Pythonを使用してパイプの中心線を見つける

現在、パイプを通るフローのコードを Python で書いています。この点に関して、Nastran メッシュ (座標にアクセスできる 3 つまたは 4 つのエッジを持つセル) によって定義された 3D パイプ ジオメトリを通過する中心線を見つける必要があります。Python で pyNastran モジュールを使用して、関連するすべてのデータと関数を取得しています。私の質問は、パイプの中心線を見つける最も効率的な方法は何でしょうか. パイプは、全方向に曲がった 3D パイプです。(私は配列内のメッシュ上のすべての単一点のすべての座標を持っています)