Employs Simpson's rule to integrate f between a and b Input arguments: f, function handle a,b, integration bounds, a<b Output arguments: Q, value of integral
0001 function [ Q ] = simpsons_rule( f,a,b ) 0002 % Employs Simpson's rule to integrate f between a and b 0003 % Input arguments: 0004 % f, function handle 0005 % a,b, integration bounds, a<b 0006 % Output arguments: 0007 % Q, value of integral 0008 0009 % first check user inputs 0010 if isa(f,'function_handle')==0; 0011 error('input must be a function handle'); 0012 elseif a>=b; 0013 error('invalid interval'); 0014 end 0015 0016 fa=feval(f,a); % evaluate f(a) 0017 fm=feval(f,(a+b)/2); % evaluate f at the midpoint 0018 fb=feval(f,b); % evaluate f(b) 0019 0020 Q=(b-a)*(fa+4*fm+fb)/6; % evaluate Q according to Simpson's rule 0021 0022 end 0023