2017-08-26 18 views
0

私は8変数のODEをmatlabに統合する必要があります。私のシミュレーション時間は5e9で、時間ステップは0.1です。しかし、それはメモリエラーを示します。私はi7コア、2.6Ghz CPUと8GBのRAMで作業しています。大量のサンプルのODEをどのようにシミュレートできますか?ODEを解く際にMatlabでメモリ不足エラーが発生する

+0

私はそれが最も正確な方法ではないことを知っていますが、しばらくしてからシミュレーションを再開するのはどうですか? – Jommy

+0

8・8・5e10バイト= 3.2e12バイト= 3.2テラバイトを必要とする5e10状態ベクトルを生成して格納するための特別な目的がありますか?これをメモリに保持することは考えにくいので、ディスクに書き込むように準備しましたか? – LutzL

答えて

0

64ビットバージョンのMATLABを使用していると仮定すると、Preferences -> MATLAB -> Workspace -> MATLAB Array Size Limitを使用してMATLABがメモリをエッジに押し付けさせることができます。

あなたが本当に次の操作を実行し、システム内のメモリをmximizedので、あなたがこのERROを取得している場合:

  1. あなたは64ビットOSとMATLABの64ビットバージョンを使用していることを確認してください。
  2. ODE関数を呼び出す前に、もう必要のない変数(clear()関数を使用)を手動で消去します(関数が終了すると再作成できます)。
  3. システムのスワップファイルを増やしてください。メモリ消費量の増加に役立ちますが、処理速度が大幅に低下する可能性があります。

あなたはResolve "Out of Memory" Errorsmemory()でより多くのヒントやトリックを見つけることができます。

関連する問題