TweetFollow Us on Twitter

Simpsons Rule
Volume Number:9
Issue Number:10
Column Tag:Pascal workshop

Simpson’s Rule

An ingenious method for approximating integrals

By Marek Hajek, Incline Village, Nevada

Note: Source code files accompanying article are located on MacTech CD-ROM or source code disks.

About the author

Marek Hajek has been programming the Macintosh since 1989. He programmed two and a half years for Sierra Software Innovations where he wrote several in-house MacApp applications, participated in the development of SuperTEView, and the relational database engine - Inside Out II. Currently, he is receiving his bachelor's degree in Computer Science at the University of Nevada, Reno. He supports his college education by making useful programming tools - sorting/searching algorithms, and custom development. He welcomes your comments on this article either by phone at (702) 673-3341 or write to P.O. Box 7542, Incline Village, NV 89450.

Simpson's Rule, named after the great English mathematician Thomas Simpson, is an ingenious method for approximating integrals. If you don't know what integrals are used for, don't feel bad. Many college students who complete three semesters of calculus may be able to “compute” an integral, but won't know its practical application either. Computation of integrals is difficult to learn and easy to forget. [Many years out of school, I can attest to this! - Ed.]

Integrals are essential to the modern world. Practical applications of the integral are found in business, hydrostatics, highway construction, travel to the moon, solving of differential equations, and other branches of science. The first computer ever built was constructed to speed up ballistic missile trajectory calculations which meant solving a lot of integrals. [Given the forces imposed on a missile (gravity, thrust, wind resistance, etc.), integration is necessary to determine its path. - Tech. Ed.]

To illustrate the use of integrals, look at the curve in Figure 1.1a. The curve is described by the equation (1+X4). I want to compute the area of the shaded region. Notice, the area is between the curve, the x-axis, and the x-coordinates [-1,1]. The integral that will compute the area of the shaded region is in figure 1.1b. Anybody familiar with integrals will tell you that there is no known way to solve the integral abstractly (the quick and easy way).

Figure 1.1a

Figure 1.1b

If an integral can be solved on an abstract level, the computation is relatively easy. In practical applications, however, an integral can seldom be solved abstractly. That's where the Simpson's Rule finds its use. Thomas Simpson invented an equation, today called Simpson's Rule, which can be used to approximate an integral.

APPROXIMATION

The following line shows this equation in abstract form.

Looks complicated? First, take a look at figure 1.2.

Figure 1.2

In the approximation equation, the variables a and b are the boundaries of the integral and correspond to -1 and 1 in figure 1.1a. The variable n is the number of times the region under the curve is partitioned into smaller regions. You only have to know two things about n. First, the larger n is, the more accurate the approximation. And second, n must be a positive even integer (+2, 4, 6, ...). The function f(x) is the function you are integrating. In my example, it is (1+X4). Whenever you encounter f(x) in the equation, pass it the appropriate parameter. The parameters are the x-coordinates of the partitions (X0, X1, X2, X3, , Xn).

[Simpson’s rule approximates the function on each subinterval of the partition by a parabola that passes through the endpoints and the midpoint. The area under a parabola is easily calculated. Adding up these areas gives an estimate of the integral. - Tech. Ed.]

EXAMPLE COMPUTATION

To compute the integral in figure 1.1b, given four partitions (n=4), the approximation looks like this:

Simplified:

Simplified:

Result: 2.1791. . .

SIMPSON'S RULE - PASCAL

Figure 1.3

I translated Simpson's Rule into several pascal functions. To help you see what each function does, the equation is divided into three parts - Head, Twos/Fours, and First/Last (Figure 1.3). Have fun!

CODE LISTING

{--------------------Main Program----------------------------}
PROGRAM Simpson;
(* Author  - Marek Hajek *)
(* P.O. Box 7542 *)
(* Incline Village, NV 89450 *)

(* This program was written with Think Pascal 4.0.1 *)
 USES
