Untitled

mail@pastecode.io avatar
unknown
python
2 years ago
977 B
1
Indexable
Never
import numpy as np
import matplotlib.pyplot as plt
import math
#Se genera una función que permita calcular el valor que necesitamos 
def funcion(x,y):
    ec=x+2*y
    return ec
#solución exacta de la ecuación diferencial
def solucion(x,y):
    sol=.25*math.exp(2*x)-.5*-.25
    return sol
#Se solicitan los datos al usuario
h=float(input("Tamaño de paso: "))
S=float(input("¿Hasta que valor?"))
#Cuantas iteraciones se van a hacer y se le agrega un valor extra para poder moverse en todo el vector 
n=(S/h)+1
x=np.zeros(n)
y=np.zeros(n)
ys=np.zeros(n)
#x[0]=1
#y[0]=.5 En esta parte se cambian las condiciones inciales
print(x[0],y[0])
#Para hacer los calculos y movernos por los vectores se hace el ciclo for
for i in np.arange(1,n):  #arange nos permite movernos en decimales
    y[i]=y[i-1]+(funcion(x[i-1],y[i-1]))*h 
    x[i]=x[i-1]+h
    ys[i]=solucion(x[i-1],y[i-1])
    print(x[i],y[i])
plt.scatter(x,y)
plt.scatter(x,ys, color='red')