Ask Question

Create a function that will perform linear interpolation from a set of measured data stored in a list or array. The function should take as input a list of values at which samples were taken, and then another list giving the measurements (you can assume each measurement is a single value) at

+1
Answers (1)
  1. 17 January, 02:10
    0
    This question is incomplete, here is the complete question:

    Python

    a) You should create a function that will perform linear interpolation from a set of measured data. The function should take as input a list of values at which samples were taken, and then another list giving the measurements (you can assume each measurement is a single value) at those values. It should also take in a query value, and should give the best estimate it can of the value at that query. Be sure to handle values that are outside of the range, by extrapolating. You should write a program that allows you to test your function by reading the lists from a file where each line of the file is a pair of numbers separated by spaces: the value where the sample was taken, and the measurement at that value. Your program should ask the user for the name of the file and for a query value. Important: The two lists will correspond to each other: i. e. for the i-th value in the first list, the measurement will be the i-th element of the second list (these are called parallel lists or arrays). But, you should not assume that the input values are in increasing/decreasing order. That is, the values in the first list can be in any random ordering, not necessarily from smallest to largest or largest to smallest. You will have to account for this in your program, and there is more than one way to do so. You should discuss what options you can think of to handle the data arriving in any order like that, and decide what you think the best option for handling it is.

    Explanation:

    from __future__ import division

    from cStringIO import StringIO

    import numpy as np

    from scipy. interpolate import RectBivariateSpline

    np. set_printoptions (1, threshold=100, edgeitems=10, suppress=True)

    # a file inline, for testing - -

    myfile = StringIO ("""

    # T P1 P2 P3 P4

    0, 80,100,150,200

    75, 400,405,415,430

    100, 450,456,467,483

    150, 500,507,519,536

    200, 550,558,571,589

    """)

    # file - > numpy array - -

    # (all rows must have the same number of columns)

    TPU = np. loadtxt (myfile, delimiter=",")

    P = TPU[0,1:] # top row

    T = TPU[ 1:,0] # left col

    U = TPU[1:,1:] # 4 x 4, 400 ... 589

    print "T:", T

    print "P:", P

    print "U:", U

    interpolator = RectBivariateSpline (T, P, U, kx=1, ky=1) # 1 bilinear, 3 spline

    # try some t, p - -

    for t, p in (

    (75, 80),

    (75, 200),

    (87.5, 90),

    (200, 80),

    (200, 90),

    ):

    u = interpolator (t, p)

    print "t %5.1f p %5.1f - > u %5.1f" % (t, p, u)
Know the Answer?
Not Sure About the Answer?
Find an answer to your question 👍 “Create a function that will perform linear interpolation from a set of measured data stored in a list or array. The function should take as ...” in 📗 Computers & Technology if the answers seem to be not correct or there’s no answer. Try a smart search to find answers to similar questions.
Search for Other Answers