Program to implement Linear Extrapolation

What is Extrapolation?
Extrapolation is the process in mathematics where the required value is estimated beyond the range the of the given variable range. Extrapolation is often used to estimate the data of some observation below or above the given range. Extrapolation is also referred to as a mathematical prediction to predict values by observing the relationship between the given variables. There are many processes of Extrapolation.Here only Linear Extrapolation will be discussed. This process was first described by Thomas D. Clareson in 1959 in his book of science. He referred to it as a meaningful prediction by understanding the given data.

How to calculate Linear Exptrapolation?

The method is useful when the linear function is given. It is done by drawing a tangent and extending it beyond the limit. Linear Extrapolation gives a very good result when the point to be predicted is not very far from the rest of the points.

Extrapolation formula: y(x) = y_1(x) +\frac {x-x_1} {x_2-x_1} (y_2-y_1)

Here (x_1, y_1) and (x_2, y_2) are two given points and x is the point fow which we want to predict the value of y.

Examples:

Input: x_1=0.3, y_1=1.8, x_2=0.5, y_2=2.1, x = 1.2
Output: y = 3.15

Implementation:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ code for the implementation 
// of Linear extrapolation
  
#include <bits/stdc++.h>
using namespace std;
  
// Consider a structure
// to keep each pair of x and y together
struct Data {
    double x, y;
};
  
// Function to calculate
// the linear extrapolation
double extrapolate(Data d[], double x)
{
    double y;
    y = d[0].y
        + (x - d[0].x)
              / (d[1].x - d[0].x)
              * (d[1].y - d[0].y);
  
    return y;
}
  
// Driver Code
int main()
{
    // Sample dataset
    Data d[] = { { 1.2, 2.7 }, { 1.4, 3.1 } };
  
    // Sample x value
    double x = 2.1;
  
    // Finding the extrapolation
    cout << "Value of y at x = 2.1 : "
         << extrapolate(d, x);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java code for the implementation of
// Linear extrapolation 
class GFG
{
      
// Function to calculate the linear
// extrapolation 
static double extrapolate(double[][] d, double x) 
    double y = d[0][1] + (x - d[0][0]) / 
                (d[1][0] - d[0][0]) * 
                (d[1][1] - d[0][1]); 
  
    return y; 
  
// Driver Code 
public static void main (String[] args)
{
      
// Sample dataset 
double[][] d = {{ 1.2, 2.7 },{ 1.4, 3.1 }}; 
  
// Sample x value 
double x = 2.1
  
// Finding the extrapolation 
System.out.println("Value of y at x = 2.1 : " +
                    extrapolate(d, x)); 
}
}
  
// This code is contributed by chandan_jnu

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code for the implementation of
# Linear extrapolation 
  
# Function to calculate the linear
# extrapolation 
def extrapolate(d, x):
    y = (d[0][1] + (x - d[0][0]) / 
        (d[1][0] - d[0][0]) * 
        (d[1][1] - d[0][1])); 
  
    return y; 
  
# Driver Code 
  
# Sample dataset 
d = [[ 1.2, 2.7 ], [1.4, 3.1 ]]; 
  
# Sample x value 
x = 2.1
  
# Finding the extrapolation 
print("Value of y at x = 2.1 :"
             extrapolate(d, x)); 
  
# This code is contributed by mits

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# code for the implementation of
// Linear extrapolation 
class GFG
{
      
// Function to calculate the linear
// extrapolation 
static double extrapolate(double[,] d, double x) 
    double y = d[0,1] + (x - d[0,0]) / 
                (d[1,0] - d[0,0]) * 
                (d[1,1] - d[0,1]); 
  
    return y; 
  
// Driver Code 
static void Main()
{
      
// Sample dataset 
double[,] d = {{ 1.2, 2.7 },{ 1.4, 3.1 }}; 
  
// Sample x value 
double x = 2.1; 
  
// Finding the extrapolation 
System.Console.WriteLine("Value of y at x = 2.1 : " +
                    extrapolate(d, x)); 
}
}
  
// This code is contributed by chandan_jnu

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP code for the implementation of
// Linear extrapolation 
  
// Function to calculate the linear
// extrapolation 
function extrapolate($d, $x
    $y = $d[0][1] + ($x - $d[0][0]) / 
        ($d[1][0] - $d[0][0]) * 
        ($d[1][1] - $d[0][1]); 
  
    return $y
  
// Driver Code 
  
// Sample dataset 
$d = array(array( 1.2, 2.7 ),
           array( 1.4, 3.1 )); 
  
// Sample x value 
$x = 2.1; 
  
// Finding the extrapolation 
echo "Value of y at x = 2.1 : "
            extrapolate($d, $x); 
  
// This code is contributed by Ryuga
?>

chevron_right


Output:

Value of y at x = 2.1 : 4.5


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.