0

三角関数を使用した 2 次の非線形 ODE があるため、2 次導関数によっては定式化できません。例えば:

ay'' + b arctan(y'') + cy' + dy=0
y'(0)=0, y''(0)=0

arctan(y'') のような用語が存在しなければ、次のように自分の頌歌関数を書くことができます

function output=myodefunc(u,t){
  y(1)=u(2);
  y(2)=(-c*u(2)-d*u(1))/m;
  output=y';
}

残念ながら、二次の非線形項 (=> b*arctan(y'') ) により、 y'' に依存して頌歌を書くことができなくなります。

このような三角法をMatlabで数値的に解く方法はありますか?

4

1 に答える 1

0

ode 関数内で、非線形ソルバー (fsolve) を使用して y'' を評価できます。

function output=myodefunc(u,t){
  y(1)=u(2);
  x0=0;
  x=fsolve('a*x + b*atan(x) + c*u(2) + d*u(1)',x0);
  y(2)=x;
  output=y';
}
于 2013-09-17T12:30:12.767 に答える