<< Chapter < Page Chapter >> Page >
    height = (y(n) + y(n-1))/2;     %average height of function across interval base = x(n) - x(n-1);           %length of interval

The area, as in Equation [link] , is base times height. The height is the average of the height of the function at the two corner points. The length of the interval is the difference between the two corner points.

Lastly, we compute the area of the trapezoid and add it to our answer:

   trap_area = base * height;      %area of trapezoid  curve_area = curve_area + trap_area;    %add to continuing sumend

The end statement closes the loop over triangles.

To check the accuracy of our code, we test it with many examples, one of which is shown here. The function trapz() is a built-in function that performs the same operation:

>>x = 0:.01:pi;>>y = sin(x);>>mytrapz(x,y)ans = 1.99998206504367>>trapz(x,y)ans = 1.99998206504367

Additionally, we know that 0 π sin ( x ) d x = 2 , so the answer we are getting is very close to the true value.

A simpler implementation of the code is included at the end, if we specify a third argument ` fast ':

    %alternate (fast) implementation curve_area = sum(y(2:end-1).*(x(3:end) - x(1:end-2)));curve_area = curve_area + y(1)*(x(2) - x(1)) + y(end)*(x(end) - x(end-1)); curve_area = curve_area/2;

The explanation for this code is left as exercise 2.1.

Integration and the trapezoid rule

The trapezoid rule is a way of estimating the area under a function. This is exactly what we call an integral . The integral of f ( x ) from a to b looks like this:

a b f ( x ) d x

For well-behaved functions, evaluation of the trapezoid rule approaches the true value of the integral (true area underneath the curve) as we evaluate smaller and smaller intervals. Of course, there are other ways to characterize integration, namely the Fundamental Theorem of Calculus . For more on this, see the Connexions module Integration, Average Behavior: The Fundamental Theorem of Calculus .

Exercises

2.1 Show that Equation [link] is equivalent to the “fast" version of the code:

approximate area of curve = i = 2 n - 1 f ( t 1 ) ( x i + 1 - x i - 1 ) + f ( t 1 ) ( x 2 - x 1 ) + f ( t n ) ( x n - x n - 1 )

2.2 Test the accuracy of mytrapz.m for y = sin ( x ) (or some other function) as you increase the number of trapezoids. Plot your result on a loglog() plot: on the x -axis, number of trapezoids, and on the y -axis, error.

Fourier method for decomposing signals

We now introduce the key mathematical ideas that will allow us to break down signals into their component frequencies.

Building the tools

Suppose the function f ( t ) consists of several sine waves added together:

f ( t ) = a 1 sin ( 1 · 2 π t ) + a 2 sin ( 2 · 2 π t ) + + a n sin ( n · 2 π t )

Suppose we know f ( t ) over some interval, say [ 0 , 1 ] , and we want to find a j . Before we jump into this, we need to calculate the value of a certain integral. For integers h and k , with h k ,

0 1 sin ( h · 2 π t ) sin ( k · 2 π t ) d t = 0 1 1 2 cos ( ( h - k ) · 2 π t ) - cos ( ( h + k ) · 2 π t ) d t trigononmic identity (substitution) = 1 2 ( h - k ) 2 π t sin ( ( h - k ) · 2 π t ) - 1 2 ( h + k ) 2 π sin ( ( h + k ) · 2 π t ) | t = 0 1 integral of cosine is sine = 0 evaluate from 0 to 1

If instead h = k ,

0 1 sin ( h · 2 π t ) 2 d t = 0 1 1 2 ( 1 - cos ( 2 h · 2 π t ) ) d t trigononmic identity (substitution) = x 2 - 1 ( 2 h · 2 π ) sin ( 2 h · 2 π t ) | t = 0 1 integral of cosine is sine = 1 / 2 evaluate from 0 to 1

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, The art of the pfug. OpenStax CNX. Jun 05, 2013 Download for free at http://cnx.org/content/col10523/1.34
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'The art of the pfug' conversation and receive update notifications?

Ask