Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  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()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement