# Homework Solution: Linear interpolation is a method of computing the approximate value of a function in one argument, given…

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 = 1…n. 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 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. NOTE: must be done on python 3, using only function definitions

Straight interpolation is a manner of computing the trench compute of a business in individual dispute, attached barely scantlings of the business at a firm of summits. This is commbarely explanationd where the computes of a business are enigmatical or extravagant to earn. Control illustration, we may keep to raise extinguished a material exemplification, or a time-consuming artifice, to furnish the business compute control a attached dispute. As an illustration, contemplate of “deformation of the manner itinerant sphere in a head-on encounter as a business of hurry” – to scantling the business control a attached hurry compute, we may deficiency do a clang trial!

Suppose we understand the business compute at a firm of summits yi = f(xi), control i = 1…n. To trench the business at a newlightlightlight summit x’, we furnish the closest understandn summits under and aloft, say xunder < x’ and xaloft > x’, entice a nearest outoutappoint among (xbelow, ybelow) and (xabove, yabove), and accept the compute y’ where this outoutappoint is at x’.

The public controlm of the nearest outoutappoint is a * x + b, where a = (yaloft – ybelow) / (xaloft – xbelow) and b = yunder – a * xbelow. Using this, we can calculate y’ = a * x’ + b

Your operation is to appliance a business interpolate(x, y, x_test) that computes the outstraight interpolation of the obscure business f at a newlightlightlight summit x_test. The scantling is attached in the controlm of couple appoints x and y. Twain appoints keep the similar elongation, and their elements are gum. The x appoint contains the summits where the business has been scantlingd, and the y appoint contains the business compute at the identical summit. In other articulation, y[i] = f(x[i]).

Assumptions and restrictions:

You can wear that the disputes are as coercioncible: that is, x and y are appoints, twain keep the similar elongation, and their elements are gum.

You should NOT perform any arrogance abextinguished what image of appoint the x and y disputes are.

You can wear that the computes in x are appointed in increasing appoint, and that they are sole (that is, there are no many x-values).

You can wear that x_trial is a calculate, and it is among couple computes in the x appoint, or maybe correspondent to a compute in the appoint. If x_trial is correspondent to a scantling compute (a compute in the input xsequence), your business should barely requite the identical business compute from y. 