logo for matrixlab-examples.com
[?] Subscribe To This Site

XML RSS
Add to Google
Add to My Yahoo!
Add to My MSN
Subscribe with Bloglines


Home
Welcome Matrixmania Blog
-> Sitemap / Search <-
-> Books <-
Forums and Help
Contact
Basics Quick Matlab Guide
Matlab Tutorial
Matlab Examples
Matlab Flow Control
Boolean Logic
Plots and GUI Matlab 2D Plots
Matlab 3D Plots
Matlab GUI
Applications Calculus
Linear Algebra
Matlab Cookbook I
Matlab Cookbook II
Electrical Calculations
Probability and Stats
Finance Apps
Other Relevant Links
Notes on Computing
Online Calculators
Fun!
Your own Website?
Terms/Policies
leftimage for matrixlab-examples.com

Trapezoidal Rule

The code approximates the definite integral of a function. The integral is calculated using the trapezoidal rule. Parameters of the function are the limits of integration and the number of intervals within the limits.



The function to be integrated is another parameter and must be defined before running this program. For example, if we want to integrate the function  f(x) = y = x3, we can define it, in Matlab, like this:


function y = fun_for_integration(x)
y = x^3;



And then, we can create the integration function, like this:



function y = trap2(lower_lim, upper_lim, interv, fun)

% initialize the result
y = 0;

% 'step' is related to the size of each interval
step = (upper_lim - lower_lim) / interv;

% add up the area of each trapezoid
for j = lower_lim : step : upper_lim
    y = y + feval(fun,j);
end

% compute integral
y = (y - (feval(fun, lower_lim) + feval(fun, upper_lim))/2) * step;
   


Now, we can call our integration function from another Matlab script or from the command window, for example

z1 = trap2(0, 2, 10, 'fun_for_integration')
z2 = trap2(0, 2, 100, 'fun_for_integration')
z3 = trap2(0, 2, 1000, 'fun_for_integration')

and we get the Matlab results

z1 =     4.0400
z2 =     4.0004
z3 =     4.0000

Note that this is a numerical integration, and so we have to be very aware of  the possible inaccuracies of the method. The first two parameters given to the function are the lower and upper limits, respectively. The third parameter is related to the size of each interval: the higher the number the better accuracy in the evaluation we can reach. The fourth parameter is the name of the function to be integrated (the instruction 'feval' is in charge of evaluating that function in the main body of the code).

Now, the best part is that Matlab has its own function to do the integration using the trapezoidal rule ('trapz'), so we can save all of our programming thinking for other things...

However, the built-in 'trapz' function, works a little different. We first define our interval and desired step in a variable vector x, and define the value of the corresponding function in a variable vector y.

For example, we want to evaluate the same function as above, within the interval [0 2], in 0.1 increments, so we use x = 0 : .1 : 2. If we want a finer tunning of the integration function, we can set the step in our independent variable. Then we can call the Matlab function like this (three different cases)



x = 0 : .1 : 2;
y = x.^3;
z4 = trapz(x, y)

x = 0 : .01 : 2;
y = x.^3;
z5 = trapz(x, y)

x = 0 : .001 : 2;
y = x.^3;
z6 = trapz(x, y)



and we get the Matlab response, with different approximations

z4 =     4.0100
z5 =     4.0001
z6 =     4.0000


 From 'Trapezoidal Rule' to home

 From 'Trapezoidal Rule' to 'Matlab Cookbook'

Top

Simpson's Rule

Calculus




footer for trapezoidal rule page