主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

常微分方程式(ODE)の適合

》、《この例ではのパラメーターをデータに当てはめる2通りの方法を示します。1番目は、ローレンツ系 (初期値鋭敏性を備えた有名な ODE) の解の一部に一定速度の循環パスを直接当てはめる方法を示します。2 番目は、ローレンツ系のパラメーターを変更して一定速度の循環パスを当てはめる方法を示します。微分方程式をデータに当てはめるためのモデルとして、自分の用途に適したアプローチを使用できます。

ローレンツ系:定義と数値的な解

ローレンツ系は常微分方程式系です(ローレンツ系を参照)。実定数 σ ρ β について,系は以下になります。

d x d t σ y - x d y d t x ρ - z - y d z d t x y - β z

鋭敏性の高い系の場合,ローレンツのパラメーターの値は, σ 1 0 β 8 / 3. ρ 2 8 です。系を[x(0)(0)、z(0)) =(10年,20年,10)から始め,時間0から100までの系の変化を表示します。

σ= 10;β= 8/3;ρ= 28;F = @(t,a) [-sigma*a(1) + sigma*a(2)];Rho *a(1) - a(2) - a(1)*a(3);β* (3)+ (1)* (2)];xt0 =(10年,20年,10);[tspan,a] = ode45(f,[0 100],xt0);%龙格-库塔4 /5阶ODE求解器图plot3((: 1)、(:,2),(:,3))视图([-10.0 - -2.0])

変化はかなり複雑です。ただし,短い時間間隔では,均一な循環動作に見えます。時間間隔[0, 1/10)にわたり,解をプロットします。

[tspan,a] = ode45(f,[0 1/10],xt0);%龙格-库塔4 /5阶ODE求解器图plot3((: 1)、(:,2),(:,3))视图(-70 [-30])

循環パスの颂歌解への適合

循環パスの方程式にはいくつかのパラメーターがあります。

  • x - y平面からのパスの角度 θ 1

  • x軸に沿った傾斜からの平面の角度 θ 2

  • 半径R

  • 速度V

  • 時間0からのシフトt0

  • 空間δにおける3次元シフト

これらのパラメーターに関して,時間xdataの循環パスの位置を決定します。

类型fitlorenzfn
函数f = fitlorenzfn(x,xdata) = x(1:2);R = x (3);V = x (4);t0 = x (5);δ= x (8);f = 0(长度(xdata), 3);f (: 3) = R * sin(θ(1))* sin (V * (xdata - t0)) +δ(3);f(:,1) = R*cos(V*(xdata - t0))*cos(theta(2))…- R * sin (V * (xdata - t0)) * cos(θ(1))* sin(θ(2))+δ(1);f (: 2) = R * sin (V * (xdata (t0)) * cos(θ(1))* cos(θ(2))… - R*cos(V*(xdata - t0))*sin(theta(2)) + delta(2);

ODE解での所定の時間における,ローレンツ系への最適適合循環パスを求めるには,lsqcurvefitを使用します。パラメーターを妥当な範囲内に留めるよう、さまざまなパラメーターに範囲を設けます。

磅=[-15年-π-π/ 2,5日,-π,-40,-40,-40];乌兰巴托=π/ 2,π,60岁,15日,π,40岁,40岁,40);theta0 = (0, 0);R0 = 20;= 1;t0 = 0;delta0 = 0 (3,1);x0 = [theta0; R0 V0; t0 delta0);[xb, resnorm残留]= lsqcurvefit (tspan @fitlorenzfn, x0,磅,乌兰巴托);
局部最小值。Lsqcurvefit停止是因为相对于初始值的平方和的最终变化小于函数公差的值。

ODE解からの時間における最適適合循環パスを,ローレンツ系の解と一緒にプロットします。

Soln = a +残差;持有plot3(溶液(:1)溶液(:,2),溶液(:,3),“r”)传说(“颂歌解决方案”圆弧的)举行

图plot3((: 1)、(:,2),(:,3),“b”。“MarkerSize”, 10)plot3(溶液(:1)溶液(:,2),溶液(:,3),“处方”“MarkerSize”10)传说(“颂歌解决方案”圆弧的)举行

ODEの円弧への適合

ここで,パラメーター σ β 一个 n d ρ を円弧への最適適合となるように変更します。さらに適した適合となるように,初期点(10年,20年,10)を変更できます。

これを行うには,関数ファイルparamfunを記述します。》、《このファイルは適合のパラメーターをとり,時間tにわたる軌跡を計算します。

类型paramfun
函数pos = paramfun(x,tspan) sigma = x(1);β= x (2);ρ= x (3);xt0 = x (6);F = @(t,a) [-sigma*a(1) + sigma*a(2)];Rho *a(1) - a(2) - a(1)*a(3);β* (3)+ (1)* (2)];[~, pos] =数值(f tspan xt0);

最適なパラメーターを見つけるには,lsqcurvefitを使用して,新たに計算された颂歌軌跡と円弧溶液との間の差を最小化します。

xt0 = 0 (1,6);xt0(1) =σ;xt0(2) =β;xt0(3) =ρ;xt0(6) =溶液(1:);[pb, presnorm presidual、exitflag、输出]= lsqcurvefit (@paramfun、xt0 tspan,溶液);
局部最小值。Lsqcurvefit停止是因为相对于初始值的平方和的最终变化小于函数公差的值。

この最適化でパラメーターがどの程度変化したかを判別します。

流('新参数:%f, %f, %f'pb (1:3))
新增参数:9.132446、2.854998、27.937986
流('原始参数:%f, %f, %f'(σ,β,ρ))
原始参数:10.000000、2.666667、28.000000

パラメーターσβは約10%ずつ変化しました。

変更済みの解をプロットします。

图保存Odesl =总统+ soln;plot3 (odesl (: 1) odesl (:, 2), odesl (:, 3),“b”) plot3(溶液(:1)溶液(:,2),溶液(:,3),“r”)传说(“颂歌解决方案”圆弧的)视图([-30 -70])保持

ODEの適合における問題

シミュレーションまたは常微分方程式の最適化で説明されているとおり,オプティマイザーでは,数値的颂歌解に固有のノイズに起因する問題が生じることがあります。正確でない可能性があることを終了メッセージまたは終了フラグが示しているなどの理由で,解が理想的でないと疑われる場合は,有限差分の変更を試みてください。この例では,より大きな有限差分ステップサイズと中心有限差分を使用します。

选择= optimoptions (“lsqcurvefit”“FiniteDifferenceStepSize”1的军医,...“FiniteDifferenceType”“中央”);[pbest2, presnorm2 presidual2、exitflag2 output2] =...lsqcurvefit (@paramfun xt0 tspan,溶液,[],[],选项);
局部最小值。Lsqcurvefit停止是因为相对于初始值的平方和的最终变化小于函数公差的值。

この場合,これらの有限差分オプションを使用しても,解は改善されません。

disp ([presnorm presnorm2])
20.0637 - 20.0637

関連するトピック