#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Sep  3 14:16:46 2024

@author: sam
"""

import numpy as np

x = np.linspace(-1,2)

xp = np.array([[-1],[0],[1],[2]])
yp = np.array([[2],[-1],[1],[0]])



def polyx(a,x):
    f = 0
    for i in range(len(a)):
        f += a[i]*(x)**i
    return f

def vandint(x,xp,yp): #code from Q2 in one function
    V = np.hstack([xp**0])
    for i in range(1,len(xp)):
        V = np.hstack([V,xp**i])
    
    VI = np.linalg.inv(V)

    A = np.matmul(VI,yp)
    return polyx(A,x) #returns the value of interpolated function at input value x



print(vandint(85,xp,yp))