You seem to passing nlsolve a one-argument anonymous function whereas your generating two-argument functions above.
On Tuesday, April 28, 2015, 'Antoine Messager' via julia-users < [email protected]> wrote: > Is there any other possibility? Because, I need to use NLsolve, as it is > the faster non linear solver I have found for my problem. > > Le mardi 28 avril 2015 10:45:59 UTC+1, Antoine Messager a écrit : >> >> I would love too but it seems that NLsolve does not accept anonymous >> function. >> >> >> <https://lh3.googleusercontent.com/-spe5mTRqJDQ/VT9WpGNgDEI/AAAAAAAAABg/_caaIfVwkec/s1600/Capture%2Bd%E2%80%99e%CC%81cran%2B2015-04-28%2Ba%CC%80%2B10.44.04.png> >> >> >> Le lundi 27 avril 2015 18:38:30 UTC+1, Tim Holy a écrit : >>> >>> gc() doesn't clear memory from compiled functions---the overhead of >>> compilation is so high that any function, once compiled, hangs around >>> forever. >>> >>> The solution is to avoid creating so many compiled functions. Can you >>> use >>> anonymous functions? >>> >>> --Tim >>> >>> On Monday, April 27, 2015 10:22:20 AM 'Antoine Messager' via julia-users >>> wrote: >>> > And then (approximatively): >>> > >>> > * myfunction = eval(code_f)* >>> > >>> > Le lundi 27 avril 2015 18:21:09 UTC+1, Antoine Messager a écrit : >>> > > I use meta programming to create my function. This is a simpler >>> example. >>> > > The parameters are generated randomly in the actual function. >>> > > >>> > > * lhs = {"ode1"=> :(fy[1]), "ode2"=> :(fy[2])};* >>> > > * rhs = {"ode1"=> :(y[1]*y[1]-2.0), "ode2"=> :(y[2]-y[1]*y[1])};* >>> > > >>> > > * function code_f(lhs::Dict, rhs::Dict)* >>> > > * lines = {}* >>> > > * for key in keys(lhs)* >>> > > * push!(lines, :( $(lhs[key]) = $(rhs[key])) )* >>> > > * end* >>> > > * @gensym f* >>> > > * quote* >>> > > * function $f(y, fy)* >>> > > * $(lines...)* >>> > > * end* >>> > > * end* >>> > > * end* >>> > > >>> > > Le lundi 27 avril 2015 18:12:24 UTC+1, Tom Breloff a écrit : >>> > >> Can you give us the definition of make_function as well? This is >>> being >>> > >> run in global scope? >>> > >> >>> > >> On Monday, April 27, 2015 at 12:37:48 PM UTC-4, Antoine Messager >>> wrote: >>> > >>> When I input the following code, where myfunction is only a system >>> of 2 >>> > >>> equations with 2 unknowns, the code starts to be really slow after >>> > >>> 10,000 >>> > >>> iterations. NLsolve is a non linear solver ( >>> > >>> https://github.com/EconForge/NLsolve.jl). >>> > >>> >>> > >>> * size=2* >>> > >>> * for k in 1:100000* >>> > >>> * myfun=make_function(size);* >>> > >>> * try{* >>> > >>> * res=nlsolve(myfun,rand(size))* >>> > >>> * }* >>> > >>> * end* >>> > >>> * end* >>> > >>> >>> > >>> Thank you for your help, >>> > >>> Antoine >>> > >>> >>> > >>> Le lundi 27 avril 2015 16:30:19 UTC+1, Mauro a écrit : >>> > >>>> It is a bit hard to tell what is going wrong with essentially no >>> > >>>> information. Does the memory usage of Julia go up more than you >>> would >>> > >>>> expect from storing the results? Any difference between 0.3 and >>> 0.4? >>> > >>>> Anyway, you should try and make a small self-contained runable >>> example >>> > >>>> and post it otherwise it will be hard to divine an answer. >>> > >>>> >>> > >>>> On Mon, 2015-04-27 at 16:49, 'Antoine Messager' via julia-users < >>> > >>>> >>> > >>>> [email protected]> wrote: >>> > >>>> > Dear all, >>> > >>>> > >>> > >>>> > I need to create a lot of systems of equation, find some >>> > >>>> >>> > >>>> characteristics of >>> > >>>> >>> > >>>> > each system and store the system if of interest. Each system is >>> > >>>> >>> > >>>> created >>> > >>>> >>> > >>>> > under the same name. It works fine for the first 1000 systems >>> but >>> > >>>> >>> > >>>> after the >>> > >>>> >>> > >>>> > program starts to be too slow. I have tried to use the garbage >>> > >>>> >>> > >>>> collector >>> > >>>> >>> > >>>> > each time I create a new system but it did not speed up the >>> code. I >>> > >>>> >>> > >>>> don't >>> > >>>> >>> > >>>> > know what to do, I don't understand where it could come from. >>> > >>>> > >>> > >>>> > Cheers, >>> > >>>> > Antoine >>> >>>
