Matlab numerical methods,examples of mathematical procedures

源代码在线查看: abm.m

软件大小: 263 K
上传用户: yingyingyingyin
关键词: mathematical procedures numerical examples
下载地址: 免注册下载 普通下载 VIP

相关代码

				function [T,Y] = abm(f,T,Y)
				%---------------------------------------------------------------------------
				%ABM   Adams-Bashforth-Moulton solution for the
				%      initial value problem  y' = f(t,y) with y(a) = ya.
				% Remark
				%   The first four coordinates of T and Y must
				%   have starting values obtained with  RK4.m
				% Sample call
				%   [T,Y] = abm('f',T,Y)
				% Inputs
				%   f   name of the function
				%   T   vector for abscissas containing the first four values
				%   Y   vector for ordinates containing the first four values
				% Return
				%   T   solution: vector of abscissas
				%   Y   solution: vector of ordinates
				%
				% NUMERICAL METHODS: MATLAB Programs, (c) John H. Mathews 1995
				% To accompany the text:
				% NUMERICAL METHODS for Mathematics, Science and Engineering, 2nd Ed, 1992
				% Prentice Hall, Englewood Cliffs, New Jersey, 07632, U.S.A.
				% Prentice Hall, Inc.; USA, Canada, Mexico ISBN 0-13-624990-6
				% Prentice Hall, International Editions:   ISBN 0-13-625047-5
				% This free software is compliments of the author.
				% E-mail address:      in%"mathews@fullerton.edu"
				%
				% Algorithm 9.6 (Adams-Bashforth-Moulton Method).
				% Section	9.6, Predictor-Corrector Method, Page 471
				%---------------------------------------------------------------------------
				
				n = length(T);
				if n				f0 = feval(f,T(1),Y(1));
				f1 = feval(f,T(2),Y(2));
				f2 = feval(f,T(3),Y(3));
				f3 = feval(f,T(4),Y(4));
				h  = T(2)-T(1);
				h2 = h/24;
				a  = T(1);
				for k = 4:n-1,
				  p = Y(k) + h2*(-9*f0 + 37*f1 - 59*f2 + 55*f3);
				  T(k+1) = a + h*k;
				  f4 = feval(f,T(k+1),p);
				  Y(k+1) = Y(k) + h2*(f1 - 5*f2 + 19*f3 + 9*f4);
				  f0 = f1;
				  f1 = f2;
				  f2 = f3;
				  f3 = feval(f,T(k+1),Y(k+1));
				end
							

相关资源