私はModelica(Dymola-environment)には比較的新しいので、私はModelicaの乱数生成のような単純な問題を解決することができないという非常に必死になっています。あなたは私を助けることができます。Modelicaの単純な乱数発生に関する割り当ての問題
単純な関数random
は、入力シードseedIn[3]
を使用して0と1の間の乱数を生成し、次のタイムステップまたはイベントの出力シードseedOut[3]
を生成します。 (z,seedOut) = random(seedIn);
は完全に正常に機能します。
問題は、を次のseedIn[3]
として使用して、この割り当てを時間の経過とともに計算する方法をModelicaで見つけることができないことです。これは非常にイライラです。
私の簡単なプログラムは以下のようになります。私は、アルゴリズムの割り当て、初期条件と方程式とほぼすべての可能性を試してみましたが、それらのどれも働かない
*model Randomgenerator
Real z;
Integer seedIn[3](start={1,23,131},fixed=true), seedOut[3];
equation
(z,seedOut) = random(seedIn);
algorithm
seedIn := seedOut;
end Randomgenerator;*
。次のタイムステップで単にseedOut
を使用したいだけです。 1つの問題は、アルゴリズムセクションに入るとき、初期条件も式セクションからの値も使用されないことであると思われる。
おそらくwhen式や文をreinit(seedIn、seedOut)とする必要があります。 –
[DLR Noise](https://github.com/DLR-SR/Noise)と[DLR Advanced Noise](https://github.com/DLR-SR/AdvancedNoise)ライブラリにも興味があります。または、http://impact.github.io/のNoiseを検索してください。 – matth
この[質問](http://stackoverflow.com/questions/14943950/generate-white-noise-in)のModelicaでの乱数生成の詳細-modelica-systemmodeler) – jrhodin