Duración bucles en python

Etiquetado: 

Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Autor
    Entradas
  • #25113

    Roger
    Participante

    Buenas tardes,

     

    Estoy ejecutandi este código en python para hacer unas pruebas:
    <div style=»color: #000000; font-family: Consolas, ‘Courier New’, monospace; font-size: 14px; line-height: 19px; white-space: pre;»>
    <div>N=<span style=»color: #098658;»>200</span></div>
    <div>ae=[<span style=»color: #098658;»>1</span>]*(N+<span style=»color: #098658;»>2</span>)</div>
    <div>bp=[<span style=»color: #098658;»>1</span>]*(N+<span style=»color: #098658;»>2</span>)</div>
    <div>ap=[<span style=»color: #098658;»>1</span>]*(N+<span style=»color: #098658;»>2</span>)</div>
    <div>aw=[<span style=»color: #098658;»>1</span>]*(N+<span style=»color: #098658;»>2</span>)</div>
    <div>T=[<span style=»color: #098658;»>0</span>]*(N+<span style=»color: #098658;»>2</span>)</div>
    <div>Ti=[<span style=»color: #098658;»>1</span>]*(N+<span style=»color: #098658;»>2</span>)</div>
    <div>dif=[<span style=»color: #098658;»>1</span>]*(N+<span style=»color: #098658;»>2</span>)</div>
    <div>p=<span style=»color: #098658;»>0</span><span style=»color: #cd3131;»>;</span></div>
    <div>z=<span style=»color: #098658;»>0</span></div>
    <div><span style=»color: #0000ff;»>while</span> p<<span style=»color: #098658;»>150000</span>:</div>
    <div>    <span style=»color: #0000ff;»>for</span> k <span style=»color: #0000ff;»>in</span> range(<span style=»color: #098658;»>1</span>,N+<span style=»color: #098658;»>1</span>):</div>
    <div>        T[k]=(ae[k]*T[k+<span style=»color: #098658;»>1</span>]+aw[k]*T[k-<span style=»color: #098658;»>1</span>]+bp[k])/ap[k]</div>
    <div>        dif[k]=abs(T[k]-Ti[k])</div>
    <div>        T[N+<span style=»color: #098658;»>1</span>]=(aw[N+<span style=»color: #098658;»>1</span>]*T[N]+bp[N+<span style=»color: #098658;»>1</span>])/ap[N+<span style=»color: #098658;»>1</span>]</div>
    <div>        <span style=»color: #008000;»>#Ti=list(T)</span></div>
    <div>        Ti[k]=T[k]</div>
    <div>        z=z+<span style=»color: #098658;»>1</span></div>
    <div>    p=p+<span style=»color: #098658;»>1</span></div>
    <div>print(p)</div>
    </div>
    <div>Sin embargo, me tarda muchísimo tiempo en compilar. Por otro lado, este mismo bucle en matlab, tan solo me tarda 5 segundos. No entiendo por qué hay esta diferencia y si es debido a qué estoy haciendo algo mal,</div>
    <div></div>
    <div>Muchas gracias.</div>

    #25114

    Roger
    Participante

    <p style=»box-sizing: border-box; margin: 0px 0px 10px; -webkit-font-smoothing: antialiased; font-size: 14px; font-family: Lato; color: #444444;»>Buenas tardes,</p>
    <p style=»box-sizing: border-box; margin: 10px 0px; -webkit-font-smoothing: antialiased; font-size: 14px; font-family: Lato; color: #444444;»></p>
    <p style=»box-sizing: border-box; margin: 10px 0px; -webkit-font-smoothing: antialiased; font-size: 14px; font-family: Lato; color: #444444;»>Estoy ejecutando este código en python para hacer unas pruebas:</p>
     

    N=200

    ae=[1]*(N+2)

    bp=[1]*(N+2)

    ap=[1]*(N+2)

    aw=[1]*(N+2)

    T=[0]*(N+2)

    Ti=[1]*(N+2)

    dif=[1]*(N+2)

    p=0;

    z=0

    while p<150000:

    for k in range(1,N+1):

    T[k]=(ae[k]*T[k+1]+aw[k]*T[k-1]+bp[k])/ap[k]

    dif[k]=abs(T[k]-Ti[k])

    T[N+1]=(aw[N+1]*T[N]+bp[N+1])/ap[N+1]

     

     

    #Ti=list(T)

    Ti[k]=T[k]

    z=z+1

    p=p+1

     

    print(p)

     

    <span style=»color: #444444; font-family: Lato; font-size: 14px;»>Sin embargo, me tarda muchísimo tiempo en compilar. Por otro lado, este mismo bucle en matlab, tan solo me tarda 5 segundos. No entiendo por qué hay esta diferencia y si es debido a qué estoy haciendo algo mal,</span>

     

    Muchas gracias,

     

     

     

     

Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Debes estar registrado para responder a este debate.