Friday, November 15, 2024
Google search engine
HomeData Modelling & AIIntegration in a Polynomial for a given value

Integration in a Polynomial for a given value

Given string str which represents a polynomial and a number N, the task is to integrate this polynomial with respect to X at the given value N
Examples: 

Input: str = “90x4 + 24x3 + 18x2 + 18x”, N = 1. 
Output: 39 
Explanation: 
Given, dy/dx = 90*(X4) + 24* (X3) + 18* (X2) + 18*(X). On integrating this equation, we get 18*(X5) + 6*(X4) + 6*(X3) + 9*(X2) and substituting the value X = 1, we get: 
18 + 6 + 6 + 9 = 39. 
Input: str = “4x3 + 2x2 + 3x”, N = 2 
Output: 27 

Approach: The idea is to use the identity of the integration. For some given function X with the power of N, the integration of this term is given by: 

\int (X^{N}) = \frac{X^{N + 1}}{N + 1}
 

Therefore, the following steps are followed to compute the answer:  

 

  • Get the string.
  • Split the string and perform the integration based on the above formula.
  • Substitute the value of N in the obtained expression.
  • Add all the individual values to get the final integral value.

 

Below is the implementation of the above approach:
 

 

C++




// C++ program to find the integration
// of the given polynomial for the
// value N
 
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
 
// Function to return the integral
// of the given term
double inteTerm(string pTerm, ll val)
{
    // Get the coefficient
    string coeffStr = "";
    int i;
 
    // Loop to iterate through the string
    // and get the coefficient
    for (i = 0; pTerm[i] != 'x'; i++)
        coeffStr.push_back(pTerm[i]);
    ll coeff = atol(coeffStr.c_str());
 
    // Get the Power
    string powStr = "";
 
    // Loop to skip 2 characters for x and ^
    for (i = i + 2; i != pTerm.size(); i++)
        powStr.push_back(pTerm[i]);
    ll power = atol(powStr.c_str());
 
    // Return the computed integral
    return (coeff * pow(val, power + 1))
           / (power + 1);
}
 
// Functionto find the integration
// of the given polynomial for the
// value N
double integrationVal(string poly, int val)
{
    ll ans = 0;
 
    // Using string stream to get the
    // input in tokens
    istringstream is(poly);
    string pTerm;
 
    while (is >> pTerm) {
 
        // If the token is equal to '+' then
        // continue with the string
        if (pTerm == "+")
            continue;
 
        // Otherwise find the integration
        // of that particular term
        else
            ans = (ans + inteTerm(pTerm, val));
    }
    return ans;
}
 
// Driver code
int main()
{
    string str = "4x^3 + 3x^1 + 2x^2";
    int val = 2;
    cout << integrationVal(str, val);
    return 0;
}


Java




// Java program for the above approach
public class GFG
{
 
  // Function to return the integral
  // of the given term
  static int inteTerm(String pTerm, int val)
  {
 
    // Get the coefficient
    String coeffStr = "";
 
    // Loop to iterate through
    // the string and get the
    // coefficient
    int i = 0;
    while (i < pTerm.length() && pTerm.charAt(i) != 'x')
    {
      coeffStr += pTerm.charAt(i);
      i += 1;
    }
 
    int coeff = Integer.parseInt(coeffStr);
 
    // Get the Power
    String powStr = "";
 
    // Loop to skip 2 characters
    // for x and ^
    int j = i + 2;
    while(j< pTerm.length())
    {
      powStr += (pTerm.charAt(j));
      j += 1;
    }
    int power = Integer.parseInt(powStr);
 
    // Return the computed integral
    return ((coeff * (int)Math.pow(val, power + 1)) / (power + 1));
  }
 
  // Functionto find the integration
  // of the given polynomial for the
  // value N
  static int integrationVal(String poly, int val)
  {
    int ans = 0;
 
    // Using string stream to
    // get the input in tokens
    String[] stSplit = poly.split(" \\+ ");
 
    int i = 0;
    while(i < stSplit.length)
    {
      ans = (ans + inteTerm(stSplit[i], val));
      i += 1;
    }
 
    return ans;
  }
 
  // Driver code
  public static void main(String[] args) {
    String st = "4x^3 + 3x^1 + 2x^2";
    int val = 2;
    System.out.println(integrationVal(st, val));
  }
}
 
// This code is contributed by divyesh072019.


Python3




# Python3 program to find
# the integration of the
# given polynomial for the
# value N
 
