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;
 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Google Earth 7.1.8.3036 - View and contr...
Google Earth gives you a wealth of imagery and geographic information. Explore destinations like Maui and Paris, or browse content from Wikipedia, National Geographic, and more. Google Earth combines... Read more
QuickBooks 16.1.11.1556 R12 - Financial...
QuickBooks helps you manage your business easily and efficiently. Organize your finances all in one place, track money going in and out of your business, and spot areas where you can save. Built for... Read more
Google Earth 7.1.8.3036 - View and contr...
Google Earth gives you a wealth of imagery and geographic information. Explore destinations like Maui and Paris, or browse content from Wikipedia, National Geographic, and more. Google Earth combines... Read more
QuickBooks 16.1.11.1556 R12 - Financial...
QuickBooks helps you manage your business easily and efficiently. Organize your finances all in one place, track money going in and out of your business, and spot areas where you can save. Built for... Read more
FileZilla 3.24.0 - Fast and reliable FTP...
FileZilla (ported from Windows) is a fast and reliable FTP client and server with lots of useful features and an intuitive interface. Version 3.24.0: New The context menu for remote file search... Read more
Bookends 12.7.8 - Reference management a...
Bookends is a full-featured bibliography/reference and information-management system for students and professionals. Bookends uses the cloud to sync reference libraries on all the Macs you use.... Read more
Duplicate Annihilator 5.8.3 - Find and d...
Duplicate Annihilator takes on the time-consuming task of comparing the images in your iPhoto library using effective algorithms to make sure that no duplicate escapes. Duplicate Annihilator detects... Read more
BusyContacts 1.1.6 - Fast, efficient con...
BusyContacts is a contact manager for OS X that makes creating, finding, and managing contacts faster and more efficient. It brings to contact management the same power, flexibility, and sharing... Read more
MarsEdit 3.7.10 - Quick and convenient b...
MarsEdit is a blog editor for OS X that makes editing your blog like writing email, with spell-checking, drafts, multiple windows, and even AppleScript support. It works with with most blog services... Read more
BusyCal 3.1.4 - Powerful calendar app wi...
BusyCal is an award-winning desktop calendar that combines personal productivity features for individuals with powerful calendar sharing capabilities for families and workgroups. Its unique features... Read more

Super Mario Run dashes onto Android in M...
Super Mario Run was one of the biggest mobile launches in 2016 before it was met with a lukewarm response by many. While the game itself plays a treat, it's pretty hard to swallow the steep price for the full game. With that said, Android users... | Read more »
WarFriends Beginner's Guide: How to...
Chillingo's new game, WarFriends, is finally available world wide, and so far it's a refreshing change from common mobile game trends. The game's a mix of tower defense, third person shooter, and collectible card game. There's a lot to unpack here... | Read more »
Super Gridland (Entertainment)
Super Gridland 1.0 Device: iOS Universal Category: Entertainment Price: $1.99, Version: 1.0 (iTunes) Description: Match. Build. Survive. "exquisitely tuned" - Rock Paper Shotgun No in-app purches, and no ads! | Read more »
Red's Kingdom (Games)
Red's Kingdom 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: Mad King Mac has kidnapped your father and stolen your golden nut! Solve puzzles and battle goons as you explore and battle your... | Read more »
Turbo League Guide: How to tame the cont...
| Read more »
Fire Emblem: Heroes coming to Google Pla...
Nintendo gave us our first look at Fire Emblem: Heroes, the upcoming mobile Fire Emblem game the company hinted at last year. Revealed at the Fire Emblem Direct event held today, the game will condense the series' tactical RPG combat into bite-... | Read more »
ReSlice (Music)
ReSlice 1.0 Device: iOS Universal Category: Music Price: $9.99, Version: 1.0 (iTunes) Description: Audio Slice Machine Slice your audio samples with ReSlice and create flexible musical atoms which can be triggered by MIDI notes or... | Read more »
Stickman Surfer rides in with the tide t...
Stickson is back and this time he's taken up yet another extreme sport - surfing. Stickman Surfer is out this Thursday on both iOS and Android, so if you've been following the other Stickman adventures, you might be interested in picking this one... | Read more »
Z-Exemplar (Games)
Z-Exemplar 1.4 Device: iOS Universal Category: Games Price: $3.99, Version: 1.4 (iTunes) Description: | Read more »
5 dastardly difficult roguelikes like th...
Edmund McMillen's popular roguelike creation The Binding of Isaac: Rebirth has finally crawled onto mobile devices. It's a grotesque dual-stick shooter that tosses you into an endless, procedurally generated basement as you, the pitiable Isaac,... | Read more »

