Question
Using Python: Linear interpolation is a method of computing the approximate value of a function in one argument, given only samples of the function at
Using Python: Linear interpolation is a method of computing the approximate value of a function in one argument, given only samples of the function at a set of points. This is commonly used where the values of a function are difficult or expensive to obtain. For example, we may have to carry out a physical experiment, or a time-consuming simulation, to find the function value for a given argument. As an example, think of deformation of the vehicle passenger compartment in a head-on collision as a function of speed - to sample the function for a given speed value, we may need do a crash test! Suppose we know the function value at a set of points yi = f(xi), for i = 1n. To approximate the function at a new point x, we find the closest known points below and above, say xbelow < x and xabove > x, draw a straight line between (xbelow, ybelow) and (xabove, yabove), and take the value y where this line is at x. The general form of the straight line is a * x + b, where a = (yabove - ybelow) / (xabove - xbelow) and b = ybelow - a * xbelow. Using this, we can calculate y = a * x + b Example: Suppose we have the sample points f(1) = 1, f(3) = 9 and f(5) = 25. If we want to compute an approximation of the value of f at x = 2 using linear interpolation, we would find the closest sample point that is less than 2 (namely 1) and the closest sample point that is greater than 2 (namely 3), and draw a straight line between the known points (1, 1) and (3, 9). The line equation becomes 4 * x - 3, from which we get the answer 4 * 2 - 3 = 5. If we wanted to approximate the value of f at 4, the closes sample point below is 3 and the closes sample point above is 5, from which we get the line 8 * x - 15 and the answer 17. The following figure illustrates how both values were calculated: example of linear interpolation Task: Your task is to implement a function interpolate(x, y, x_test) that computes the linear interpolation of the unknown function f at a new point x_test. The sample is given in the form of two sequences x and y. Both sequences have the same length, and their elements are numbers. The x sequence contains the points where the function has been sampled, and the y sequence contains the function value at the corresponding point. In other words, y[i] = f(x[i]). Assumptions and restrictions: You can assume that the arguments are as described: that is, x and y are sequences, both have the same length, and their elements are numbers. You should NOT make any assumption about what type of sequence the x and y arguments are. You can assume that the values in x are ordered in increasing order, and that they are unique (that is, there are no repeated x-values). You can assume that x_test is a number, and it is between two values in the x sequence, or possibly equal to a value in the sequence. If x_test is equal to a sample value (a value in the input xsequence), your function should simply return the corresponding function value from y. Your function must return a number. The scipy library has a whole module, scipy.interpolate which performs various kinds of interpolation, including linear interpolation as described above. Obviously, you may not use this module, or any other module that provides a ready-made solution to the problem, since the goal of the assignment is for you to demonstrate that you can implement the function yourself. You can of course use the scipy interpolation function as a reference to test your implementation.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started