# Function to return the integral
# of the given term
def inteTerm(pTerm, val):
 
    # Get the coefficient
    coeffStr = ""
 
    # Loop to iterate through
    # the string and get the
    # coefficient
    i = 0
    while (i < len(pTerm) and
           pTerm[i] != 'x'):
        coeffStr += pTerm[i]
        i += 1
         
    coeff = int(coeffStr)
 
    # Get the Power
    powStr = ""
 
    # Loop to skip 2 characters
    # for x and ^
    j = i + 2
    while j< len(pTerm):
        powStr += (pTerm[j])
        j += 1
    power = int(powStr)
 
    # Return the computed integral
    return ((coeff *
             pow(val,
                 power + 1)) //
            (power + 1))
 
# Functionto find the integration
# of the given polynomial for the
# value N
def integrationVal(poly, val):
 
    ans = 0
 
    # Using string stream to
    # get the input in tokens
    stSplit = poly.split("+")
 
    i = 0
    while i < len(stSplit):
        ans = (ans +
               inteTerm(stSplit[i],
                        val))
        i += 1
 
    return ans
 
# Driver code
if __name__ == "__main__":
 
    st = "4x^3 + 3x^1 + 2x^2"
    val = 2
    print(integrationVal(st, val))
 
# This code is contributed by Chitranayal


C#




// C# program for the above approach
using System;
using System.Collections.Generic;
class GFG {
 
  // Function to return the integral
  // of the given term
  static int inteTerm(string pTerm, int val)
  {
 
    // Get the coefficient
    string coeffStr = "";
 
    // Loop to iterate through
    // the string and get the
    // coefficient
    int i = 0;
    while (i < pTerm.Length && pTerm[i] != 'x')
    {
      coeffStr += pTerm[i];
      i += 1;
    }
 
    int coeff = Convert.ToInt32(coeffStr);
 
    // Get the Power
    string powStr = "";
 
    // Loop to skip 2 characters
    // for x and ^
    int j = i + 2;
    while(j< pTerm.Length)
    {
      powStr += (pTerm[j]);
      j += 1;
    }
    int power = Convert.ToInt32(powStr);
 
    // Return the computed integral
    return ((coeff * (int)Math.Pow(val, power + 1)) / (power + 1));
  }
 
  // Functionto find the integration
  // of the given polynomial for the
  // value N
  static int integrationVal(string poly, int val)
  {
    int ans = 0;
 
    // Using string stream to
    // get the input in tokens
    string[] stSplit = poly.Split('+');
 
    int i = 0;
    while(i < stSplit.Length)
    {
      ans = (ans + inteTerm(stSplit[i], val));
      i += 1;
    }
 
    return ans;
  }
 
  // Driver code
  static void Main() {
    string st = "4x^3 + 3x^1 + 2x^2";
    int val = 2;
    Console.WriteLine(integrationVal(st, val));
  }
}
 
// This code is contributed by divyeshrabadiya07.


Javascript




<script>
// Javascript program for the above approach
 
// Function to return the integral
  // of the given term
function inteTerm(pTerm,val)
{
 
    // Get the coefficient
    let coeffStr = "";
  
    // Loop to iterate through
    // the string and get the
    // coefficient
    let i = 0;
    while (i < pTerm.length && pTerm[i] != 'x')
    {
      coeffStr += pTerm[i];
      i += 1;
    }
  
    let coeff = parseInt(coeffStr);
  
    // Get the Power
    let powStr = "";
  
    // Loop to skip 2 characters
    // for x and ^
    let j = i + 2;
    while(j< pTerm.length)
    {
      powStr += (pTerm[j]);
      j += 1;
    }
    let power = parseInt(powStr);
  
    // Return the computed integral
    return Math.floor((coeff * Math.floor(Math.pow(val, power + 1))) / (power + 1));
}
 
// Functionto find the integration
  // of the given polynomial for the
  // value N
function integrationVal(poly,val)
{
    let ans = 0;
  
    // Using string stream to
    // get the input in tokens
    let stSplit = poly.split(" + ");
  
    let i = 0;
    while(i < stSplit.length)
    {
      ans = (ans + inteTerm(stSplit[i], val));
      i += 1;
    }
  
    return ans;
}
 
// Driver code
let st = "4x^3 + 3x^1 + 2x^2";
let val = 2;
document.write(integrationVal(st, val));
 
// This code is contributed by avanitrachhadiya2155
</script>


Output: 

27

 

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 neveropen!

RELATED ARTICLES

Most Popular

Recent Comments