# function p = hat_function_value (j, xi, n, h, z) # Accompanying program for the text # # Classical and Modern Numerical Analysis: # Theory, Methods and Practice # by Azmy S. Ackleh, Edward J. Allen, # R. Baker Kearfott, and Padmanabhan Seshaiyer # # (Taylor and Francis / CRC Press, 2009) # # This is an auxiliary routine used by interpolant_with_hat_function_basis. def hat_function_value (j, xi, n, h, z): ''' Note: unlike in the matlab version, j is taken to be a zero-based index ''' print(j,xi,n,h,z) if j==0 and xi[0] <= z and z <=xi[1]: print(0) p=(xi[1]-z)/h elif j==n and xi[n-1] <= z and z <= xi[n]: print(1) p=(z-xi[n-1])/h elif 1 <= j and j < n and xi[j-1] <= z and z <= xi[j]: print(2) p=(z-xi[j-1])/h elif 1 <= j and j < n and xi[j] <= z and z <= xi[j+1]: print(3) p=(xi[j+1]-z)/h else: p=0 return p