Finding Integrand using Weedle’s Rule

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.373448Input: 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.
Below is the implementation of the above approach:
C++
// 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
// 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
// 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
# 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#
// 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 |
Javascript
<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> |
Output:
f(x) = 1.373448
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



