Explorando cálculo, álgebra linear e visualizações matemáticas
matemática
python
numpy
scipy
Autor
João Pedro F. Duarte
Data de Publicação
01/04/2024
Introdução
A matemática é a linguagem fundamental da engenharia e ciência da computação. Neste post, vamos explorar como usar Python para resolver problemas matemáticos e criar visualizações elegantes.
# Encontrar raízes da derivada (pontos críticos)raizes = optimize.fsolve(df, [1, 3])print("Pontos críticos (onde f'(x) = 0):")for raiz in raizes:print(f" x = {raiz:.4f}, f(x) = {f(raiz):.4f}")# Determinar se são máximos ou mínimos (segunda derivada)def d2f(x): h =1e-6return (df(x + h) - df(x - h)) / (2* h)print("\nClassificação:")for raiz in raizes: segunda_derivada = d2f(raiz) tipo ="mínimo"if segunda_derivada >0else"máximo"print(f" x = {raiz:.4f} é um {tipo} local (f''(x) = {segunda_derivada:.4f})")
Pontos críticos (onde f'(x) = 0):
x = 1.0000, f(x) = 5.0000
x = 3.0000, f(x) = 1.0000
Classificação:
x = 1.0000 é um máximo local (f''(x) = -6.0001)
x = 3.0000 é um mínimo local (f''(x) = 5.9996)
2. Integrais
Integração Numérica
from scipy import integrate# Função a integrardef g(x):return np.sin(x) * np.exp(-x/10)# Calcular integral definida de 0 a 10resultado, erro = integrate.quad(g, 0, 10)print(f"∫₀¹⁰ sin(x)·e^(-x/10) dx = {resultado:.6f}")print(f"Erro estimado: {erro:.2e}")# Visualizarx = np.linspace(0, 10, 200)y = g(x)plt.figure(figsize=(10, 6))plt.plot(x, y, 'b-', linewidth=2, label='f(x) = sin(x)·e^(-x/10)')plt.fill_between(x, 0, y, alpha=0.3, label=f'Área = {resultado:.4f}')plt.axhline(y=0, color='k', linestyle='-', linewidth=0.5)plt.grid(True, alpha=0.3)plt.xlabel('x')plt.ylabel('f(x)')plt.title('Integração Numérica', fontweight='bold')plt.legend()plt.tight_layout()plt.show()
# Calcular autovalores e autovetoresautovalores, autovetores = np.linalg.eig(A)print("\nAutovalores:")for i, val inenumerate(autovalores):print(f" λ{i+1} = {val:.4f}")print("\nAutovetores:")for i inrange(len(autovalores)):print(f" v{i+1} = {autovetores[:, i]}")