關於部落格
  • 127036

    累積人氣

  • 30

    今日人氣

    0

    追蹤人氣

SDRK - 初步完成紀錄 - 2009.07.09

以下是測試問題的大綱
%  DEMOFILE02  demonstrates the usage of SDRK
%
%  We try to solve the linear DDE
%    epso*y''(x)-y'(x)+y(x-1)+y(x+1)-2*y(x) = 0, y_l = 1, y_r = 0
%
% DDE infomation
% s - the coefficents [s1 s2 ...] for delays and advance
% alpha - the coeffinets for Laplacian operator
% beta = [beta_l beta_r] - the coeffients for bistable nonlinearity at
%   phi_l and phi_r, respectively
% c - the traveling wave speed or the coeffinets for first order term
%
%  Solution syntax:
%    [tau,y] = SDRK(@ddefile02,0.1);
是以原本 BVP 加上
  L_1[y] = y(x-1)+y(x+1)-2*y(x)
所構成的 DDE, 不過是硬加上去的, 並沒有去測試解是否存在的問題

ddefile02 中有一個區塊是DDE設定
% DDE infomation Seeting
phi_l=1; phi_r=0;
s=1;
alpha=1;
beta=[0 0];
c=1;
tau=[-100 100];
% End of "DDE infomation Seeting"
當 alpha =0 表示沒有 L_1[y] 項, 也就是純粹的 BVP. SDRK 的指令很簡單, 基本上的雛型是

[x,y] = sdrk(ddefile,epso,Nm)

輸入項
ddefile - DDE問題設定m-file檔名, 不輸入會以 ddefile02 為預設題目執行
epso - 二次微導係數的 singular 程度, 預設是 1
Nm - 整數, 將區間等分細切成 Nm 段

輸出項
x - 回傳 mesh, 細切後的區間
y - mesh 所對應的解

所以只要作這樣的輸入就可以了, 以 ddefile: ddefile02, epso: 0.01, Nm: 40 為例

  [x,y]=sdrk(@ddefile02,0.01,40)

執行完後就會看到 x, y 陣列, 繪圖只要下指令:

  plot(x,y(1,:))

即可

<測試>
 
Truncation interval: [-100 100]
alpha = 0, ie, a BVP
Nm=40
Result:
結果是一個很正常的 BVP 圖形, 當 alpha 調整到 0.06 時右邊就不那麼正常了
下面是當 alpha = 1 的情況
另外, 區間是 [-1 1] alpha=0 時的BVP
稍微加大 alpha 會變成 M 字形(alpha=0.01)
最後 alpha = 1 時

相簿設定
標籤設定
相簿狀態