処理中が終わらない

80 Ansichten (letzte 30 Tage)
Cir 2t
Cir 2t am 5 Mär. 2021
Kommentiert: Cir 2t am 6 Mär. 2021
添付のscriptCCCM_2021でCCCM_2021を実行すると処理中となり、そのままフリーズします。
複素数になっているのかもしれませんが、調べ方がわかりません。
教えていただきたいです。

Akzeptierte Antwort

Hernia Baby
Hernia Baby am 5 Mär. 2021
おそらくメモリ不足です。
刻み幅がめちゃくちゃ細かいので、格納するデータ量も相当なものになると思います。
--------------------------------------------------------------
以下検証
CCCM_2021.mにカウントを入れました。
disp('count'+string(t))
scriptCCCM_2021でレンジを変えて計算しましたがものすごいです
[TClock_AR2011,XClock_AR2011] = ode45(@CCCM_2021, [0 5], IC , options);
特に以下はものすごい計算量になります。
sol = ode45(@CCCM_2021, [0 2], XClock_AR2011(end,:), options);
一応これで計算は回りました
これだけ短くしてもワークスペース内の変数サイズは大きいので元のコードだとメモリがパンクすると思います。
刻み幅を大きくするか、レンジを短くするしかないのかなと思います。
  2 Kommentare
Hernia Baby
Hernia Baby am 5 Mär. 2021
補足
disp('count'+string(t))
はステップ t をカウントしてるだけです。
これで計算がきちんと回っているか一応モニターできます
Cir 2t
Cir 2t am 6 Mär. 2021
ありがとうございます。
メモリですか。
どうにか、できないか調べてみます

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

OH
OH am 5 Mär. 2021
この分野には詳しくないのですが、
フリーズはPCのハードウェア的な問題かと思われます。(メモリー不足等)
CCCM_2021.mの最後の行にendを足して、script_CCCM2021.mで使われているode45()の引数であるtspanを短くすることでプログラム回りました。
ですが、時間はかなりかかりそうですね。matlabのプロファイラを見る限り変数の事前割り当て等、プログラムの最適化が必要だと思います。
  1 Kommentar
Cir 2t
Cir 2t am 6 Mär. 2021
ありがとうございます。

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu プログラミング finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!