問題タブ [numerical-stability]

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 投票する
1 に答える
366 参照

c - シンプレックス アルゴリズムの数値安定性

編集:シンプレックスノイズや三角測量と混同しないように、数学的最適化アルゴリズムをシンプレックスします。

私は独自の線形計画法ソルバーを実装していますが、32 ビット浮動小数点数を使用して実装したいと考えています。シンプレックスは多くの計算を実行し、精度が低すぎると丸め誤差が発生する可能性があるため、数値の精度に非常に敏感であることを知っています。それでも、32 ビット浮動小数点を使用して実装したいので、命令を 4 幅にすることができます。つまり、SIMD を使用して一度に 4 つの計算を実行できます。double を使用して 2 幅の命令を作成できることは承知していますが、4 は 2 よりも大きくなります :)

浮動小数点の実装に問題があり、解決策が最適ではないか、問題が実行不可能であると言われました。これは特に混合整数線形プログラムで発生し、分枝限定法で解決します。

私の質問は次のとおりです。丸め誤差が発生して、実行不可能な、無制限の、または最適ではないソリューションが発生するのをできるだけ防ぐにはどうすればよいですか?

私ができることの 1 つは、入力値をスケーリングして 1 に近づけることです ( http://lpsolve.sourceforge.net/5.5/scaling.htm )。他にできることはありますか?

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

tensorflow - Tensorflow:数値安定性のために除算の前に小さな数を追加します

TensorFlow でゼロによる除算を防ぐために、被除数に小さな数を追加したいと考えています。クイック検索では結果が得られませんでした。特に、科学表記法の使用に興味があります。

これはどのように達成できますか?

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

python-3.x - JiTCDDE を使用した予期しないソリューション

Python を使用して、次の遅延微分方程式の動作を調査しようとしています。

ここfで、 はカットオフ関数であり、その引数の絶対値が 1 から 10 の間であり、それ以外の場合は 0 に等しい場合 (図 1 を参照)、およびNdτおよびTは定数です。

図 1: 関数 f のプロット

このために、JiTCDDE パッケージを使用しています。これにより、上記の方程式の妥当な解が得られます。それにもかかわらず、方程式の右側にノイズを追加しようとすると、数回の振動の後、ゼロ以外の定数に安定する解が得られます。これは方程式の数学的な解ではありません (ゼロに等しい唯一の可能な定数解)。この問題が発生する理由と、解決できるかどうかはわかりません。

以下にコードを再現します。ここでは、簡単にするために、ノイズを高周波コサインで置き換えました。これは、ダミー変数の初期条件として連立方程式に導入されます (コサインはシステムに直接導入することもできますが、一般的なノイズでは、これは不可能と思われます)。問題をさらに単純化するために、f関数がなくても問題が発生するため、関数に関する用語も削除しました。図 2 は、コードによって与えられた関数のプロットを示しています。

図 2: コードによって与えられた解のプロット

ちなみに、ノイズがなくてもゼロ点で解が不連続になっているように見える (y は負の時間でゼロに等しく設定されている) ことに気付きましたが、その理由はわかりません。