s1Eva_IT2017_T2_AN-Tanque-esferico-volumen

Para observar la funcion f(h), df(h)/dh, y=h

# 1ra Evaluación I Término 2017
# Tema 2. Volumen en tanque esférico
import numpy as np
import matplotlib.pyplot as plt

fh = lambda h: (np.pi/3)*(h**2)*(3-h)-0.75
gh = lambda h: np.sqrt((3*0.75/np.pi)*(1/(3-h)))

#INGRESO
a = 0
b = 2
tolera = 0.01
muestras = 51

# PROCEDIMIENTO
hi = np.linspace(a,b, muestras)
fhi = fh(hi)
ghi = gh(hi)               
                    
# SALIDA
plt.plot(hi,fhi, label='f(h)')
plt.plot(hi,hi, label ='y=h')
plt.plot(hi,ghi, label ='g(h)')
plt.axhline(0, color = 'k')
plt.legend()
plt.show()

# ---------
# Método del punto fijo.
tabla = []
punto = b
nuevo = gh(punto)
tramo = np.abs(nuevo-punto)
while not(tramo<tolera):
    punto = nuevo
    nuevo = gh(punto)
    tramo = np.abs(nuevo-punto)
    tabla.append([punto, nuevo, tramo])
tabla = np.array(tabla)
raiz = nuevo

# SALIDA
print('el punto buscado es: ')
print(raiz)
print('tabla:')
print('punto, nuevo, error')
print(tabla)
el punto buscado es: 
0.539970576291
tabla:
punto, nuevo, error
[[ 0.84628438  0.57666307  0.2696213 ]
 [ 0.57666307  0.54363752  0.03302555]
 [ 0.54363752  0.53997058  0.00366694]]

Tarea: convertir el método en una función, para ser usada en otros problemas