問題タブ [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.
floating-point - 浮動小数点加算と浮動小数点乗算の相対速度は?
10 ~ 20 年前は、乗算と除算を使用せずに加算と減算を使用する数値コードを記述することは価値がありました。良い例は、多項式を直接計算する代わりに、前方差分を使用して多項式曲線を評価することです。
これは今でも当てはまりますか、それとも現代のコンピューター アーキテクチャは、*,/ が +,- よりも何倍も遅くないところまで進歩していますか?
具体的には、ソフトウェアで FP を実行しようとする小さなマイクロではなく、広範なオンボード浮動小数点ハードウェアを備えた最新の典型的な x86 チップで実行されるコンパイル済みの C/C++ コードに興味があります。パイプライン処理やその他のアーキテクチャの強化により、特定のサイクル カウントが妨げられていることは理解していますが、有用な直感を得たいと思っています。
arrays - Clojureで不変データを使って数値シミュレーションを行う方法は?
私は Clojure を使用しており、小規模なシミュレーションを実行する必要があります。値を保持する長さ n (n は通常 10 から 100 の間) のベクトルがあります。各シミュレーション ラウンド (おそらく 1000 ラウンド) で、ベクトル内の値の 1 つがランダムに更新されます。Java配列を使用してasetメソッドを呼び出すことでこれを行うことができると思いますが、これは関数型プログラミング/不変性の慣用句を壊します。
これを行うためのより機能的な方法はありますか、それとも Java 配列を使用する必要がありますか?
algorithm - 数列を指定して、チェック ディジット アルゴリズムを見つけるには...?
チェック ディジットで構成される一連のインデックス番号があるとします。十分な数のサンプル (例えば 250 サンプル インデックス番号) がある場合、チェック ディジットの生成に使用されたアルゴリズムを抽出する方法はありますか?
可能なアルゴリズムのセットを見つけるには、少なくともプログラムによるアプローチが必要だと思います。
更新: インデックス番号の長さは、チェック ディジットを含めて 8 桁です。
c++ - 手動で記述されたループと演算子のオーバーロードの効率
私が取り組んでいるプログラムには、3要素の配列があり、すべての目的と目的で数学的なベクトルとして使用しています。
コードを書く過程で、Vector
単純な算術オーバーロード(+, -, * /
)を使用して自分のクラスをロールするだけで、次のようなステートメントを単純化できるようになりました。
生成されたコードでは、どちらがほぼ同じである必要があります。しかし、もっと複雑なことになると、これは本当に私のパフォーマンスに大きな影響を与える可能性がありますか?私のコードにある1つの例はこれです:
手動で書かれたバージョン:
Vector
演算子のオーバーロードでクラスを使用する:
この種のコードは内部ループ内で実行されるため、速度を上げるためにコードを最適化しようとしています。これらのことにオーバーロードされた演算子を使用すると、パフォーマンスに影響しますか?私はn個の相互重力体のシステムの数値積分を行っています。これらのベクトル演算は非常に一般的であるため、これを高速に実行することが重要です。
私が知らないイディオムやトリックと同様に、どんな洞察もいただければ幸いです。
c++ - C++数値打ち切り誤差
ばかげている場合は申し訳ありませんが、答えを見つけることができませんでした。
出力:
0
6.66134e-16
0.001
-1.03583e-13
MSVC9、MSVC10、Borland C ++ 2010でコンパイルしてみました。それらはすべて、最終的に約1e-13のエラーで到着します。1000、10000の増分だけで、このような重大なエラーが蓄積されるのは正常ですか?
precision - Octaveで少なくとも20の有効数字を印刷する方法はありますか?
プログラムの結果を有効数字20桁で印刷する必要がありますが、15桁以上(フォーマット長)を印刷する方法がわかりません。これを達成する方法はありますか?
r - Rで非負の線形システムを解く
ネイティブ R 関数を使用して、未定システム Ax = b, x >= 0 の解を見つけることは可能ですか? 私は確かに線形プログラムを書いてlpsolveを使うことができますが、何かネイティブなものを望んでいます.
numerical-computing - C用の数値計算ライブラリ
Cプログラミング言語用の優れた数値計算ライブラリを探しています。
LAPACKと同様に、優れたドキュメントがあれば非常に役立ちます。
ありがとうございます。それでは、お元気で、
Upul
python - Python での和の対数の数値関数
と が与えられた場合、 (数値的に安定した方法で)計算したいと思いlog(a)
ます。log(b)
log(a+b)
私はこれのために小さな関数を書きました:
これが最も時間のかかるコードであるプログラムを作成しました。明らかに、最適化を試みることができます (たとえば、再帰呼び出しを排除します)。
とから計算するための標準math
または関数を知っていますか?numpy
log(a+b)
log(a)
log(b)
そうでない場合、この関数の単一の C++ フックを作成する簡単な方法を知っていますか? これは複雑な関数ではなく (float を使用します)、前述のとおり、実行時間の大部分を占めています。
よろしくお願いします、数値法忍者!
ruby - アレイよりもRubyNArrayを使用する利点は何ですか?
Ruby用のNArrayライブラリに出くわしました。この質問をするときは無知です。
標準のRubyArray実装に比べてNArrayライブラリを使用する利点は何ですか?
NArrayは数値計算を対象としていることを確認しましたが、APIを見ると、数値を対象としたArrayの拡張機能はごくわずかであるように見えます。Arrayでは不可能なことは何もありません。
- アレイを使用しないのはなぜですか?
- 速度に大きな利点はありますか?
- 大きなメモリの利点はありますか?
- 通常のRubyArrayクラスを使用するよりも他の利点はありますか?
グーグルはこの質問の有用な説明を実際に思いついたわけではありません。
私が見つけた参考文献:
http://rubydoc.info/gems/narray-ruby19/0.5.9.7/NArray