Hi Stephanie, Are you on the latest GitHub version? You can get on it with
Pkg.checkout("ApproxFun") Sent from my iPad > On 20 Jun 2014, at 3:19 am, 'Stéphane Laurent' via julia-users > <julia-users@googlegroups.com> wrote: > > Hello Sheehan, > > I get this error when I run your code: > > julia> for k=1:5 > u=u-[B,L+gp(u)]\[0.,0.,L*u+g(u)-1.]; > end > ERROR: Reducing over an empty array is not allowed. > in _mapreduce at reduce.jl:151 > in mapreduce at reduce.jl:173 > in old_addentries! at > /home/sdl/.julia/v0.3/ApproxFun/src/Operators/OperatorAlgebra.jl:106 > in addentries! at > /home/sdl/.julia/v0.3/ApproxFun/src/Operators/OperatorAlgebra.jl:141 > in ShiftArray at > /home/sdl/.julia/v0.3/ApproxFun/src/Operators/ShiftArray.jl:16 > in BandedArray at > /home/sdl/.julia/v0.3/ApproxFun/src/Operators/ShiftArray.jl:110 > in getindex at /home/sdl/.julia/v0.3/ApproxFun/src/Operators/Operator.jl:46 > in getindex at > /home/sdl/.julia/v0.3/ApproxFun/src/Operators/AlmostBandedOperator.jl:133 > in backsubstitution! at > /home/sdl/.julia/v0.3/ApproxFun/src/Operators/adaptiveqr.jl:78 > in ultraiconversion at > /home/sdl/.julia/v0.3/ApproxFun/src/Operators/Operator.jl:71 > in * at /home/sdl/.julia/v0.3/ApproxFun/src/Operators/Operator.jl:97 > in anonymous at no file:2 > > > Le mercredi 11 juin 2014 23:27:52 UTC+2, Sheehan Olver a écrit : >> >> Hi Stèphane, >> >> Nonlinear is not built in, but it’s easy enough to do by hand with >> Newton iteration in function space. Let me know if there is any confusion >> with the code below. I suppose I could just add a “nonlinsolve” routine >> that bundles this up. >> >> (I am on the latest branch so this may or may not work on the 0.0.1 >> tag.) >> >> >> Cheers, >> >> Sheehan >> >> >> >> x=Fun(identity,[-1.,1.]) >> d=x.domain >> B=dirichlet(d) >> D=diff(d) >> >> # Sets up L and g for equation in the form Lu + g(u)-1==0 >> >> L=D^2 + 2(1-x.^2)*D >> g=u->u.^2;gp=u->2u >> >> u=0.x # initial guess for the solution is zero >> >> for k=1:5 >> u=u-[B,L+gp(u)]\[0.,0.,L*u+g(u)-1.]; >> end >> >> norm(diff(u,2) + 2(1-x.^2).*diff(u) + g(u) -1) # This equals 0.0 >> >> >>> On 12 Jun 2014, at 1:02 am, 'Stéphane Laurent' via julia-users >>> <julia...@googlegroups.com> wrote: >>> >>> Hello Sheehan, >>> >>> I have unsuccessfully tried to understand how works the differential >>> equation solver (I do not understand the Airy example). >>> >>> It would be nice to have an example of code for a simple BVP such as : >>> >>> u" + 2(1-x^2)u + u^2 = 1 , u(-1) = u(1) = 0 >>> >>> Regards, >>> Stéphane >>> >>> Le lundi 24 mars 2014 02:04:25 UTC+1, Sheehan Olver a écrit : >>>> >>>> >>>> I tagged a new release for ApproxFun >>>> (https://github.com/dlfivefifty/ApproxFun) with major new features that >>>> might interest people. Below are ODE solving and random number sampling >>>> examples, find more in ApproxFun/examples. The code is meant as alpha >>>> quality, so don't expect too much beyond the examples. There is >>>> rudimentary support for PDE solving (e.g. Helmholtz in a square), but it's >>>> reliability is limited without a better Lyapanov solver >>>> (https://github.com/JuliaLang/julia/issues/5814). >>>> >>>> Cheers, >>>> >>>> Sheehan >>>> >>>> >>>> >>>> >>>> Pkg.add("ApproxFun") >>>> using ApproxFun >>>> >>>> ODE Solving: solve the Airy equation on [-1000,10] >>>> >>>> x=Fun(identity,[-2000.,10.]) >>>> d=x.domain >>>> D=diff(d) >>>> ai=[dirichlet(d),D^2 - x]\[airyai(-2000.),0.] >>>> plot(ai) >>>> >>>> >>>> >>>> >>>> Random number sampling: Sample a 2D Cauchy distribution on (-∞,∞)^2 >>>> >>>> f = Fun2D((x,y)->1./(2π.*(x.^2 .+ y.^2 .+ 1).^(3/2)),Line(),Line()) >>>> r = sample(f,100) >>