www.gusucode.com > 高等数学问题求解源码程序 > CH14/lineshoot.m
function [t,y] = lineshoot(f1,f2,tspan,x0f,varargin) %LINESHOOT 线性边值问题的打靶法求解 % [T,Y] = LINESHOOT(F1,F2,TSPAN,X0F) 打靶法求线性边值问题F1的解 % [T,Y] = LINESHOOT(F1,F2,TSPAN,X0F,P1,P2,...) 打靶法求线性边值问题F1的解,其中 % F1和F2包含附加参数P1,P2,... % % 输入参数: % ---F1,F2:微分方程及其对应齐次方程的函数描述 % ---TSPAN:求解区间 % ---X0F:边值条件 % ---P1,P2,...:函数F1和F2的附加参数 % 输出参数: % ---T:返回的节点 % ---Y:边值问题的解 % % See also ode45 [~,y1] = ode45(f2,tspan,[1;0],varargin); % 计算函数y_1(t) [~,y2] = ode45(f2,tspan,[0;1],varargin); % 计算函数y_2(t) [~,yp] = ode45(f1,tspan,[0;0],varargin); % 计算函数y_p(t) m = (x0f(2)-x0f(1)*y1(end,1)-yp(end,1))/y2(end,1); % 求参数m [t,y] = ode45(f1,tspan,[x0f(1);m],varargin); % 求出原微分方程的解 web -broswer http://www.ilovematlab.cn/forum-221-1.html