Ejercicio: 3Eva_2023PAOII_T3 Volumen por solido de revolución de un peón
El volumen se calcula a partir de la expresión:
V = \int_{a}^{b} \pi (f(x))^2 dx
xi=[ 0, 3, 5. , 9.985 , 14.97 , 17.97, 40.04, 43.29, 51.6449, 60]
yi=[15,15,13.25,14.1552, 9.6768, 9.67, 4.64, 4.64, 8.9768, 0.]
Para el intervalo [0,3]
La función es una constante
literal a, b y c
f(x) = 15
V = \int_{0}^{3} \pi (15)^2 dx
= \pi (15)^2 x \big|_{0}^{3} = \pi (15)^2 (3-0) = 2120.5750
Para el intervalo [3,5]
literal a
La función es una recta con pendiente negativa
f(x) = -0.875 x + 17.625
V = \int_{3}^{5} \pi (f(x))^2 dx
V = \int_{3}^{5} \pi (-0.875 x+17.625)^2 dx
para el integral con cuadratura de Gauss
g(x) = \pi (-0.875*x+17.625)^2
literal b y c
x_a = \frac{5+3}{2} - \frac{5-3}{2}\frac{1}{\sqrt{3}} = 3.4226
x_b = \frac{5+3}{2} + \frac{5-3}{2}\frac{1}{\sqrt{3}} = 4.5773
con lo que el resultado aproximado del integral se convierte en:
I \cong \frac{5-3}{2}(g(3.4226) + g(4.5773))
= \frac{5-3}{2} (672.43+582.76) = 1255.1971
Para el intervalo [5, 14.97]
literal a
Del polinomio obtenido en el ejercicio anterior para éste intervalo
f(x) = -0.1083 x^2+1.8047 x + 6.9341
V = \int_{5}^{14.97} \pi (f(x))^2 dx
V = \int_{5}^{14.97} \pi (-0.1083 x^2+1.8047 x + 6.9341)^2 dx [
g(x) = \pi (-0.1083 x^2+1.8047 x + 6.9341)^2
literal b y c
x_a = \frac{14.97+5}{2} - \frac{14.97-5}{2}\frac{1}{\sqrt{3}} = 7.1069
x_b = \frac{14.97+5}{2} + \frac{14.97-5}{2}\frac{1}{\sqrt{3}} = 12.8630
con lo que el resultado aproximado del integral se convierte en:
I \cong \frac{14.97-5}{2}(g(7.1069) + g(12.8630))
= \frac{14.97-5}{2} (641.5176+469.8124) = 5539.9805
literal d
El volumen total es la suma de los resultados de cada una de las secciones:
V_{total} = 2120.5750 + 1255.1971 + 5539.9805 + ...
Tarea: continuar con los otros intervalos para obtener el volumen total.
literal e
Resultados con el algoritmo
para f(x):
[xa,xb]= [0.6339745962155612, 2.366025403784439]
[f(xa),f(xb)]= [915.4418590078262, 760.106947830205]
Volumenfx: 2513.323210257047
para f(x):
[xa,xb]= [3.4226497308103743, 4.577350269189626]
[f(xa),f(xb)]= [672.4334354361756, 582.7637293668464]
Volumenfx: 1255.1971648030221
para f(x):
[xa,xb]= [7.106908908089714, 12.863091091910285]
[f(xa),f(xb)]= [641.5176069162055, 469.8124936184865]
Volumenfx: 5539.98055116544
Instrucciones en Python
# 3Eva_2023PAOII_T3 Volumen por solido de revolución de un peón
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
# INGRESO
# intervalos eje x, funciones
#a=0 ; b=3 ; f = lambda x: np.pi*(15)**2 + 0*x
#a=3 ; b=5 ; f = lambda x: np.pi*(-0.875*x+17.625)**2
# con el polinomio del tema 2
a=5 ; b=14.97 ; f = lambda x: np.pi*(-0.1083*x**2+1.8047*x + 6.9341)**2
# con el circulo del tema 1
#a=5 ; b=14.97 ; f = lambda x: np.pi*(np.sqrt(6.7**2-(x-8.6)**2) + 7.6)**2
xmuestras = 31
# PROCEDIMIENTO
# Volumen para f(x) con Cuadratura de Gauss
xa = (b+a)/2 + (b-a)/2*(-1/np.sqrt(3))
xb = (b+a)/2 + (b-a)/2*(1/np.sqrt(3))
Volumenfx = (b-a)/2*(f(xa)+f(xb))
xab = [xa,xb]
fab = [f(xa),f(xb)]
# SALIDA
print("para f(x):")
print("[xa,xb]=", xab)
print("[f(xa),f(xb)]=", fab)
print("Volumenfx: ",Volumenfx)
print()
Añadir para graficar en 2D
# grafica 2D para el area de corte en eje y,x --------
# muestras en x
xi = np.linspace(a, b, xmuestras)
fi = f(xi)
f0 = np.zeros(xmuestras,dtype=float)
# grafica 2D
figura2D = plt.figure()
grafica2D = figura2D.add_subplot(111)
grafica2D.plot(xi,fi,color='blue',label='f(x)')
grafica2D.fill_between(xi,fi,f0,color='lightblue')
grafica2D.grid()
grafica2D.set_title('Area para sólido de revolución')
grafica2D.set_xlabel('x')
grafica2D.set_ylabel('f(x)')
Añadir para graficar en 3D
# Para grafica 3D -----------------------
# angulo w de rotación
w_a = 0
w_b = 2*np.pi
w_muestras = 31
# grafica 3D muestras en x y angulo w
wi = np.linspace(w_a, w_b, w_muestras)
X, W = np.meshgrid(xi, wi)
# proyeccion en cada eje
Yf = f(xi)*np.cos(W)
Zf = f(xi)*np.sin(W)
# grafica 3D
figura3D = plt.figure()
grafica = figura3D.add_subplot(111, projection='3d')
grafica.plot_surface(X, Yf, Zf,
color='blue', label='f(x)',
alpha=0.6, rstride=6, cstride=12)
grafica.set_title('Sólido de revolución')
grafica.set_xlabel('x')
grafica.set_ylabel('y')
grafica.set_zlabel('z')
# grafica.legend()
eleva = 30
rota = -45
deltaw = 5
grafica.view_init(eleva, rota)
# rotacion de ejes
for angulo in range(rota, 360+rota, deltaw ):
grafica.view_init(eleva, angulo)
plt.draw()
plt.pause(.001)
plt.show()
.