[解決済み] ode45 が T 軸上で正確に 0.01 のステップを取るように強制するにはどうすればよいですか?
2022-02-18 03:46:01
質問
Matlabを使って微分方程式を解いています。ode45が一定のステップを踏むように強制したいのですが、方程式を解いている間は常にT軸を0.01ずつ増加させます。どうすればよいのでしょうか?
ode45 は一貫して最適化されたランダムなステップをとっており、一貫して 0.01 の小さなステップをとるようにする方法がわからないようです。以下はそのコードです。
options= odeset('Reltol',0.001,'Stats','on');
%figure(1);
%clf;
init=[xo yo zo]';
tspan=[to tf];
%tspan = t0:0.01:tf;
[T,Y]=ode45(name,tspan,init,options);
解決方法は?
ベースは
ドキュメント
が内部で行うステップの大きさを制御できるようには見えません。
ode45
方程式を解くときに
できる
出力が生成される時点を制御します。コメントアウトされた行に示されているように、これを行うことができます。
tspan = to:0.01:tf; % Obtain solution at specific times
[T, Y] = ode45(name, tspan, init, options);
固定ステップサイズを使用した場合の解の精度については、上記リンク先からの抜粋を参照してください。
<ブロッククオート
もし
tspan
が2つ以上の要素を持っている場合
[t0,t1,t2,...,tf]
の場合、ソルバーは与えられた点で評価された解を返す。しかし, ソルバーは
tspan
. その代わり、ソルバーは独自の内部ステップを使用して解を計算し、その解を
tspan
. 指定された点で生成される解は、各内部ステップで計算された解と同じ精度のものである。
中間点を複数指定しても計算効率にはほとんど影響しないが、大規模なシステムではメモリ管理に影響することがある。
つまり、出力に特定の時点の解が欲しいと指定した場合でも、ソルバーは内部で多くの適応的なステップを踏んでいるのです の間に を指定すると、その時点の値に近づけることができます。
関連
-
[解決済み】"配列のインデックスは正の整数または論理値でなければならない"
-
[解決済み] MATLABでctrl+Aを使わずにすべてのコードを自動インデントする
-
[解決済み] matlabで補強行列を作成し、縮小行エシュロン形式を作成する。
-
[解決済み] エラー: 等号の左側にある式は代入の対象として有効ではありません Matlab
-
[解決済み] Matlab: 逆コサイン(acos)の完全解を返す
-
[解決済み] matlabの*と.*の違いは何ですか?
-
[解決済み] MATLABで関数のパラメータにデフォルト値を設定するにはどうすればよいですか?
-
[解決済み] matlabでchi2gof関数を理解する
-
[解決済み] ホールドオンでセミログプロット
-
[解決済み] Matlabでベクトルを表示(印刷)するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Matlab: 黒を使わないグレースケールでのimagescの使用
-
[解決済み] 第一差分フィルタ
-
[解決済み] MATLAB: symからlogicalへの変換ができない
-
[解決済み] MATLABで軸の制限をグローバルに設定し、プロットされたデータの最小値と最大値にする方法は?
-
[解決済み] エラー: 等号の左側にある式は代入の対象として有効ではありません Matlab
-
[解決済み] Matlabでcorr2関数を説明する
-
[解決済み] 減衰比一定の直線と根元の軌跡との交点を求めるためのrlocfindの代替プログラム(Matlab
-
[解決済み] MatlabのA=[x; y']は何を意味するのですか?
-
[解決済み] Matlab の imrect を用いて,新しい矩形の座標を取得します.
-
[解決済み] ホールドオンでセミログプロット