Optimizing Memory Allocation in a Simple, but Long Function

Derek Klinge schilke.60 at gmail.com
Sun Apr 24 13:56:10 EDT 2016


Doesn't range(n) create a list n long?
On Sun, Apr 24, 2016 at 10:21 AM Chris Angelico <rosuav at gmail.com> wrote:

> On Mon, Apr 25, 2016 at 3:02 AM, Derek Klinge <schilke.60 at gmail.com>
> wrote:
> > My problem is this: my attempt at Euler's Method involves creating a
> list of
> > numbers that is n long. Is there a way I can iterate over the linear
> > approximation method without creating a list of steps (maybe recursion,
> I am
> > a bit new at this). Ideally I'd like to perform the linearApproximation
> > method a arbitrary number of times (hopefully >10**10) and keep feeding
> the
> > answers back into itself to get the new answer. I know this will be
> > computationally time intensive, but how do I minimize memory usage (limit
> > the size of my list)? I also may be misunderstanding the problem, in
> which
> > case I am open to looking at it from a different perspective.
>
> def EulersMethod(self, numberOfSteps): # Repeate linear approximation
> over an even range
>     e = 1 # e**0 = 1
>     for step in range(numberOfSteps):
>         e = self.linearApproximation(e,1.0/numberOfSteps,e) # if f(x)=
> e**x, f'(x)=f(x)
>     return e
>
> This is your code, right?
>
> I'm not seeing anywhere in here that creates a list of numbers. It
> does exactly what you're hoping for: it feeds the answer back to
> itself for the next step.
>
> ChrisA
> --
> https://mail.python.org/mailman/listinfo/python-list
>



More information about the Python-list mailing list