(* Make sure you include the sane library *)
  Auxiliary, Sane;

 CONST
  kLowerLimit = -1;               (* Corresponds to "a" *)
  kUpperLimit = 1;                (* Corresponds to "b" *)
  kPartitions = 4;                (* Corresponds to n = 4 *)

 VAR
  result: Extended;
  (* The approximated result of the Integral *)

BEGIN
 ShowText;  (* Brings up the Think Pascal text window *)

 result := ComputeIntegral(kLowerLimit, kUpperLimit, 
   kPartitions, IntegrandFunction);
 writeln('Integral with lower/upper limits ', kLowerLimit : 0, 
   '/', kUpperLimit : 0, ', subintervals ', kPartitions : 0, 
   ' is: ', result);

 readln; (* Stop here before the text window disappears *)
END.

{--------------------ComputeIntegral-------------------------}
FUNCTION ComputeIntegral (lowerLimit, upperLimit: Extended;
       partitionCount: LongInt;
       FUNCTION IntegrandFunction (partitionCoordinate: 
       Extended): Extended): Extended;
(* The function ComputeIntegral calls the necessary *)
(* functions to compute the individual parts.*)
(* It returns the approximate result. *)
VAR
   result: Extended;
   head: Extended;
   partitionIncrement: Extended;
   partitionCoordinate: Extended;
   index: LongInt;

 BEGIN
  head := ComputeHead(lowerLimit, upperLimit, partitionCount);
  result := FirstAndLast(lowerLimit, upperLimit, 
    IntegrandFunction);

  partitionIncrement := 
    (upperLimit - lowerLimit) /  partitionCount;
  partitionCoordinate := lowerLimit;

(* The FOR  loop computes the second part of the *)
(* integral -> Twos/Fours *)
  FOR  index := 1 TO partitionCount - 1  DO
   BEGIN
(* Partition coordinate corresponds to X0, X1, X2,.....Xn *)
    partitionCoordinate := 
      partitionCoordinate +  partitionIncrement;

(* Odd index means compute 4* f(x), even index *)
(* means compute 2 * f(x)  *)
    IF Odd(index) THEN
     result := result + 
       4 * IntegrandFunction(partitionCoordinate)
    ELSE
     result := result + 
       2 * IntegrandFunction(partitionCoordinate)

   END;  (* FOR ... *)

  ComputeIntegral := head * result;
 END;

{------------------IntegrandFunction-------------------------}
 FUNCTION IntegrandFunction (partitionCoordinate: 
   Extended): Extended;
(* The Integrand function is the function inside the *)
(* integral and needs to be defined by you. In my example, *)
(* the integrand function is  (1+X4) and is translated *)
(* into pascal. The function takes one argument which is *)
(* the x coordinate of the partition. *)

 BEGIN
{ This functions computes ->  (X * X * X * X +1)  }
  IntegrandFunction := 
    SQRT(XpwrI(partitionCoordinate, 4) + 1);
 END;

{---------------------ComputeHead----------------------------}
 FUNCTION ComputeHead (lowerLimit, upperLimit: Extended;
       partitionCount: LongInt): Extended;
(* Computes the first part of the integral equation, *)
(* the Head.  Corresponds to (b - a)/(3*n)  *)

 BEGIN
  ComputeHead := 
    (upperLimit - lowerLimit) / (3 * partitionCount);
 END;

{----------------------FirstAndLast--------------------------}
 FUNCTION FirstAndLast (lowerLimit, upperLimit: Extended;
       FUNCTION IntegrandFunction (partitionCoordinate: 
       Extended): Extended): Extended;
