Rincón Matemático
Matemática => Análisis Matemático => Mensaje iniciado por: esmeraldabrown en 24 Abril, 2024, 11:10 pm
-
Hola, el ejercicio que les presento no he podido resolverlo, no sé de qué manera iniciar.
(4) Use la regla compuesta de Simpson con n = 4,6,8…., hasta que las aproximaciones sucesivas de las siguientes integrales concuerden con una exactitud de \( 10^{-6} \) . Determine la cantidad de nodos que se requieren. Mediante el algoritmo de la cuadratura adaptativa aproxime la integral con una exactitud de \( 10^{-6} \) y cuente el número de nodos. ¿Produjo alguna mejora la cuadratura adaptativa?
\( \displaystyle\int_{0}^{\pi}Sen x^2dx \) y la integral \( \displaystyle\int_{0}^{\pi}x^2cos(x)dx \) graficar y hacer un análisis para cada valor de n.
-
Hola
Hola, el ejercicio que les presento no he podido resolverlo, no sé de qué manera iniciar.
(4) Use la regla compuesta de Simpson con n = 4,6,8…., hasta que las aproximaciones sucesivas de las siguientes integrales concuerden con una exactitud de \( 10^{-6} \) . Determine la cantidad de nodos que se requieren. Mediante el algoritmo de la cuadratura adaptativa aproxime la integral con una exactitud de \( 10^{-6} \) y cuente el número de nodos. ¿Produjo alguna mejora la cuadratura adaptativa?
\( \displaystyle\int_{0}^{\pi}Sen x^2dx \) y la integral \( \displaystyle\int_{0}^{\pi}x^2cos(x)dx \) graficar y hacer un análisis para cada valor de n.
Me cuesta entender las dudas en estas cosas, porque en teoría no es más que aplicar al pie de la letra unas formulas que deben de haberte proporcionado.
El método de Simpson compuesto para \( n \) nodos (\( n \) par es): tomar \( h=(b-a)/n \) y aproximar la integral \( \displaystyle\int_{a}^{b}f(x)dx \) por:
\( \displaystyle\sum_{k=1}^{n/2}{}\dfrac{h}{3}f(x_{2k-2})+4f(x_{2k-1})+f(x_{2k}) \)
donde \( x_i=a+ih \).
Dado que para esas integrales puedes hallar también su valor exacto puedes calcular el error como diferencia entre dicho valor y la aproximación y ver si ese error es o no menor que \( 10^{-6} \).
Para ambas funciones \( a=0 \), \( b=\pi \).
Saludos.
-
Y cuando dice que las aproximaciones sucesivas, es que por ejemplo si en la aproximación con \( n=4 \) y con \( n= 6 \) concuerdan con una exactitud menor a \( 10^{-6} \) me detengo? Pero si una cumple con la exactitud y otra no, debo seguir? Y Cuando dice cuente el número de nos que necesita, es decir si la precisión sucesiva la obtengo con \( n = 6 \), entonces el numero de nodos necesarios es \( 6 \)? De repente parezcan preguntas tontas, que pena contigo.
-
Hola
Y cuando dice que las aproximaciones sucesivas, es que por ejemplo si en la aproximación con \( n=4 \) y con \( n= 6 \) concuerdan con una exactitud menor a \( 10^{-6} \) me detengo? Pero si una cumple con la exactitud y otra no, debo seguir? Y Cuando dice cuente el número de nos que necesita, es decir si la precisión sucesiva la obtengo con \( n = 6 \), entonces el numero de nodos necesarios es \( 6 \)? De repente parezcan preguntas tontas, que pena contigo.
No hay preguntas tontas y cuánto más concretas sean mejor.
Tal como está redactado el enunciado (no me había fijado bien):
hasta que las aproximaciones sucesivas de las siguientes integrales concuerden con una exactitud de \( 10^{-6} \) .
Tienes que parar cuando la diferencia entre dos aproximaciones sucesivas sea menor o igual que \( 10^{-6} \).
Saludos.
-
con este codigo en Python :
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return x**2 * np.cos(x)
def simpson_rule_composite(f, a, b, n):
h = (b - a) / n
x = np.linspace(a, b, n+1)
s1 = 0
s2 = 0
for i in range(1, n):
if i % 2 == 1:
s1 += f(x)
else:
s2 += f(x)
integral = h * (f(a) + 4*s1 + 2*s2 + f(b)) / 3
return integral
exactitud = 1e-6
n = 4
integral_previa = 0
n_values = []
integral_values = []
while True:
integral_actual = simpson_rule_composite(f, 0, np.pi, n)
print(f"Con n={n}, la aproximación de la integral es: {integral_actual:.7f}")
n_values.append(n)
integral_values.append(integral_actual)
if abs(integral_actual - integral_previa) < exactitud:
break
integral_previa = integral_actual
n += 2
error_final = abs(integral_actual - 6.2831813)
print(f"\nEl error final es: {error_final:.1e}")
plt.plot(n_values, integral_values, marker='o')
plt.xlabel('Número de nodos (n)')
plt.ylabel('Aproximación de la integral')
plt.title('Aproximación de la integral con regla compuesta de Simpson')
plt.grid()
plt.show()
los resultados que muestra con una exactitud de 10^-6 son:
(https://foro.rinconmatematico.com/index.php?action=dlattach;topic=126616.0;attach=31068) no logro entender si en ese punto con n=40 se alcanza la precisión deseada, como es que el error da ese resultado? el valor correcto del error debe ser aproximadamente 4.0x10^-6, podrían ayudarme a entender si es que la forma en que se ha calculado el error no es correcta? necesito cualquier aporte que puedan darme, por favor
-
Hola
En teoría lo veo bien planteado; no se si hay algún error relacionado con Python. No manejo ese lenguaje.
Saludos.
-
Luis pero con estos resultados de las íntegrales, si dice hasta que las aproximaciones sucesivas concuerden con la exactitud de 10^-6, como se calcula el error? Es para saber si con los resultados obtenidos calculando manualmente el error da 10^-6, para corregir el programa.
-
El cálculo de la integral está bien, solo que en la línea donde calculás el error final
error_final = abs(integral_actual - 6.2831813)
Como el valor real de la integral es \( -2\pi \approx-6.2831853 \) , esa línea debe ser:
error_final = abs(integral_actual + 6.2831853)
-
Hola
El cálculo de la integral está bien, solo que en la línea donde calculás el error final
error_final = abs(integral_actual - 6.2831813)
Como el valor real de la integral es \( -2\pi \approx-6.2831853 \) , esa línea debe ser:
error_final = abs(integral_actual + 6.2831853)
Uffff.. Se me pasó...
Saludos.
-
muchas gracias , ni se imaginan todo lo que había hecho para obtener el resultado correcto, gracias, mil gracias