es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo convertir este programa de usar un ciclo for a usar indexación?

“””CP Q4.ipynb

Generado automáticamente por Colaboratory.

El archivo original se encuentra en
    https://colab.research.google.com/drive/1lIuthEQwk1StdYV32yUJhRjPP8PHCYEV
“””

Comentar la magia de IPython para garantizar la compatibilidad con Python.

importar numpy como np
importar matplotlib.pyplot como plt

importar seaborn como sns; sns.set()

% matplotlib inline

definición del método RK4

def RK4(t, f, y0):
    y = np.zeros((len(t), len(y0))); y[0] = y0
    h = t[1] – t[0]
    k = np.zeros((4, len(y0)))
    for i in range(0, len(t)-1):
        k[0] = h * f(t[i], y[i])
        k[1] = h * f(t[i]+h/2, y[i]+k[0]/2)
        k[2] = h * f(t[i]+h/2, y[i]+k[1]/2)
        k[3] = h * f(t[i]+h, y[i]+k[2])
        y[i+1] = y[i] + (k[0] + 2k[1] + 2k[2] + k[3]) / 6

return y

definición del sistema de funciones SIR

def func(t, y):
    b, g = 0.143, 0.071
    S = -1by[0]y[1]
    I = by[0]y[1]-gy[1]
    R = g*y[1]
    sol = np.array([S, I, R])
    return sol

print(RK4(t,func,y0))

Quiero usar el método de indexación en lugar del bucle for aplicado dentro de la función RK4 para obtener resultados similares. ¿Es posible reemplazar el bucle for con algún método de indexación?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible reemplazar el bucle for con un método de indexación. Puede utilizar la indexación de matrices de NumPy para acceder a los elementos de una matriz y realizar operaciones sobre ellos. Por ejemplo, puede utilizar el siguiente código para acceder a los elementos de la matriz y realizar operaciones sobre ellos:

    y[i+1] = y[i] + (k1 + 2*k2 + 2*k3 + k4) / 6
    

    Este código se puede reemplazar con el siguiente código usando la indexación de matrices de NumPy:

    y[i+1] = y[i] + np.sum(k[1:4]) / 6
    

Comments are closed.