demasiado para Python???
Francesc Alted
falted en openlc.org
Mar Mayo 6 12:27:37 CEST 2003
Mensaje citado por: "Andrés A. Rocchia" <arocchi en fi.uba.ar>:
> Bien les envío el siguiente algoritmo, que al resolverlo en mi PC
> tardo
> 4.5 minutos (Pentiun 100MHz - Windows 98 - 32RAM).
Primera cosa. A mi tu código me tarda 1.75 segundos, pero tengo un Pentium a 2
GHz - Windows XP - 256 MB. Sin embargo, la diferencia deberia ser de alrededor
de un factor 20, no un factor 150 (!!??).
>
> Es que ya para este tipo de calculos tengo que usar C++ ? Todavia no
> probe con Pascal (que domino un poco) pero supongo que debe hacerlo mas
> rápido que en 4.5 minutos.
En tu código veo que defines una matriz bidimensional, cuando en realidad sólo
te hace falta una uni-dimensional (vector), prueba a poner:
h = numarray.zeros([jj+2],Float64)+ho
en lugar de:
h = numarray.zeros([jj+2, 1],Float64)+ho
ya que así los cáculos se efectuan con escalares, en lugar de vectores. A mi
esto me acelera los cálculos un factor 35, quedándose en 0.05 s (en tu máquina
*deberia* ser 1 s, más o menos).
Si quieres más velocidad aún sospecho que habria que hacer una extensión en C.
Pero lo dejaremos para si la ocasión lo requiere ;-)
Francesc Alted
Más información sobre la lista de distribución Python-es