Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def funcion(x):
- return np.cos(x)
- # 1a.) Implemente el algoritmo que le permita calcular la derivada de la funcion en el intervalo 0 a 2pi usando forward difference.
- # 1b.) Implemente el algoritmo que le permita calcular la derivada de la funcion en el intervalo 0 a 2pi usando diferencia central.
- # 1c.) Haga una grafica de la funcion y sus derivadas obtenidas usando los dos metodos antes mencionado. Guarde dicha grafica sin mostrarla en DerivadaFun.pdf.
- # 1d.) Haga una grafica con dos subplots (uno por cada metodo) del error |(valor numerico - valor analitico)| en el intervalo. Guarde dicha grafica sin mostrarla en ErrorDerivada.pdf
- # 1e). Implemente el algoritmo que le permita calcular la segunda derivada de la funcion en el intervalo 0 a 2pi. Haga una grafica de la funcion y su segunda derivada. Guarde dicha grafica sin mostrarla en 2DerivadaFun.pdf.
- A=np.linspace(0,2*np.pi,100)
- def derivadaF(fun, A , h):
- B=[]
- for i in range (len(A)):
- B.append((fun(A[i]+h)-fun(A[i]))/h)
- return B
- #print (derivadaF(funcion, A ,0.0001))
- plt.figure()
- plt.title("forward differenciation")
- plt.plot(A, np.cos(A), label="cos(x)")
- plt.plot(A,derivadaF(funcion,A,0.0001),label="derivada")
- plt.legend()
- plt.savefig("forward.pdf")
- plt.close()
- def derivadaC(funcion, A , h):
- C=[]
- for i in range (len(A)):
- C.append((funcion(A[i]+h)-funcion(A[i]-h))/(2*h))
- return C
- #print (derivadaC(funcion, A ,0.0001))
- plt.figure()
- plt.title("Central differenciation")
- plt.plot(A, np.cos(A),label="cos(x)")
- plt.plot(A,derivadaC(funcion,A,0.0001),label="derivada")
- plt.legend()
- plt.savefig("central.pdf")
- plt.close()
- def ValAnalitico(x):
- return -np.sin(x)
- A=np.linspace(0,2*np.pi,100)
- #print (type(A))
- def ErrorFw( ValAnalitico, A):
- EF=[]
- g=derivadaF(funcion,A,0.0001)
- for i in range (len(A)):
- EF.append(np.abs(g[i]-ValAnalitico(A[i])))
- return EF
- #print (ErrorFw( ValAnalitico,A))
- def ErrorC( ValAnalitico, A):
- EC=[]
- g=derivadaC(funcion,A,0.0001)
- for i in range (len(A)):
- EC.append(np.abs(g[i]-ValAnalitico(A[i])))
- return EC
- #print (ErrorC( ValAnalitico,A))
- plt.figure()
- plt.title("Errores")
- plt.subplot(2,1,1)
- plt.plot(A, ErrorFw( ValAnalitico,A),label="Error Forward")
- plt.legend()
- plt.subplot(2,1,2)
- plt.plot(A,ErrorC( ValAnalitico,A),label="Error Central")
- plt.legend()
- plt.savefig("ErrorDerivada.pdf")
- plt.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement