[ Foro de Python ]
Hola! Necesito ayuda con un ejercicio. Soy principiante en python y no se si lo he hecho bien.
El ejercicio dice así:
Construir una función que aproxime pi mediante la integral siguiente:
1. Definir función 1/(1+x**2)
2. Definir una función que calcule la integral, entrada, N (nº de intervalos), salida la aproximación pi
3. if _name == "_main_"
4. input (error)
5. erro_aprox=1
6. loop while error_approx > error
7. calculo aproximado de pi (N)
8. error_approx = abs (aprox_pi-pi)
9. incrementar N
Dado un error de entrada, buscar el número de intervalos de integracion necesario (usas while).
Yo he hecho esto, pero no sé si está bien:
from mylib import fun
from math import pi
def fun(x):
res = 1.0/(1+x**2)
return res
if __name__ == "__main__":
n=int(input("Introducir N:"))
h = 1.0/float(n)
sum = (fun(0.0)+fun(1.0))/2
for i in range (1,n+1,1):
x = i*h
sum = sum+fun(x)
intpi = 4*sum*h
print("Aproximar pi=", intpi, "pi=", pi, "error=", 100*abs(pi-intpi)/pi, "%")
import sys
def fun (x):
if (n<0):
print ("Error. N debe ser > 0")
sys.exit ()
for i in range (1, n, 1):
fact=fact*i
return fact
def wfact (n):
if (n<0):
print ("Error. N debe ser > 0")
sys.exit()
fact = n
i = n
while (i-1>0):
i=i-1
fact = fact*i
return fact
if __name__== "__main__":
from math import factorial
n=int (input("Introducir N:"))
print ("Factorial de N=", myfact(n), "from math library", factorial (float(n)))
print ("factorial con while", wfact(n))
Por fa, lo necesito con urgencia para hoy, si me podéis ayudar, os lo agradecería. Disculpad las molestias.
hola mochuelo
no sabia bien que querias y no se si he acertado, hay muchas formas de calcular pi, y la que tu propones parece la de euler
tu código parece un copia pega de varios códigos
te paso lo que he hecho, no se si es lo que buscas:
https://www.online-ide.com/lbzqciRWCE
suerte ;-)
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)