問題タブ [stochastic]
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.
random - Mathematica でランダム係数を持つ線形微分方程式を解く方法
私は次のような微分システムを持っています
dx/dt = A x(t) + B y(t)
dy/dt = C x(t) + D y(t)
ここで、A、B、C、および D は実定数です。ここで、A が定数ではなく、特定の範囲に均一に分布する乱数である場合のシステムの動作を調べる必要があります。定性的にチェックするしかない。私は確率積分のバックグラウンドがないため、これが実際に伊藤積分に関連するものであるかどうかはわかりません(そしてこの質問https://mathematica.stackexchange.com/questions/3141/how-can-you-compute-it -integrals-with-mathematica ) . いずれにせよ、この微分方程式の解き方がわかりません。
どんなガイダンスでも大歓迎です。
python - Pythonコード:幾何ブラウン運動-何が問題なのですか?
私はPythonにかなり慣れていませんが、大学の論文では、できればPythonを使用していくつかのモデルを適用する必要があります。添付したコードで数日過ごしましたが、どうしようもありません。何が問題なのか、ドリフトを伴う標準的なブラウン運動のように見えるランダムなプロセスが作成されていないのです。muやsigma(期待収益またはドリフトとボラティリティ)のような私のパラメーターは、ノイズプロセスの傾きだけを変える傾向があります。それが私の問題です、それはすべてノイズのように見えます。私の問題が十分に具体的であることを願っています、ここに私のcoodeがあります:
machine-learning - 最急降下確率更新-停止基準と更新ルール-機械学習
私のデータセットにはm
機能とn
データポイントがあります。w
(推定される)ベクトルとします。確率的更新法で最急降下法を実装しようとしています。私の最小化関数はleast mean square
です。
更新アルゴリズムを以下に示します。
ここで、は特徴<x>
の生のベクトル、は真のラベルの列ベクトル、は定数です。m
<y>
alpha
私の質問:
wikiによると、すべてのデータポイントを調べる必要はなく、エラーが十分に小さいときに停止できます。それは本当ですか?
ここで停止基準をどうすべきかわかりません。誰かがこれを手伝ってくれるなら、それは素晴らしいことです。
私が使用したこの式で、
for loop
それは正しいですか?私(<w>.<x_i> - <y_i>) * x_t
は私のと信じてい∆Q(w)
ます。
python - 確率微分方程式のシステムを解く/統合するためのPythonモジュールはありますか?
解きたい確率微分方程式のシステムがあります。私はこの問題がすでに解決されていることを望んでいました。ソルバーが遅すぎることや、数値の安定性に問題がある可能性があるため、独自のソルバーを作成することについて少し心配しています。
そのような問題のためのPythonモジュールはありますか?
そうでない場合、そのようなシステムを解決するための標準的なアプローチはありますか。
java - ランダムな長いユーザー ID を生成する
次の式で各クライアントに長いユーザー ID を与える Android アプリを作成しています。
long userID = (long) (Math.random() * 2 * Long.MAX_VALUE - Long.MAX_VALUE);
MAX_VALUE を正しく利用していますか。つまり、考えられるすべての long 値を利用していますか?
10,000、100,000、または 100 万のユーザーで 2 つのユーザー ID が重複する可能性はどのくらいですか? どうすればこれを計算できますか?
algorithm - [0,1) で生成された乱数と [0,1] で生成された乱数の違いは、どのような状況で違いを生むのでしょうか?
私は半開間隔 [0,1) で浮動小数点値を返す疑似乱数ジェネレーターに慣れています。
閉区間 [0,1] で値を返すことができる RNG への参照を見てきました。たとえば、この Mersenne Twister の実装です。
数学的な理由から、一方または両方のエンドポイントを除外したい理由がわかります。
exponentially_distributed=-logf( 1.0-rng() )
の場合、常に有効な数値が得られます0.0<=rng()<1.0
。
しかし、[0,1] を生成する rng を [0,1) を生成する rng に置き換えると、実質的な違いが生じるケースは考えられません。
閉区間 [0,1] で値を返す浮動小数点疑似乱数ジェネレーターが絶対に必要な状況は?
haskell - Haskellでの確率シミュレーションに関するチュートリアル
確率シミュレーションにHaskellを使用したいのですが、方法がわかりません。Huttonの「ProgramminginHaskell」を読んだことがあり、決定論的な関数型プログラムを書くことに慣れています。ただし、RやPythonなどの命令型言語で簡単な種類の確率シミュレーションを書き始める方法がわかりません。私が読むことができるこれに関するチュートリアルまたは入門書はありますか、または誰かが始めるためのいくつかのヒントを提供できますか?
java - 加重パーリン ノイズを使用したマップ ジェネレーター
任意の数のパーリン ノイズ マップとそれぞれの重みを取得しました。すべての重みの合計は 1 ですが、違いはありません。
重みに関して最高値でそのノイズを取得したい。
私の最初のアプローチは、各パーリン ノイズから数値を取得し、これらをパーセンテージに変換し (そのためのループアップ テーブルがあります)、重みを掛けて、最も高い値を選択することでした。しかし、このアプローチには大きな欠点があります。小さな重みを識別し、大きな重みを優先するため、分布が台無しになります。20% に 0.2 の重みが表示されるようにします。
これをマップ ジェネレーターでタイル タイプを選択するために使用したいと考えています。複数のパーリン ノイズを使用します。これは、多くの異なるタイル タイプを使用して互いに境界線を引きたいため、グラデーションを使用できないためです。
この欠陥を修正する方法、またはタイルベースのマップを生成する別の方法を知っている人はいますか?
編集:その間、私はほぼ受け入れられる解決策を見つけました:
唯一の欠点は不正確であることです。重みが 0f の場合でも、約 6% の時間でノイズが返されます。
matlab - 伊藤確率過程の符号化
確率過程のルーチンを mathematica/matlab に実装しようとしています。ここに書かれたコードはすべて mathematica 用ですが、誰かがこれを matlab でエンコードするのを手伝ってくれれば (彼らがそれに慣れていれば)、それも問題ありません。ただし、可能であれば Mathematica が優先されます。
最初に方程式を調べた後、取得したいものを述べます。
以下は、私が興味を持っている伊藤確率過程です(ここでz(t)=[x(t),y(t)]:
次の量で:
また、次のものもあります (これから入力しますx(t),y(t) as x,y
)。
ここで、は最初の退出時間であり
、 (最後に見てください)
GT(x)
の滑らかな関数ですx
目標: andだけQ0
で取得したい。x
================================================== ======================================== _ 以下は mathematica のコードであることに注意してください。
終了時間の制約:
終了時刻は次のとおりです。
それが出力する{t, x[t], y[t], Boole[const[x[t], y[t]]]}
上記のコードを使用して終了時間を見つけ、それを で使用できるようにする必要がありますQ0
。終了時間を見つけるための上記のスニペットは、適切に選択された に対してゼロ以外の時間を生成します。
================================================== ==============================
を見つけるために設定する必要がある数値タスクQ0(x)
:
--> この式の積分項から始めます。最初に、ドメイン内から始まる多くの初期条件 (たとえば、100 回の終了時間) を検索します (おそらく、この投稿で既に説明したスニペットを使用します)。これで、と
の関数として、100 回の終了時間ごとに積分を評価できます。
x
--> での積分の期待値は、Q0
以前に評価された 100 個の積分すべての標本平均 (大数の法則による) です。したがって、Q0
を見つけることができ、 と の関数のみである必要がx
あります。
================================================== ==============================
私の問題:
上記の終了時間のコードは、適切に選択された初期条件に対してゼロ以外の終了時間を生成するように見えます。
十分な終了時間が生成されるように適切なものを選択する方法について誰かが説明できれば、それはありがたいことです。上記の で指定した制約を維持したいのですが
const[x_, y_]
、扱いやすい結果が得られない場合は、制約を緩和してもかまいません。以下のコード
GT(x)
は特異点をもたらします -- DSolve から不定式に関するエラー メッセージを受け取りました.... b0[xc] と DrhoDy[xc] の両方が不定になるため、初期条件 GT[xc] をそれも不確定になります...この問題を回避する方法は喜んでいただければ幸いです。最後に、Mathematica で 100 の積分を効率的に評価して (項が巨大であるため)、以前に見つけた各終了時間と期待値を取るために誰かの助けが本当に必要です。出口時間を正しく見つける方法がわかりません。
================================================== ============================== GT(x)を見つけるには:
ODE:
次の初期条件を満たします。
どこ、
と
r - RおよびMATLABで確率行列の最大固有値を取得する
R & MATLAB で全結合右確率行列の最大固有値を取得しようとしています。このリンクから: http://en.wikipedia.org/wiki/Stochastic_matrix 最大の固有値が 1 になることを理解しています。たとえば、R で次のコードを実行した後、固有値が "1, 0" であることがわかります。
> 固有値(行列(rep(0.5,4),ncol=2))
$値
[1] 1 0
$vectors
[1,] 0.707107 -0.707107
[2,] 0.707107 0.707107
しかし最近、次の確率行列の最大固有値を取得しようとすると、非常に興味深い結果が得られました。
> m = 行列(c(0.5, 0.995, 0.5, 0.005),ncol = 2 ,nrow=2);
> 固有値(m)$値
[1] 1.000 -0.495
>固有値(m)$値[1] == 1
[1] 偽
「FALSE」と表示されていることに注意してください。それは変だ!1に等しいはずですよね?いくつかの計算エラーがあるはずです。この行列も MATLAB で試しましたが、同じ結果が得られました。これまでのところ、切り上げることは 1 までしかできません。修正方法について何か考えはありますか?
ありがとうございました、
ケン