# 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

Rectistraight interpolation is a arrangement of computing the resemble estimate of a exercise in individual reasoning, consecrated merely specimens of the exercise at a fixed of subject-matters. This is commmerely verificationd where the estimates of a exercise are opposed or costly to accomplish. Control development, we may bear to raise extinguished a substantial examination, or a time-consuming simulation, to invent the exercise estimate control a consecrated reasoning. As an development, hold of “deformation of the mien wayfarer partition in a head-on concussion as a exercise of hurry” – to specimen the exercise control a consecrated hurry estimate, we may demand do a resonance examination!

Suppose we apprehend the exercise estimate at a fixed of subject-matters yi = f(xi), control i = 1…n. To resemble the exercise at a fantastic subject-matter x’, we invent the closest apprehendn subject-matters adown and overhead, say xadown < x’ and xoverhead > x’, induce a direct cord among (xbelow, ybelow) and (xabove, yabove), and conduct the estimate y’ where this cord is at x’.

The unconcealed controlm of the direct cord is a * x + b, where a = (yoverhead – ybelow) / (xoverhead – xbelow) and b = yadown – a * xbelow. Using this, we can calculate y’ = a * x’ + b

Your job is to utensil a exercise interpolate(x, y, x_test) that computes the cordar interpolation of the unpublic exercise f at a fantastic subject-matter x_test. The specimen is consecrated in the controlm of couple progressions x and y. Twain progressions bear the selfsimilar extension, and their elements are gum. The x progression contains the subject-matters where the exercise has been specimend, and the y progression contains the exercise estimate at the selfsimilar subject-matter. In other opinion, y[i] = f(x[i]).

Assumptions and restrictions:

You can wear that the reasonings are as feeling: that is, x and y are progressions, twain bear the selfsimilar extension, and their elements are gum.

You should NOT fashion any boldness abextinguished what fashion of progression the x and y reasonings are.

You can wear that the estimates in x are commanded in increasing command, and that they are rare (that is, there are no usual x-values).

You can wear that x_examination is a sum, and it is among couple estimates in the x progression, or maybe similar to a estimate in the progression. If x_examination is similar to a specimen estimate (a estimate in the input xsequence), your exercise should merely reappear the selfsimilar exercise estimate from y.

Your exercise must reappear a sum.

The scipy library has a all module, scipy.interlard which performs several kinds of interpolation, including cordar interpolation as feeling overhead. Obviously, you may referable verification this module, or any other module that provides a ready-made discerption to the problem, gone the intent of the assignment is control you to evince that you can utensil the exercise yourself. You can of race verification the scipy interpolation exercise as a relation to examination your utensilation.

NOTE: must be dindividual on python 3, using merely exercise definitions