資源簡介
打靶法-求解邊值問題,主要應(yīng)用于求解微分方程組
代碼片段和文件信息
function?[tx]=lineshoot(f1f2abalphabetamaxiter)
%線性方程邊值問題的打靶算法
%對微分方程y‘‘=p*y‘+q*y+ra %構(gòu)造成兩個等效的初值問題
%u‘‘=p*u‘+q*u+ru(a)=alphau‘(a)=0
%v‘‘=p*v‘+q*vv(a)=betav‘(a)=1
%使用Matlab語言描述微分方程u和v,注意我們先必須化為一階微分方程組
%f1=@(tu)[u(2);p*u(2)+q*u(1)+r];
%f2=@(tv)[v(2);p*v(2)+q*v(1)];
%則原微分方程的解為
%x=u+c*v=u+(beta-u(b))/v(b)*v
%
%輸入?yún)?shù)?
%?f1?描述方程u的Matlab函數(shù)只能是句柄(@()和M函數(shù)),或者inline函數(shù)
%?f2?描述方程v的Matlab函數(shù)
%?ab?微分計算區(qū)間[ab]
%?alphabeta?上下邊界
%?maxiter?最大迭代次數(shù)
%?輸出參數(shù)
%?[tx]?坐標(biāo)點t對應(yīng)的微分值x
%
%?Example
%?x‘‘=(2t)/(1+t^2)*x‘-(2x)/(1+t^2)+1
%?邊值x(0)=1.25,x(4)=-0.95
%
%?f1=@(tu)[u(2);2*t/(1+t.^2)*u(2)-2/(1+t.^2)*u(1)+1];%注意必須使用“;”隔開
%?f2=@(tu)[u(2);2*t/(1+t.^2)*u(2)-2/(1+t.^2)*u(1)];
%?a=0;b=4;alpha=1.25;
- 上一篇:Matlab-PDE工具箱有限元法求解偏微分方程
- 下一篇:高斯背景建模
評論
共有 條評論