(translator=Young, ChineseSource=Young-20020720-20\bvp4c.html, EnglishSource=c:\matlabr12\help\techdoc\ref\bvp4c.html)
MATLAB Function Reference    
bvp4c

解常微分等式的兩點臨界值問題(two-point boundary value problems (BVPs))

Syntax

Arguments

odefun
計算微分等式 的函數它可以是以下的形式
    dydx = odefun(x,y)
    dydx = odefun(x,y,p1,p2,...)
    dydx = odefun(x,y,parameters)
    dydx = odefun(x,y,parameters,p1,p2,...)
    
其中 x 是對應到 的純量,y 是對應到 的直行向量。parameters 是一個未知參數的向量,而 p1,p2,... 是已知參數。輸出 dydx 是一個直行向量。
bcfun
在臨界值狀態 計算剩餘(residual)的函數。它可以是以下的形式
    res = bcfun(ya,yb)
    res = bcfun(ya,yb,p1,p2,...)
    res = bcfun(ya,yb,parameters)
    res = bcfun(ya,yb,parameters,p1,p2,...)
    
其中 yayb 是對應到 的直行向量。parameters 是未知參數的向量,而 p1,p2,... 是已知參數。輸出 res 是一個直行向量。
solinit
有欄位的結構:

x
初始 mesh 的 ordered nodes。臨界值狀態被利用在 a = solinit.x(1)b = solinit.x(end)

y
解答的初始預測值,而 solinit.y(:,i) 是在點 solinit.x(i) 的解答預測值。

parameters
選擇性的。對未知參數提供初始預測值的向量。

這個架構可以有任何名稱,但是欄位名稱必須是 xyparameters。你可以利用幫手函數 bvpinit 來組織 solinit。詳細情形請看 bvpinit
options
選擇性的積分參數。你可以利用 bvpset 函數產生此結構。詳細情形請看 bvpset
p1,p2...
選擇性的。解題器傳到 odefunbcfun 和其他所有使用者定義在 options 中函數的已知參數。

Description

sol = bvp4c(odefun,bcfun,solinit) 對一個常微分等式系統做積分

在 [a,b] 範圍中提供兩點臨界值狀態

bvp4c 解題器也可以找出下面形式問題的未知參數

其中 對應到 parameters。你對 solinit.parameters 中的任何未知參數提供初始預測值 bvp4cbvp4c 解題器傳回這些未知參數的最終值到 sol.parameters

bvp4c 產生一個在 [a,b] 間連續且其一次微分也連續的解。用函數 bvpval 和輸出 bvp4csol 來計算在 [a,b] 間特定點 xint 的解。

bvp4c 傳回的結構 sol 有下列四個欄位:

x
bvp4c 選擇的 mesh
y
sol.x mesh 點的近似值
yp
sol.x mesh 點的近似值
parameters
bvp4c 傳回的未知參數值

sol 結構可以有任何名稱,而 bvp4c 產生的欄位 xyypparameters

sol = bvp4c(odefun,bcfun,solinit,options) 像之前一樣解題器,而預設的積分屬性被 bvpset 函數產生的結構 options 值取代。詳細情形請看 bvpset

sol = bvp4c(odefun,bcfun,solinit,options,p1,p2...) 傳常數的 已知 參數,p1p2、...,到 odefunbcfun,和其他所有使用者定義在 options 的函數。如果沒有選項被設定,則把 options = [] 當作欄位保留。

Examples

Example 1. 臨界值問題可以有多組解,而初始預測值的其中一個目的就是要指出哪一組解是你要的。兩次微分等式

只有兩組解滿足臨界狀態。

先用 bvp4c 解這個問題,微分等式必須用兩個一次 ODEs 的系統表示

這裡的 。這個系統有一個要求的形式

函數 和臨界狀態 都被用 MATLAB 寫成函數 twoodetwobc

一個預測架構(guess structure)包含 [0,4] 間五條空間相等的初始格線與一個常數值 的預測,以下面的形式產生

這個問題可以用下面的命令解決

數值解答在 100 個相同間距的點算出來,且畫出

這個問題的其他解可以由以下的初始預測值設定得到

Example 2. 這個臨界值問題包含未知參數。這個工作就是去計算 Mathieu's equation 的第四個特徵值(eigenvalue) ()

因為有未知參數 ,所以這個二次微分等式必須提供三個臨界狀態

我們可以很方便的使用副函數來安置所有需要被 bvp4c 用到的函數在一個 M-檔。

微分等式(轉換成一個一次系統)和臨界狀態分別被副函數 mat4odemat4bc 所描述。因為有未知參數,所以即使某些參數不會用到,這些函數都必須接受三個輸入參數。

預測結構 solinit 是由 bvpinit 產生。 解答的初始預測是以函數 mat4init 提供。我們選擇 因為它滿足臨界狀態且有正確的性質行為(正確的正負號變換次數)。在呼叫 bvpinit時,第三個參數(lambda = 15) 提供一個初始預測值給未知參數

在問題被 bvp4c 解決之後,sol.parameters 欄位傳回值 ,而且圖形顯示特徵函數和這個特徵值相關。

Algorithms

bvp4c 是三步驟的 Lobatto IIIa formula 有限積分。組合公式和組合多項式在 [a,b] 間提供一致的四次準確度 C1-連續解。格線(mesh)選擇和誤差控制都是以連續解的剩餘(residual)為基礎。

See Also

@ (function_handle), bvpget, bvpinit, bvpset, bvpval

References

[1]  Shampine, L.F., M.W. Reichelt, and J. Kierzenka, "Solving Boundary Value Problems for Ordinary Differential Equations in MATLAB with bvp4c," available at ftp://ftp.mathworks.com/pub/doc/papers/bvp/.


 builtin bvpget