(* Computes the third part of the integral, the *)
(* FIRST/LAST.  Corresponds to [f(X0) + f(Xn)  *)

 BEGIN
  FirstAndLast := IntegrandFunction(lowerLimit) + 
    IntegrandFunction(upperLimit);
 END;
 
AAPL
$501.11
Apple Inc.
+2.43
MSFT
$34.64
Microsoft Corpora
+0.15
GOOG
$898.03
Google Inc.
+16.02

MacTech Search:
Community Search:

Software Updates via MacUpdate

CrossOver 12.5.1 - Run Windows apps on y...
CrossOver can get your Windows productivity applications and PC games up and running on your Mac quickly and easily. CrossOver runs the Windows software that you need on Mac at home, in the office,... Read more
Paperless 2.3.1 - Digital documents mana...
Paperless is a digital documents manager. Remember when everyone talked about how we would soon be a paperless society? Now it seems like we use paper more than ever. Let's face it - we need and we... Read more
Apple HP Printer Drivers 2.16.1 - For OS...
Apple HP Printer Drivers includes the latest HP printing and scanning software for Mac OS X 10.6, 10.7 and 10.8. For information about supported printer models, see this page.Version 2.16.1: This... Read more
Yep 3.5.1 - Organize and manage all your...
Yep is a document organization and management tool. Like iTunes for music or iPhoto for photos, Yep lets you search and view your documents in a comfortable interface, while offering the ability to... Read more
Apple Canon Laser Printer Drivers 2.11 -...
Apple Canon Laser Printer Drivers is the latest Canon Laser printing and scanning software for Mac OS X 10.6, 10.7 and 10.8. For information about supported printer models, see this page.Version 2.11... Read more
Apple Java for Mac OS X 10.6 Update 17 -...
Apple Java for Mac OS X 10.6 delivers improved security, reliability, and compatibility by updating Java SE 6.Version Update 17: Java for Mac OS X 10.6 Update 17 delivers improved security,... Read more
Arq 3.3 - Online backup (requires Amazon...
Arq is online backup for the Mac using Amazon S3 and Amazon Glacier. It backs-up and faithfully restores all the special metadata of Mac files that other products don't, including resource forks,... Read more
Apple Java 2013-005 - For OS X 10.7 and...
Apple Java for OS X 2013-005 delivers improved security, reliability, and compatibility by updating Java SE 6 to 1.6.0_65. On systems that have not already installed Java for OS X 2012-006, this... Read more
DEVONthink Pro 2.7 - Knowledge base, inf...
Save 10% with our exclusive coupon code: MACUPDATE10 DEVONthink Pro is your essential assistant for today's world, where almost everything is digital. From shopping receipts to important research... Read more
VirtualBox 4.3.0 - x86 virtualization so...
VirtualBox is a family of powerful x86 virtualization products for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers... Read more

Briquid Gets Updated with New Undo Butto...
Briquid Gets Updated with New Undo Button, Achievements, and Leaderboards, on Sale for $0.99 Posted by Andrew Stevens on October 16th, 2013 [ | Read more »
Halloween – iLovecraft Brings Frightenin...
Halloween – iLovecraft Brings Frightening Stories From Author H.P. | Read more »
The Blockheads Creator David Frampton Gi...
The Blockheads Creator David Frampton Gives a Postmortem on the Creation Process of the Game Posted by Andrew Stevens on October 16th, 2013 [ permalink ] Hey, a | Read more »
Sorcery! Enhances the Gameplay in Latest...
Sorcery! | Read more »
It Came From Australia: Tiny Death Star
NimbleBit and Disney have teamed up to make Star Wars: Tiny Death Star, a Star Wars take on Tiny Tower. Right now, the game is in testing in Australia (you will never find a more wretched hive of scum and villainy) but we were able to sneak past... | Read more »
FIST OF AWESOME Review
FIST OF AWESOME Review By Rob Rich on October 16th, 2013 Our Rating: :: TALK TO THE FISTUniversal App - Designed for iPhone and iPad A totalitarian society of bears is only the tip of the iceberg in this throwback brawler.   | Read more »
PROVERBidioms Paints English Sayings in...
PROVERBidioms Paints English Sayings in a Picture for Users to Find Posted by Andrew Stevens on October 16th, 2013 [ permalink ] | Read more »
OmniFocus 2 for iPhone Review
OmniFocus 2 for iPhone Review By Carter Dotson on October 16th, 2013 Our Rating: :: OMNIPOTENTiPhone App - Designed for the iPhone, compatible with the iPad OmniFocus 2 for iPhone is a task management app for people who absolutely... | Read more »
Ingress – Google’s Augmented-Reality Gam...
Ingress – Google’s Augmented-Reality Game to Make its Way to iOS Next Year Posted by Andrew Stevens on October 16th, 2013 [ permalink ] | Read more »
CSR Classics is Full of Ridiculously Pre...
CSR Classics is Full of Ridiculously Pretty Classic Automobiles Posted by Rob Rich on October 16th, 2013 [ permalink ] | Read more »

Price Scanner via MacPrices.net

Apple Store Canada offers refurbished 11-inch...
 The Apple Store Canada has Apple Certified Refurbished 2013 11″ MacBook Airs available starting at CDN$ 849. Save up to $180 off the cost of new models. An Apple one-year warranty is included with... Read more
Updated MacBook Price Trackers
We’ve updated our MacBook Price Trackers with the latest information on prices, bundles, and availability on MacBook Airs, MacBook Pros, and the MacBook Pros with Retina Displays from Apple’s... Read more
13-inch Retina MacBook Pros on sale for up to...
B&H Photo has the 13″ 2.5GHz Retina MacBook Pro on sale for $1399 including free shipping. Their price is $100 off MSRP. They have the 13″ 2.6GHz Retina MacBook Pro on sale for $1580 which is $... Read more
AppleCare Protection Plans on sale for up to...
B&H Photo has 3-Year AppleCare Warranties on sale for up to $105 off MSRP including free shipping plus NY sales tax only: - Mac Laptops 15″ and Above: $244 $105 off MSRP - Mac Laptops 13″ and... Read more
Apple’s 64-bit A7 Processor: One Step Closer...
PC Pro’s Darien Graham-Smith reported that Canonical founder and Ubuntu Linux creator Mark Shuttleworth believes Apple intends to follow Ubuntu’s lead and merge its desktop and mobile operating... Read more
MacBook Pro First, Followed By iPad At The En...
French site Info MacG’s Florian Innocente says he has received availability dates and order of arrival for the next MacBook Pro and the iPad from the same contact who had warned hom of the arrival of... Read more
Chart: iPad Value Decline From NextWorth
With every announcement of a new Apple device, serial upgraders begin selling off their previous models – driving down the resale value. So, with the Oct. 22 Apple announcement date approaching,... Read more
SOASTA Survey: What App Do You Check First in...
SOASTA Inc., the leader in cloud and mobile testing announced the results of its recent survey showing which mobile apps are popular with smartphone owners in major American markets. SOASTA’s survey... Read more
Apple, Samsung Reportedly Both Developing 12-...
Digitimes’ Aaron Lee and Joseph Tsai report that Apple and Samsung Electronics are said to both be planning to release 12-inch tablets, and that Apple is currently cooperating with Quanta Computer on... Read more
Apple’s 2011 MacBook Pro Lineup Suffering Fro...
Appleinsider’s Shane Cole says that owners of early-2011 15-inch and 17-inch MacBook Pros are reporting issues with those models’ discrete AMD graphics processors, which in some cases results in the... Read more

Jobs Board

*Apple* Retail - Manager - Apple (United Sta...
Job SummaryKeeping an Apple Store thriving requires a diverse set of leadership skills, and as a Manager, youre a master of them all. In the stores fast-paced, dynamic Read more
*Apple* Support / *Apple* Technician / Mac...
Apple Support / Apple Technician / Mac Support / Mac Set up / Mac TechnicianMac Set up and Apple Support technicianThe person we are looking for will have worked Read more
Senior Mac / *Apple* Systems Engineer - 318...
318 Inc, a top provider of Apple solutions is seeking a new Senior Apple Systems Engineer to be based out of our Santa Monica, California location. We are a Read more
*Apple* Retail - Manager - Apple Inc. (Unite...
Job Summary Keeping an Apple Store thriving requires a diverse set of leadership skills, and as a Manager, you’re a master of them all. In the store’s fast-paced, Read more
*Apple* Solutions Consultant - Apple (United...
**Job Summary** Apple Solutions Consultant (ASC) - Retail Representatives Apple Solutions Consultants are trained by Apple on selling Apple -branded products Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.