比如把初始條件改成x(2)=x'(2)=0,那麽tspan(1)壹定是2。
但是我們在工程應用中經常會遇到邊值問題,這是ode**函數力所不及的。當然,我們可以自己寫函數來求解。
比如射擊),但那畢竟超出了某些人的能力。幸運的是,Matlab中提供了壹個bvp求解器。
solinit = bvpinit(x,yinit,params)
sol = bvpsolver(odefun,bcfun,solinit,options)
因為邊值問題可能有多個解,為了確保解就是我們需要的,必須用bvpinit函數來估計初值。
BVP求解器:MATLAB中提供了bvp4c和bvp5c,後者誤差控制更好。
輸入參數:
x:要計算的網格點,相當於ode**的tspan
Yinit:猜測值,可以是具體值,也可以是函數,類似於ode**的x0。
Params:其他未知參數也是猜測。
描述微分方程邊值問題的函數句柄。
Bcfun:邊界值函數,壹般是雙邊值(X的上下限視為兩個邊界),但也支持多邊值(詳見幫助)。
solinit:BVP init生成的初始化網格。
選項:BVP求解器優化參數,可通過bvpset設置。有關特定參數,請參見幫助。
輸出參數:
大部分和ode45壹樣。