Hello,

I’m trying to learn how to use the DiffEqOperators.jl module. It’s quite new. Chris Rackauckas gave a talk at JuliaCon 2018. To get started, I tried to choose a very simple problem:

- Compute the second derivative of sin(x).

The module provides `DerivativeOperator`

and you can use it like this:

```
using DiffEqOperators
deriv = 2 # 2nd order derivative.
order = 2 # 2nd order approximation.
N = 100 # Number of grid points.
xs = range(0,stop=2π,length=N)
dx = xs[2] - xs[1]
#
# Use Delta to denote the Laplace operator.
#
Δ = DerivativeOperator{Float64}(deriv,order,dx,N,:Dirichlet0,:Dirichlet0)
```

The last two parameters are the boundary conditions. In this example I have Dirichlet boundary conditions (i.e. y(0) = y(2\pi) = 0).

Then I tried a simple plot:

```
using PyPlot
ys = sin.(xs)
figure(1)
plot(xs,ys,"C0-") # sin(x)
plot(xs,Δ*ys,"C3-") # Δ(sin(x)) = - sin(x)
legend([
L"\sin(x)",
L"\frac{\partial^2}{\partial x^2} \sin(x) = - \sin(x)"
])
```

Here is the result. As you can see, the derivative operator did a pretty good job at making the Laplacian of sin(x), except at the very ends. Literally the first and points. At the first and last values, the derivative jumps to +15.7 and -15.7; so I imagine that there must be something wrong with the way I setup the boundary conditions. I tried `:Neumann0`

boundary conditions too but it didn’t help at all. Does anyone have any suggestions?