微分方程式のパラメー​タを推定する方法はあ​りますか?

조회 수: 16 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2011년 3월 28일
MATLABファイルで記述した微分方程式において、パラメータを推定する方法を教えてください。

채택된 답변

MathWorks Support Team
MathWorks Support Team 2011년 3월 28일
手順としては、微分方程式をモデリングし、実験データと計算によるデータの差が最小になるよう FMINSEARCH 関数で最適化を行います。
以下にメイン関数および、評価関数の例を示します。
詳細については、関連ドキュメントにありますプログラムをダウンロードしてください。
% メイン関数
% 最適化処理
F = @(x) costfcn(x); % コスト関数の定義
x0 = [1 1]; % パラメータの初期値設定
[x,fval] = fminsearch(F,x0,options); % 最適化
% 評価関数
x0 = [0 0]; % 初期状態量
[t1,y1] = ode45(@samp_ode,Time,x0); % 微分方程式の計算
Y = y1(:,1); % 計算データ
out = norm(OutData-Y); % 実験データと計算データのノルム
function dydt = samp_ode(t,y)
% x'' = -a*x'-b*x + u(t)
% a, bを実験データから推定
% 時間tにおける入力の実験データをINTERP1で補間
u = interp1(Time,InData,t);
% 微分方程式 
dydt = [y(2); -param(1)*y(2)-param(2)*y(1)+u];
end

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 最適化에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!