簡體   English   中英

求解非線性ODE 2.在Matlab中進行數值排序

[英]Solving a nonlinear ODE 2. Order in Matlab numerically

我具有帶有三角函數的二階非線性ODE,因此無法根據二階導數來公式化它。 例如:

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

沒有arctan(y'')這樣的術語,我可以像這樣寫我的ode函數

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

不幸的是,二階非線性項(=> b * arctan(y''))使我無法根據y''來寫ode。

有什么方法可以在Matlab中數值求解這樣的三角極點嗎?

可以使用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';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM