import math, numpy as np # para usar expressões matemáticas
from matplotlib import pyplot as plt # para fazer gráficos
def f(u): # Função f(u) para testarmos os métodos .
p=np.cos(np.sqrt(1+u**2)*np.log(2))
return p
def df(u): # Derivada analítica de f(u).
p=-np.sin(np.sqrt(1+u**2)*np.log(2))*u*np.log(2)/(np.sqrt(1+u**2))
return p
def ndf(u,h): # Derivada numérica de f(u).
p=(f(u+h)-f(u))/h # Usando polinomio de Taylor de ordem 1.
return p
def n2df(u,h): # Derivada numérica de f(u).
p=(f(u+h)-f(u-h))/(2*h) # Usando polinomio de Taylor de ordem 2.
return p
def d2f(u): # Segunda derivada analítica de f(u).
p=-np.cos(np.sqrt(1+u**2)*np.log(2))*(u*np.log(2))**2/(1+u**2)-np.sin(np.sqrt(1+u**2)*np.log(2))*np.log(2)*(np.sqrt(1+u**2)-u**2/(np.sqrt(1+u**2)))/(1+u**2) # Derivada analítica de f(u).
return p
def nd2f(u,h): # Segunda derivada numérica de f(u).
p=(f(u+h)-2*f(u)+f(u-h))/(h**2) # Usando polinomio de Taylor de ordem 2.
return p
# # Gráficos para compararção da derivada e aproximações
x=np.linspace(0,2,1000)
y=ndf(x,10**(-1))
z=df(x)
w=n2df(x,10**(-1))
plt.plot(x,z,color='red',label='df(x)')
plt.plot(x,y,color='blue',label='ordem 1')
plt.plot(x,w,color='green',label='ordem 2')
plt.ylabel('y')
plt.xlabel('t')
plt.legend()
plt.title('Aproximação de df(x) pelo método de Taylor de ordens 1 e 2')
plt.show()
plt.close()
plt.plot(x,z-y,color='red',label='df(x)-ordem 1')
plt.plot(x,z-w,color='blue',label='df(x)-ordem 2')
plt.ylabel('y')
plt.xlabel('t')
plt.legend()
plt.title('Erro na aproximação de df(x) pelo método de Taylor de ordens 1 e 2')
plt.show()
plt.close()
# # Gráficos para compararção da derivada segunda e aproximações
z=d2f(x)
w=nd2f(x,10**(-1))
plt.plot(x,z,color='blue',label='d2f(x)')
plt.plot(x,w,color='green',label='ordem 2')
plt.ylabel('y')
plt.xlabel('t')
plt.legend()
plt.title('Aproximação de d2f(x) pelo método de Taylor de ordem 2')
plt.show()
plt.close()
plt.plot(x,z-w,color='red',label='df(x)-ordem 2')
plt.ylabel('y')
plt.xlabel('t')
plt.legend()
plt.title('Erro na aproximação de d2f(x) pelo método de Taylor de ordem 2')
plt.show()
plt.close()
To embed this project on your website, copy the following code and paste it into your website's HTML: