SHARE
TWEET

Untitled

a guest Sep 16th, 2019 111 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. def funcion(x):
  2.     return np.cos(x)
  3.  
  4. # 1a.) Implemente el algoritmo que le permita calcular la derivada de la funcion en el intervalo 0 a 2pi usando forward difference.
  5.  
  6. # 1b.) Implemente el algoritmo que le permita calcular la derivada de la funcion en el intervalo 0 a 2pi usando diferencia central.
  7.  
  8. # 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.
  9.  
  10. # 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
  11.  
  12. # 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.
  13.  
  14. A=np.linspace(0,2*np.pi,100)
  15.  
  16. def derivadaF(fun, A , h):
  17.     B=[]
  18.     for i in range (len(A)):
  19.         B.append((fun(A[i]+h)-fun(A[i]))/h)
  20.     return B
  21.  
  22.  
  23.  
  24.  
  25. #print (derivadaF(funcion, A ,0.0001))
  26.  
  27. plt.figure()
  28. plt.title("forward differenciation")
  29.  
  30. plt.plot(A, np.cos(A), label="cos(x)")
  31. plt.plot(A,derivadaF(funcion,A,0.0001),label="derivada")
  32. plt.legend()
  33. plt.savefig("forward.pdf")
  34. plt.close()
  35.  
  36. def derivadaC(funcion, A , h):
  37.     C=[]
  38.     for i in range (len(A)):
  39.         C.append((funcion(A[i]+h)-funcion(A[i]-h))/(2*h))
  40.     return C
  41.  
  42. #print (derivadaC(funcion, A ,0.0001))
  43.  
  44.  
  45. plt.figure()
  46. plt.title("Central differenciation")
  47. plt.plot(A, np.cos(A),label="cos(x)")
  48. plt.plot(A,derivadaC(funcion,A,0.0001),label="derivada")
  49. plt.legend()
  50. plt.savefig("central.pdf")
  51. plt.close()
  52.  
  53.  
  54. def ValAnalitico(x):
  55.     return -np.sin(x)
  56.  
  57.  
  58. A=np.linspace(0,2*np.pi,100)
  59.  
  60. #print (type(A))
  61.  
  62. def ErrorFw( ValAnalitico, A):
  63.     EF=[]
  64.     g=derivadaF(funcion,A,0.0001)
  65.     for i in range (len(A)):
  66.        
  67.         EF.append(np.abs(g[i]-ValAnalitico(A[i])))
  68.     return EF
  69. #print (ErrorFw( ValAnalitico,A))
  70.  
  71. def ErrorC( ValAnalitico, A):
  72.     EC=[]
  73.     g=derivadaC(funcion,A,0.0001)
  74.     for i in range (len(A)):
  75.        
  76.         EC.append(np.abs(g[i]-ValAnalitico(A[i])))
  77.     return EC
  78. #print (ErrorC( ValAnalitico,A))
  79.  
  80. plt.figure()
  81. plt.title("Errores")
  82. plt.subplot(2,1,1)
  83. plt.plot(A, ErrorFw( ValAnalitico,A),label="Error Forward")
  84. plt.legend()
  85. plt.subplot(2,1,2)
  86. plt.plot(A,ErrorC( ValAnalitico,A),label="Error Central")
  87. plt.legend()
  88. plt.savefig("ErrorDerivada.pdf")
  89. plt.close()
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top