Finding Integreand using Weedle's Rule - GeeksforGeeks

11 Jun, 2021
Given a function and two integers a and b. The task is to find the integrand of the given function from lower limit(a) to the upper limit(b) using Weedle’s Rule. The given function is: 
Examples: 
Input: a = 0, b = 6 Output: 1.373448
Input: a = 10, b = 13 Output: f(x) = 0.022897  
Approach: The integration of any function using Weedle’s Formula is given by: 
= where, h = and i = [0, 6]  
Below are the steps:  
Find the value of h from the above formula i.e., h = .Find the value from to and calculate the value from to Substitute the above values in Weedle’s Formula to find the integral value.
Find the value of h from the above formula i.e., h = .
Find the value from to and calculate the value from to 
Substitute the above values in Weedle’s Formula to find the integral value.
Below is the implementation of the above approach:  
C++
C
Java
Python3
C#
Javascript
// C++ program to Implement Weedle's Rule#include <bits/stdc++.h>using namespace std; // A sample function f(x) = 1/(1+x^2)float y(float x){    float num = 1;    float denom = 1.0 + x * x;     return num / denom;} // Function to find the integral value// of f(x) with step size h, with// initial lower limit and upper limit// a and bfloat WeedleRule(float a, float b){    // Find step size h    double h = (b - a) / 6;     // To store the final sum    float sum = 0;     // Find sum using Weedle's Formula    sum = sum + (((3 * h) / 10) * (y(a)                                + y(a + 2 * h)                                + 5 * y(a + h)                                + 6 * y(a + 3 * h)                                + y(a + 4 * h)                                + 5 * y(a + 5 * h)                                + y(a + 6 * h)));     // Return the final sum    return sum;} // Driver Codeint main(){    // lower limit and upper limit    float a = 0, b = 6;     // Function Call    cout<< "f(x) = "<< fixed <<  WeedleRule(a, b);    return 0;}// This code is contributed by shivanisinghss2110
// C program to Implement Weedle's Rule#include <math.h>#include <stdio.h> // A sample function f(x) =  1/(1+x^2)float y(float x){    float num = 1;    float denom = 1.0 + x * x;     return num / denom;} // Function to find the integral value// of f(x) with step size h, with// initial lower limit and upper limit// a and bfloat WeedleRule(float a, float b){    // Find step size h    double h = (b - a) / 6;     // To store the final sum    float sum = 0;     // Find sum using Weedle's Formula    sum = sum + (((3 * h) / 10) * (y(a)                                   + y(a + 2 * h)                                   + 5 * y(a + h)                                   + 6 * y(a + 3 * h)                                   + y(a + 4 * h)                                   + 5 * y(a + 5 * h)                                   + y(a + 6 * h)));     // Return the final sum    return sum;} // Driver Codeint main(){    // lower limit and upper limit    float a = 0, b = 6;     // Function Call    printf("f(x) = %f", WeedleRule(a, b));    return 0;}
// Java program to Implement Weedle's Ruleimport java.util.*;class GFG{     // A sample function f(x) = 1/(1+x^2)    static float y(float x)    {        float num = 1;        float denom = (float)1.0 + x * x;             return num / denom;    }         // Function to find the integral value    // of f(x) with step size h, with    // initial lower limit and upper limit    // a and b    static float WeedleRule(float a, float b)    {        // Find step size h        float h = (b - a) / 6;             // To store the final sum        float sum = 0;             // Find sum using Weedle's Formula        sum = sum + (((3 * h) / 10) * (y(a)                                    + y(a + 2 * h)                                    + 5 * y(a + h)                                    + 6 * y(a + 3 * h)                                    + y(a + 4 * h)                                    + 5 * y(a + 5 * h)                                    + y(a + 6 * h)));             // Return the final sum        return sum;    }         // Driver Code    public static void main(String args[])    {        // lower limit and upper limit        float a = 0, b = 6;                 // Function Call        float num=WeedleRule(a, b);        System.out.format("f(x) = "+"%.6f", num);             }} // This code is contributed by AbhiThakur
# Python3 program to Implement Weedle's Rule # A sample function f(x) = 1/(1+x^2)def y(x):    num = 1;    denom = float(1.0 + x * x);     return num / denom; # Function to find the integral value# of f(x) with step size h, with# initial lower limit and upper limit# a and bdef WeedleRule(a, b):         # Find step size h    h = (b - a) / 6;         # To store the final sum    sum = 0;         # Find sum using Weedle's Formula    sum = sum + (((3 * h) / 10) * (y(a)            + y(a + 2 * h)            + 5 * y(a + h)            + 6 * y(a + 3 * h)            + y(a + 4 * h)            + 5 * y(a + 5 * h)            + y(a + 6 * h)));     # Return the final sum    return sum; # Driver Codeif __name__ == '__main__':         # lower limit and upper limit    a = 0;    b = 6;     # Function Call    num = WeedleRule(a, b);    print("f(x) = {0:.6f}".format(num)); # This code is contributed by sapnasingh4991
// C# program to Implement Weedle's Ruleusing System;class GFG{     // A sample function f(x) = 1/(1+x^2)    static float y(float x)    {        float num = 1;        float denom = (float)1.0 + x * x;             return num / denom;    }         // Function to find the integral value    // of f(x) with step size h, with    // initial lower limit and upper limit    // a and b    static float WeedleRule(float a, float b)    {        // Find step size h        float h = (b - a) / 6;             // To store the final sum        float sum = 0;             // Find sum using Weedle's Formula        sum = sum + (((3 * h) / 10) * (y(a)                                    + y(a + 2 * h)                                    + 5 * y(a + h)                                    + 6 * y(a + 3 * h)                                    + y(a + 4 * h)                                    + 5 * y(a + 5 * h)                                    + y(a + 6 * h)));             // Return the final sum        return sum;    }         // Driver Code    public static void Main()    {        // lower limit and upper limit        float a = 0, b = 6;                 // Function Call        float num=WeedleRule(a, b);        Console.Write("f(x) = "+num);             }} // This code is contributed by AbhiThakur
<script> // Javascript program to Implement Weedle's Rule // A sample function f(x) = 1/(1+x^2)function y(x){    let num = 1;    let denom = 1.0 + x * x;      return num / denom;}  // Function to find the integral value// of f(x) with step size h, with// initial lower limit and upper limit// a and bfunction WeedleRule(a, b){         // Find step size h    let h = (b - a) / 6;      // To store the final sum    let sum = 0;      // Find sum using Weedle's Formula    sum = sum + (((3 * h) / 10) *        (y(a) + y(a + 2 * h) + 5 * y(a + h) +            6 * y(a + 3 * h) + y(a + 4 * h) +            5 * y(a + 5 * h) + y(a + 6 * h)));      // Return the final sum    return sum.toFixed(6);} // Driver code // lower limit and upper limitlet a = 0, b = 6; // Function Calllet num = WeedleRule(a, b);document.write("f(x) = " + num); // This code is contributed by divyeshrabadiya07 </script>
f(x) = 1.373448
 
abhaysingh290895
sapnasingh4991
shivanisinghss2110
simranarora5sos
divyeshrabadiya07
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Program to print prime numbers from 1 to N.
Modular multiplicative inverse
Fizz Buzz Implementation
Generate all permutation of a set in Python
Check if a number is Palindrome
Program to multiply two matrices
Segment Tree | Set 1 (Sum of given range)
How to check if a given point lies inside or outside a polygon?
Merge two sorted arrays with O(1) extra space
Count ways to reach the n'th stair