回覆列表
  • 1 # 陶白

    ode45是最常用的求解非剛性微分方程(組)的指令,它採用變步長四、五階Runge-Kutta法,求解精度比ode23、ode15要高。但ode45的計算量比較大,而ode23計算量小,且誤差大

    呼叫格式:[t,y]=ode45(odefun,tspan,y0)

    odefun 用以表示f(t,y)的函式控制代碼或inline函式,t是標量,y是標量或向量;

    tspan 如果是二維向量[t0,tf],表示自變數初值t0和終值tf;如果是高維向量[t0,t1,t2,。。。,tn],則表示輸出結點列向量;

    y0 表示初值向量;

    t 表示結點列向量(t0,t1,t2,。。。,tn)^T;

    y 表示數值解矩陣,每一列對應y的一個分量。

    例項說明:

    例1 y"=y-2t/y,y(0)=1,0<t<4

    odefun=inline("y-2*t/y","t","y");

    [t,y]=ode45(odefun,[0,4],1)

    plot(t,y,"o-")

    例2 x"=-x^3-y,x(0)=1;y"=x-y^3,y(0)=0.5,0<t<30

    首先,建立自定義函式檔案myfun.m

    function f=myfun(t,x)

    f(1)=-x(1)^3-x(2);

    f(2)=x(1)-x(2)^3;

    f=f(:)

    然後,在命令視窗中輸入

    [t,y]=ode45(myfun,[ 0 30],[1:50]])

    plot(t,x(:,1) ,t,x(:,2),"o-")

    figure

    plot(x(:,1) ,x(:,2),":")

  • 中秋節和大豐收的關聯?
  • 關於水的詩句或名言?