CoCalc Shared Filescloud-examples / sage / 2018-02-08-195444_Método_de_Euler.sagews
Views : 39
Description: Método de Euler
# -*- coding: utf-8 -*-
# Método de Euler
import numpy as np
import matplotlib.pyplot as plt
#import math

def function(x,y):
f=-x/y
return f

def sol_exacta(x,y):
g=sqrt(64-x**2)
return g

x0=0
xf=8
y0=8
n=10
h=(xf-x0)/n

x=np.zeros(n)
y=np.zeros(n)
ye=np.zeros(n)

x[0]=x0
y[0]=y0
ye[0]=y0

print('x','y_euler','y_exacta')
print(x[0],y[0],ye[0])
for i in range(n-1):
x[i+1]=x[i]+h
y[i+1]=y[i]+h*function(x[i],y[i])
ye[i+1]=sol_exacta(x[i+1],y[i+1])
print(x[i+1],y[i+1],ye[i+1])
t=np.linspace(x0,xf,1000)
plt.plot(x,y,'b-')
plt.plot(t,sol_exacta(t,y),'g-')
plt.grid(true)
plt.show()

('x', 'y_euler', 'y_exacta') (0.0, 8.0, 8.0) (0.8, 8.0, 7.95989949685296) (1.6, 7.92, 7.83836717690617) (2.4000000000000004, 7.758383838383838, 7.631513611335565) (3.2, 7.510909616948571, 7.332121111929344) (4.0, 7.170072071223977, 6.928203230275509) (4.8, 6.723772512696145, 6.4) (5.6, 6.152664553176526, 5.71314274283428) (6.3999999999999995, 5.424524742972336, 4.800000000000001) (7.199999999999999, 4.480663254160225, 3.4871191548325404) [<matplotlib.lines.Line2D object at 0x7f636403ca10>] [<matplotlib.lines.Line2D object at 0x7f636403cf90>]