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 < 
>> > >>>> 
>> > >>>> julia...@googlegroups.com> 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 
>>
>>

Reply via email to