Price Scanner via MacPrices.net

Twelve South Releases RelaxedLeather Cases fo...
Inspired by the laid-back luxury of burnished leather boots and crafted in rich tones of taupe, herb and marsala, RelaxedLeather cases deliver smart, easy protection for the iPhone 7. Each genuine... Read more
Week’s Best Deal: New 2016 13-inch 2.0GHz Mac...
Amazon has the new 2016 13″ 2.0GHz non-Touch Bar MacBook Pros on sale for a limited time for $225 off MSRP including free shipping: - 13″ 2.0GHz MacBook Pro, Space Gray (MLL42LL/A): $1274.99 $225 off... Read more
Back in stock: Apple refurbished Mac minis fr...
Apple has Certified Refurbished Mac minis available starting at $419. Apple’s one-year warranty is included with each mini, and shipping is free: - 1.4GHz Mac mini: $419 $80 off MSRP - 2.6GHz Mac... Read more
Apple Ranked ‘Most Intimate Brand’
The top ranked ‘”intimate” brands continued to outperform the S&P and Fortune 500 indices in revenue and profit over the past 10 years, according to MBLM’s Brand Intimacy 2017 Report, the largest... Read more
B-Eng introduces SSD Health Check for Mac OS
Fehraltorf, Switzerland based independant Swiss company- B-Eng has announced the release and immediate availability of SSD Health Check 1.0, the company’s new hard drive utility for Mac OS X. As the... Read more
Apple’s Education discount saves up to $300 o...
Purchase a new Mac or iPad using Apple’s Education Store and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free: -... Read more
4-core 3.7GHz Mac Pro on sale for $2290, save...
Guitar Center has the 3.7GHz 4-core Mac Pro (MD253LL/A) on sale for $2289.97 including free shipping or free local store pickup (if available). Their price is a $710 savings over standard MSRP for... Read more
128GB Apple iPad Air 2, refurbished, availabl...
Apple has Certified Refurbished 128GB iPad Air 2s WiFis available for $419 including free shipping. That’s an $80 savings over standard MSRP for this model. A standard Apple one-year warranty is... Read more
13-inch 2.7GHz Retina MacBook Pro on sale for...
B&H Photo has the 2015 13″ 2.7GHz/128GB Retina Apple MacBook Pro on sale for $100 off MSRP. Shipping is free, and B&H charges NY tax only: - 13″ 2.7GHz/128GB Retina MacBook Pro (MF839LL/A): $... Read more
Laptop Market – Flight To Quality? – The ‘Boo...
Preliminary quarterly PC shipments data released by Gartner Inc. last week reveal an interesting disparity between sales performance of major name PC vendors as opposed to that of less well-known... Read more

Jobs Board

*Apple* macOS Systems Integration Administra...
…most exceptional support available in the industry. SCI is seeking an Junior Apple macOS systems integration administrator that will be responsible for providing Read more
*Apple* Retail - Multiple Positions- Deer Pa...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Technician - nfrastructure (United S...
Let’s Work Together Apple Technician This position is based in Portland, ME Life at nfrastructure At nfrastructure, we understand that our success results from our Read more
*Apple* Mobile Master - Best Buy (United Sta...
**467692BR** **Job Title:** Apple Mobile Master **Location Number:** 000602-Columbia MO-Store **Job Description:** **What does a Best Buy Apple Mobile Master Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.