Efficient program to calculate e^x

The value of Exponential Function e^x can be expressed using following Taylor Series.

e^x = 1 + x/1! + x^2/2! + x^3/3! + ...... 

How to efficiently calculate the sum of above series?
The series can be re-written as



e^x = 1 + (x/1) (1 + (x/2) (1 + (x/3) (........) ) ) 

Let the sum needs to be calculated for n terms, we can calculate sum using following loop.

for (i = n - 1, sum = 1; i > 0; --i )
    sum = 1 + x * sum / i; 

Following is implementation of the above idea.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ Efficient program to calculate 
// e raise to the power x 
#include <bits/stdc++.h>
using namespace std;
  
// Returns approximate value of e^x 
// using sum of first n terms of Taylor Series 
float exponential(int n, float x) 
    float sum = 1.0f; // initialize sum of series 
  
    for (int i = n - 1; i > 0; --i ) 
        sum = 1 + x * sum / i; 
  
    return sum; 
  
// Driver code 
int main() 
    int n = 10; 
    float x = 1.0f; 
    cout << "e^x = " << fixed << setprecision(5) << exponential(n, x); 
    return 0; 
  
// This code is contributed by rathbhupendra

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

// C Efficient program to calculate
// e raise to the power x
#include <stdio.h>
  
// Returns approximate value of e^x 
// using sum of first n terms of Taylor Series
float exponential(int n, float x)
{
    float sum = 1.0f; // initialize sum of series
  
    for (int i = n - 1; i > 0; --i )
        sum = 1 + x * sum / i;
  
    return sum;
}
  
// Driver program to test above function
int main()
{
    int n = 10;
    float x = 1.0f;
    printf("e^x = %f", exponential(n, x));
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java efficient program to calculate 
// e raise to the power x
import java.io.*;
  
class GFG 
{
    // Function returns approximate value of e^x 
    // using sum of first n terms of Taylor Series
    static float exponential(int n, float x)
    {
        // initialize sum of series
        float sum = 1
   
        for (int i = n - 1; i > 0; --i )
            sum = 1 + x * sum / i;
   
        return sum;
    }
      
    // driver program
    public static void main (String[] args) 
    {
        int n = 10;
        float x = 1;
        System.out.println("e^x = "+exponential(n,x));
    }
}
  
// Contributed by Pramod Kumar

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to calculate
# e raise to the power x
  
# Function to calculate value
# using sum of first n terms of 
# Taylor Series
def exponential(n, x):
  
    # initialize sum of series
    sum = 1.0 
    for i in range(n, 0, -1):
        sum = 1 + x * sum / i
    print ("e^x =", sum)
  
# Driver program to test above function
n = 10
x = 1.0
exponential(n, x)
  
# This code is contributed by Danish Raza

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# efficient program to calculate 
// e raise to the power x
using System;
  
class GFG 
{
    // Function returns approximate value of e^x 
    // using sum of first n terms of Taylor Series
    static float exponential(int n, float x)
    {
        // initialize sum of series
        float sum = 1; 
  
        for (int i = n - 1; i > 0; --i )
            sum = 1 + x * sum / i;
  
        return sum;
    }
      
    // driver program
    public static void Main () 
    {
        int n = 10;
        float x = 1;
        Console.Write("e^x = " + exponential(n, x));
    }
}
  
// This code is contributed by nitin mittal.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP Efficient program to calculate
// e raise to the power x
  
// Returns approximate value of e^x 
// using sum of first n terms 
// of Taylor Series
function exponential($n, $x)
{
    // initialize sum of series
    $sum = 1.0; 
  
    for ($i = $n - 1; $i > 0; --$i )
        $sum = 1 + $x * $sum / $i;
  
    return $sum;
}
  
// Driver Code
$n = 10;
$x = 1.0;
echo("e^x = " . exponential($n, $x));
  
// This code is contributed by Ajit.
?>

chevron_right



Output:

e^x = 2.718282

This article is compiled by Rahul and reviewed by GeeksforGeeks team. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above



My Personal Notes arrow_drop_up



Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.