Desarrollo Metodos
Desarrollo Metodos
Desarrollo Metodos
INTEGRANTES:
PABLO QUIMI TOALA
LAURO RODRÍGUEZ ENRÍQUEZ
CHRISTIAN XAVIER HURTADO GUNCAY
CARMEN YESSENIA MEDINA AVILA
ASIGNATURA:
MÉTODOS NUMÉRICOS
DOCENTE:
CASTILLO HEREDIA LUIS JAVIER
PERÍODO:
Mayo 2022 a Septiembre 2022
MILAGRO – ECUADOR
RESUMEN
La presente investigación busca la aplicación de los métodos numéricos en cualquier rama
de la ingeniería, específicamente haciendo énfasis en la solución de raíces de ecuaciones
e integración numérica, tomando en consideración que son aproximaciones que brindan
una solución matemática por ejemplo para calcular el área de un integral, de la misma
manera se busca la solución de ecuaciones diferenciales ordinarias, tomando en
consideración los procesos matemáticos de diferenciación numérica.
Se tomó en consideración los métodos de punto fijo, bisección, trapecio, reglas de
1 3
Simpson 3 𝑦 para los procesos de integración, el método de Euler para la solución de
8
ecuaciones diferenciales ordinarias de primer orden y el proceso de Richardson para la
diferenciación numérica.
INTRODUCCIÓN Cada de los procesos utilizados serán
aproximaciones que buscan encontrar la
Los métodos numéricos son aplicaciones
solución del valor del área de un integral,
de algoritmos por las cuales es posible
así el valor de un punto en una función
formular y solucionar problemas
derivable, se plantea igualmente la
matemáticos usando operaciones
solución de ecuaciones diferenciales.
aritméticas menos complejas. Ellos
también se conocen como métodos
indirectos. El análisis numérico idealiza
I. MODELAMIENTO
y concibe métodos para «aprobar» de
MATEMÁTICO
forma eficiente las soluciones de
problemas expresados
matemáticamente. El objetivo principal
del análisis numérico es encontrar Uno de los problemas más antiguos, y
soluciones «aproximadas» para que con mayor frecuencia se debe
problemas complejos. resolver en
# PROGRAMA ---------
# INGRESO
fx = lambda x: np.exp(-x) - 2*x**2
gx = lambda x: np.exp(-x)
(Cárdenas, 2008)
a=0 # intervalo
b=1
tolera = 0.001
iteramax = 15 # itera máximo
muestras = 51 # gráfico
tramos = 50
# PROCEDIMIENTO
respuesta = puntofijo(gx,a,tolera)
# SALIDA
print("La aproximación es: ",respuesta) La aproximación es: 0.56691
# GRAFICA
# calcula los puntos para fx y gx
xi = np.linspace(a,b,muestras)
fi = fx(xi)
gi = gx(xi)
yi = xi
plt.plot(xi,fi, label='f(x)')
plt.plot(xi,gi, label='g(x)')
plt.plot(xi,yi, label='y=x')
(Edison del Rosario, 2017)
𝑆𝑒 𝑟𝑒𝑒𝑚𝑝𝑙𝑎𝑧𝑎 𝑒𝑛 𝑙𝑎 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑓(1,5)
= −2,42
Método de Bisección
(Nieves Hurtado, 2014)
Dependiendo de la función que se tenga
en particular, el método de la bisección Por el método de bisección obtenga su
puede converger ligeramente más rápido raíz de la función f(x) =x3 + 4x2 − 10
o más lento que el método de posición
Programa fuente en Python usando
falsa. Su gran ventaja sobre el de
compilador Cuaderno de Jupyter.
posición falsa es que proporciona el
tamaño exacto del intervalo en cada import sympy as sp
iteración (en ausencia de errores de
redondeo). import pandas as pd
if test < 0 :
xu=xr
elif test >0:
xl=xr
fl=fr
else:
ea=0
iteracion=pd.Series(m_itera,name="Iter
acion")
xl=pd.Series(m_xl,name="xl")
xu=pd.Series(m_xu,name="xu")
xr=pd.Series(m_xr,name="xr")
ea=pd.Series(m_ea,name="ea%")
tabla=pd.concat([iteracion,xl,xu,xr,ea],a
xis=1) #unimos en columnas
xd = np.linspace(1, 2, 13)
Método del trapecio o regla del Programa en Python usando el
trapecio compilador Cuaderno de Jupyter.
La regla del trapecio o regla trapezoidal # Integración: Regla de los trapecios
es una de las fórmulas cerradas de
# Usando una función fx()
Newton-Cotes.
import os
Por lo tanto, tenemos que:
𝒃 import numpy as np
𝒇(𝒂) + 𝒇(𝒃)
∫ 𝒇(𝒙) 𝒅𝒙 = (𝒃 − 𝒂) [ ] import matplotlib.pyplot as plt
𝟐
𝒂
# INGRESO
(Vasquez, 2009)
fx = lambda x: np.sin(x)*np.cos(x)
Tanto la regla de Simpson como la regla
# intervalo de integración
del trapecio pueden usarse si sólo
conocemos f(a), f(a+h), etc.; no tenemos a=1
que conocer f.
b=3
(Haeussler, 2003)
tramos = 4
El resultado de la integración:
# Regla del Trapecio
𝑓(𝑎) + 2𝑓(ℎ) + 𝑓(𝑏)
𝐼 = (𝑏 − 𝑎) h = (b-a)/tramos
2
(Chapra, 2007) xi = a
𝑓(0) = 0.2
def fx(x, f):
return eval(f)
n = 20
a = -1.0
b = 3.0
f = 'sin(x)*e*e'
vx = np.linspace(-1, 3, 20)
vy = np.zeros(20)
print("iteracciones"," ","valores")
res=simpson13(n, a, b, f)
print("El resultado es: ",round(res,5))
plt.plot(vx, vy, c='r', lw = 2)
plt.show()
os.system("pause")
(Rodrigo Gómez, 2014)
𝟑
Regla de Simpson 𝟖
Ilustración 2
Tomado de:
https://sites.google.com/site/tasksnumericalmethods/_/rsrc/1468744337009/unid
ad-4---diferenciacion-e-integracion-numericas/metodo-de-simpson-3-8/25.png
for i in range(1, interval_limit ):
f(x) = 0.2 + 25x – 200x2 + 675x3 – 900x4 if (i % 3 == 0):
+ 400x5
sum = sum + 2 *
𝑑𝑒𝑠𝑑𝑒 𝑎 = 0 ℎ𝑎𝑠𝑡𝑎 𝑏 = 0.8. func(lower_limit + i * interval_size)
𝑛 = 4 (ℎ = 0.2) else:
𝑓(0) = 0.2 sum = sum + 3 *
func(lower_limit + i * interval_size)
𝑓(0.2) = 1.288
vy[i-1] = ((float( 3 * interval_size) /
𝑓(0.4) = 2.456 8 ) * sum )
𝑓(0.6) = 3.464 print(i," ",(float( 3 *
𝑓(0.8) = 0.232 interval_size) / 8 ) * sum )
𝐼
= (0.8 return ((float( 3 * interval_size) / 8 ) *
0.2 + 4(1.288 + 3.464) + 2(3.464) + 0.232
sum )
− 0)
12
𝑰 = 𝟏. 𝟔𝟐𝟑𝟒𝟔𝟕
interval_limit = 20
(Chapra, 2007)
lower_limit = 1
Obtenga la integral de la función 𝑓(𝑥) =
cos(𝑥) upper_limit = 5
1+𝑥 2
import os vy = np.zeros(50)
interval_size = (float(upper_limit -
lower_limit) / interval_limit)
os.system("pause")
sum = func(lower_limit) +
(Edison del Rosario, 2017)
func(upper_limit);
El resultado es: -0.139899 Calcule la raíz de f(x) =e–x – x. Comience
con los valores iniciales x–1 = 0 y x0 =
1.0.
Primera iteración:
x–1 = 0
f (x–1) = 1.00000
x0 = 1
f (x0) = –0.63212
−0.63212(0 − 1)
𝑥1 = 1 −
1 − (−0.63212)
= 𝟎. 𝟔𝟏𝟐𝟕𝟎
Segunda iteración:
x0 = 1
f (x0) = –0.63212
x1 = 0.61270
f (x1) = –0.07081
𝑥2
−0.07081(1 − 0.61270)
= 0.61270 −
−0.63212 − (0.07081)
= 𝟎. 𝟓𝟔𝟑𝟖𝟒
(Chapra, 2007)
Programa hecho en Python usando el
compilador Cuaderno de Jupyter
import numpy as np
El método de la secante
import matplotlib.pyplot as plt
En el método de la secante el modelo
aproximado análogo al miembro derecho
de la ecuación igualado a cero es def secante_tabla(fx,xa,tolera):
donde m es la pendiente de la línea que dx = 4*tolera
conecta el punto xk y un segundo punto
xq, dada por: xb = xa + dx
tramo = dx
tabla = []
fxa = fx(xa)
fx = lambda x: 6*x**3 / (x**3 + 1)
xb = xa + dx
fxb = fx(xb)
a =1
b =2
plt.plot(xi,fi, label='f(x)')
xa = 1.5
tolera = 0.001
plt.plot(xi,tangentei, label='secante')
tramos = 100
plt.plot(xa,fx(xa),'go', label='xa')
plt.plot(xa+dx,fx(xa+dx),'ro', label='xb')
# PROCEDIMIENTO
plt.plot((-b0/pendiente),0,'yo',
tabla = secante_tabla(fx,xa,tolera)
label='xc')
n = len(tabla)
raiz = tabla[n-1,2]
plt.plot([xa,xa],[0,fxa],'m')
plt.plot([xb,xb],[0,fxb],'m')
# SALIDA
np.set_printoptions(precision=4)
plt.axhline(0, color='k')
print('[xa ,\t xb , \t xc , \t tramo]')
plt.title('Método de la Secante')
for i in range(0,n,1):
plt.legend()
print(tabla[i])
plt.grid()
print('raiz en: ', raiz)
plt.show()
(Edison del Rosario, 2017)
def pol(x):
return (1/2)*pow(x,3) + 6*pow(x,2)
En cualquier proceso natural, las
variables incluidas y sus velocidades de
cambio se relacionan entre sí mediante
los principios científicos que gobiernan
el proceso. El resultado de expresar en
símbolos matemáticos estas relaciones
es a menudo una ecuación diferencial.
(Nieves Hurtado, 2014)
Programa en Python compilador
Cuaderno de Jupyter
from math import *
#Solucion analitica
def y(x, y): print(round(x[i],5),"
",round(yf[i],5))
fx = 0 #El problema no
tiene solucion analitica plt.plot(x, yf, 'r') #Grafica
return (fx) plt.show() #Mostrar
Grafica
(Angel Castaño, 2021)
#Valores iniciales
xi = 1 #Valor inicial de
'x'
yi = -3 #Valor inicial de
'y'
xf = 2 #Valor final de 'x'
h = 0.1 #Tamaño de paso
n = (xf - xi)/h
#Cantidad de pasos o iteraciones de la
aproximacion de la funcion
x = np.linspace(xi, xf, int(n+1))
#fx = y(x) #Solucion
analitica de la integral de f'x
yf=[]
#aproximacion de la integral de f'x
yf.append(yi)
fi = []
fi.append(f1(xi, yi))
#derivada f'x
𝟑
Simpson 𝟖
𝟏
Simpson 𝟑
Método de la Secante
Fuentes de programas
https://journal.poligran.edu.co/index.ph A. Kiseliov, M. Krasnov & G.
p/libros/article/download/2842/2997/69 Makarenko, Problemas de Ecuaciones
89 Diferenciales Ordinarias, Ed. Mir,
Moscú, 1997
(Diego Arévalo Ovalle, 2021)
(Kiseliov, 1997)