Thanks. The following code works: using Dierckx
P_NOM = [1.5, 2.2, 3.7, 5.6, 7.5, 11.2, 14.9] ETA = [93., 94., 94., 95., 95., 95.5, 95.5] calc_eta = Spline1D(P_NOM, ETA, k=1) println(calc_eta(3.5)) Nevertheless I would be interested how to do that with Interpolations.jl. Sometimes you don't have Fortran available. Best regards: Uwe On Saturday, February 27, 2016 at 3:58:11 PM UTC+1, Yichao Yu wrote: > > > > On Sat, Feb 27, 2016 at 9:40 AM, Uwe Fechner <[email protected] > <javascript:>> wrote: > >> Hello, >> >> I don't think, that this works on a non-uniform grid. The array xg is >> evenly spaced, and it >> is NOT passed to the function InterpGrid. >> >> > I've recently tried Dierckx which support non-uniform interpolation. I > only need very basic functions so I don't know if it has all the > flexibility you need but it's probably worth a look if you haven't. > > >> Uwe >> >> >> On Saturday, February 27, 2016 at 3:33:06 PM UTC+1, Cedric St-Jean wrote: >>> >>> Hi Uwe, >>> >>> Have you tried Grid.jl? I haven't tried it, but this example looks like >>> it might work with a non-uniform grid. >>> >>> # Let's define a quadratic function in one dimension, and evaluate it on an >>> evenly-spaced grid of 5 points: >>> c = 2.3 # center >>> a = 8.1 # quadratic coefficient >>> o = 1.6 # vertical offset >>> qfunc = x -> a*(x-c).^2 + o >>> xg = Float64[1:5] >>> y = qfunc(xg) >>> yi = InterpGrid(y, BCnil, InterpQuadratic) >>> >>> >>> >>> >>> On Saturday, February 27, 2016 at 9:21:53 AM UTC-5, Uwe Fechner wrote: >>>> >>>> Hello, >>>> >>>> I am trying to port the following function from python to julia: >>>> >>>> # -*- coding: utf-8 -*- >>>> from scipy.interpolate import InterpolatedUnivariateSpline >>>> import numpy as np >>>> from pylab import plot >>>> >>>> P_NOM = [1.5, 2.2, 3.7, 5.6, 7.5, 11.2, 14.9] >>>> ETA = [93., 94., 94., 95., 95., 95.5, 95.5] >>>> >>>> calc_eta = InterpolatedUnivariateSpline(P_NOM, ETA, k=1) >>>> >>>> # plotting code, only for testing >>>> if __name__ == "__main__": >>>> X = np.linspace(1.5, 14.9, 1024, endpoint=True) >>>> ETA = [] >>>> for alpha in X: >>>> eta = calc_eta(alpha) >>>> ETA.append(eta) >>>> plot(X, ETA) >>>> >>>> The resulting plot is shown at the end of this posting. >>>> >>>> How can I port this to Julia? >>>> >>>> I am trying to use the package "Interpolations.jl", but I do not see any >>>> example, that shows the interpolation on a non-uniform grid. >>>> >>>> For now I need only linear interpolation, but I want to use B-Splines >>>> later. >>>> >>>> Any hint appreciated! >>>> >>>> Uwe Fechner >>>> >>>> >>>> >>>> <https://lh3.googleusercontent.com/-8OofwCQWohg/VtGwKR-1BOI/AAAAAAAAAQI/UTLksCCMIPo/s1600/LinearInterpolation.png> >>>> >>> >
