In [7]:
println(readall(`cmd /c type lin_int2.jl`))


function lin_inter(grid,vals)
    function func(x::Real)
        if x<grid[1]
            print("Error")
        elseif x>grid[n+1]
            print("Error")
        else index=searchsortedlast(grid,x)
            return (vals[index+1]-vals[index])/(grid[index+1]-grid[index])*(x-grid[index])+vals[index]
        end
    end

    function func{T<:Real}(x::AbstractVector{T})
        m=length(x)
        out=Array(Any,m)
        for i in 1:m
            out[i]=func(x[i])
        end
        return out
    end
    return func

end


In [8]:
include("lin_int2.jl")


Out[8]:
lin_inter (generic function with 1 method)

In [9]:
f=lin_inter(grid,vals)


LoadError: UndefVarError: vals not defined
while loading In[9], in expression starting on line 1

In [10]:
g(x)=2*sin(x)+3*cos(2x)+1.5


Out[10]:
g (generic function with 1 method)

In [36]:
using PyPlot
x=linspace(0,5,100)
y=linspace(0,4.9,100)
plot(x,g(x),label="Original")
units=[1,2,5]
for i in 1:3
    n=5*units[i]
    grid=Array(Float64,n+1)
    vals=Array(Float64,n+1)
    for j in 1:n+1
        grid[j]=(j-1)/units[i]
        vals[j]=g((j-1)/units[i])
    end
    f=lin_inter(grid,vals)
    plot(y, f(y),label="lin_int by$(1/units[i])")
end
title("Linear Interpolation")
legend()


Out[36]:
PyObject <matplotlib.legend.Legend object at 0x00000000193FD400>

In [34]:
function lin_inter(grid,vals)
    function func(x::Real)
        n = length(grid)
        if x<grid[1]
            print("Error")
        elseif x > grid[n]
            print("Error")
        else index=searchsortedlast(grid,x)
            return (vals[index+1]-vals[index])/(grid[index+1]-grid[index])*(x-grid[index])+vals[index]
        end
    end

    function func{T<:Real}(x::AbstractVector{T})
        m=length(x)
        out=Array(Any,m)
        for i in 1:m
            out[i]=func(x[i])
        end
        return out
    end
    return func

end


Out[34]:
lin_inter (generic function with 1 method)

In [21]:
f(1)


LoadError: UndefVarError: f not defined
while loading In[21], in expression starting on line 1

In [22]:
f=lin_inter(grid,vals)


LoadError: UndefVarError: vals not defined
while loading In[22], in expression starting on line 1

In [ ]: