Começamos carrendo a biblioteca SymPy:
from sympy import *
init_printing()
var('x,y')
Para fixar as ideias, vamos continuar trabalhando com a função:
$f(x) = (x^3 - 3x + 2)e^{-x/4} - 1$.
f = Lambda(x, (x**3 - 3*x + 2)*exp(-x/4) - 1)
f
diff(f(x), x)
Para avaliar a derivada em um ponto, por exemplo, para calcular $f'(1)$, digitamos:
diff(f(x),x).subs(x,1)
Também, podemos definir a função derivada de $f$ com o seguinte código:
fl = Lambda(x, diff(f(x),x))
fl
Com isso, $f'(1)$ pode ser computada com:
fl(1)
Sendo $g(x) = x^2 + \frac{1}{2}$ calcule $g'(1)$.
#digite sua solução aqui!
Aqui, vamos ver como computar a reta tangente ao gráfico da função $f$ no ponto $\displaystyle x_0 = -\frac{1}{2}$. Lembremos que tal reta tangente tem equação:
$y = f'(x_0)(x - x_0) + f(x_0)$.
Assim sendo, podemos definir a função affim cujo gráfico é a reta tangente com o seguinte comando:
x0 = -1/2
r = Lambda(x, fl(x0)*(x-x0) + f(x0))
r
Vejamos os gráficos de $f(x)$ e da reta tangente computada.
%matplotlib inline
p = plot(f(x), (x,-2,2), line_color='blue', show=False)
q = plot(r(x), (x,-1.5,1), line_color='red', show=False)
p.extend(q)
p.show()
$\blacktriangleleft$
Encontre a reta tangente ao gráfico de $y = \frac{1}{x}$ em $x=1$. Faça os esboços dos gráficos da função e da reta tangente em um mesmo gráfico.
#digite a resolução aqui.
diff(f(x), x, 2)
#digite sua resposta aqui!
Agora, vamos ver como podemos usar o que aprendemos até aqui para resolver problemas de máximos e mínimos. Nosso objetivo será encontrar e determinar os pontos de máximos e mínimos locais da função $f$. Para tanto, vamos usar o teste da segunda derivada.
Comecemos lembrando do gráfico de $f$:
plot(f(x), (x,-2,2))
plot(f(x), (x,2,40))
plot(f(x), (x,40,80))
<sympy.plotting.plot.Plot at 0x7efc8873cbe0>
Observando os gráficos, podemos inferir que $f$ tem máximos locais próximos a $x=-1$ e $x=10$ e um mínimo local próximo do ponto $x=1$. Logo, podemos usar estes valores como parâmetro da função nsolve
para resolvermos
$f'(x) = 0$.
Computamos:
#ponto crítico próx. de x=-1
x1 = nsolve(fl(x), x, -1)
x1
#ponto crítico próx. de x=1
x2 = nsolve(fl(x), x, 1)
x2
#ponto crítico próx. de x=10
x3 = nsolve(fl(x), x, 10)
x3
Ok. Acamos de encontrar os pontos críticos de $f(x)$ (podem haver outros pontos críticos?). Por inspesão gráfica, vemos que $x_1 \approx -1,15$ e $x_3 \approx 12,15$ são os pontos de máximos locais de $f(x)$, com $x_3$ ponto de máximo global? O ponto $x_2 = 1$ é ponto de mínimo local?
Podemos responder parcialmente estas questões com o teste da segunda derivada. Vejamos:
# f''
fll = Lambda(x, diff(f(x), x, 2))
fll
fll(x1)
fll(x2)
fll(x3)
Logo, pelo teste da segunda derivada, confirmamos que $x_1 \approx -1,15$ e $x_3 \approx 12,15$ são os pontos de máximos locais e $x_2=1$ é ponto de mínimo local. As demais questões em aberto ficam de exercício!
Referente ao problema de otimização que acabamos de discutir, responda:
(a) Os pontos $x_1$, $x_2$ e $x_3$ calculados acima são os únicos pontos críticos de $f(x)$? Justifique sua resposta.
(b) Quais são os pontos de mínimo e máximo globais de $f(x)$?
(c) Qual é o maior valor que $f(x)$ assume? E qual é o menor?
#digite sua solução aqui!
Exercício
Compute e identifique os pontos extremos da função $g(x) = x^4-4x^3+4x^2$ restrita ao intervalo $[-1, 3]$.
#digite sua solução aqui!
[1] Python Software Fundation (US): www.python.org
[2] Sympy - Python Library for Symbolic Mathematics: www.sympy.org
Criado: Out/2015 Última modificação: Out/2019