← Voltar à apresentação
A Derivada na Computação
10 questões de derivadas aplicadas à computação, na mesma ordem de assuntos da apresentação. Todas usam apenas derivada básica: regra da potência, derivada de polinômio, diferença finita e derivada igual a zero no ponto de mínimo. As contas são de uma ou duas etapas e podem ser feitas de cabeça ou com uma calculadora simples. Cada questão tem a resolução comentada escondida; tente responder antes de abrir. O gabarito oficial está no fim.
Exemplo da regra (1): se f(x) = x³, então f'(x) = 3x². Somas derivam termo a termo, e uma constante multiplicando sobrevive: a derivada de 5x² é 10x.
Um script de monitoramento registra o espaço ocupado no disco de um servidor duas vezes por dia:
08:00 → 380 GB · 12:00 → 392 GB
Usando a diferença finita, a taxa de crescimento do uso do disco é de:
Alternativa B
São 12 GB em 4 horas, ou seja, 3 GB a cada hora. O erro comum é parar em 12 (alternativa D), que é a variação total, não a taxa.
Repare que essa é exatamente a fórmula da derivada, com h = 4 h em vez de um instante. Com essa taxa e 120 GB livres, dá para prever que o disco lota em 40 horas — uma informação que o valor "380 GB" sozinho não daria.
Um motor de jogo calcula a velocidade de um personagem comparando a posição entre dois quadros consecutivos. No quadro anterior o personagem estava em x = 100 px; no quadro atual, está em x = 130 px. O intervalo entre os quadros é Δt = 0,1 s.
A velocidade calculada pelo motor é de:
Alternativa D
O erro mais comum é parar em 30 e esquecer de dividir pelo intervalo de tempo: 30 px é o deslocamento, não a velocidade. Dividir por 0,1 s equivale a multiplicar por 10 — mantido esse ritmo por um segundo inteiro, o personagem andaria 300 px.
Um algoritmo de ordenação executa T(n) = n² comparações para uma entrada de tamanho n. Aplicando a regra da potência, a taxa de crescimento do custo é T'(n) = 2n — ou seja, quantas comparações a mais custa aumentar a entrada em um elemento.
Para uma entrada de n = 50, o valor de T'(50) é:
Alternativa B
A alternativa D (2.500) é o valor de T(50) = 50², o custo total, e não a taxa de crescimento. Confundir a função com a sua derivada é o deslize mais comum.
A leitura prática: com 50 elementos, cada elemento novo custa cerca de 100 comparações a mais. Com 500 elementos, T'(500) = 1.000 — o mesmo elemento extra passa a custar dez vezes mais. É exatamente por isso que um algoritmo O(n²) "funciona bem em teste e trava em produção": não é o custo total que surpreende, é o custo marginal, que cresce junto com a entrada.
No treinamento de um modelo, o erro em função de um peso w é dado por L(w) = w², cuja derivada é L'(w) = 2w. O peso atual é w = 6 e a taxa de aprendizado é α = 0,25. A regra de atualização do gradiente descendente é:
Após um passo, o novo valor do peso será:
Alternativa B
Primeiro calcula-se a derivada no ponto atual (12), depois dá-se um passo de tamanho α nessa direção. Como a derivada é positiva, aumentar o peso aumentaria o erro — por isso a fórmula subtrai, andando no sentido contrário ao da derivada. Daí o nome "gradiente descendente".
O mínimo de L(w) = w² está em w = 0. O peso saiu de 6 para 3, ou seja, andou na direção certa. Repetindo o passo: L'(3) = 6, e w passa a 1,5 — cada passo fica menor porque a própria derivada diminui perto do mínimo, sem nenhuma lógica extra.
O custo mensal de operação de um sistema, em função do número x de servidores contratados, é modelado por:
O número de servidores que minimiza o custo é aquele em que a derivada do custo se anula (no ponto mais baixo da curva, a reta tangente é horizontal). Esse número é:
Alternativa B
Derivando termo a termo (regra da potência, e a derivada da constante 80 é zero) e igualando a zero:
Conferindo pelo custo: C(6) = 36 − 72 + 80 = 44. Nos vizinhos, C(5) = 25 − 60 + 80 = 45 e C(7) = 49 − 84 + 80 = 45 — os dois são maiores, confirmando que x = 6 é mesmo o mínimo.
A alternativa D (12) é o coeficiente que aparece no enunciado, não a solução da equação; a E (80) é a constante. Este é o mesmo princípio por trás do lote econômico (EOQ) do slide 20: achar o mínimo de uma curva de custo é resolver derivada = 0.
Um detector de bordas trata a imagem como uma função: cada pixel guarda uma intensidade de 0 (preto) a 255 (branco), e uma borda é um ponto onde essa função varia bruscamente — ou seja, onde a derivada é alta. Analise quatro sequências de pixels vizinhos, lidas da esquerda para a direita:
A sequência que o detector apontaria como borda é a da alternativa:
Alternativa C
Basta calcular a maior diferença entre dois pixels vizinhos — a derivada discreta da imagem, com h = 1 pixel:
| alternativa | maior variação entre vizinhos | interpretação |
|---|---|---|
| A | 2 | área uniforme (ruído) |
| B | 1 | degradê suave, constante |
| C | 154 (de 51 para 205) | borda |
| D | 0 | totalmente uniforme |
| E | 2 | área uniforme (ruído) |
Repare que a alternativa B tem derivada não nula (+1 constante), mas pequena: é um degradê suave, como uma sombra, e não uma borda. É por isso que detectores usam um limiar — sem ele, qualquer variação de iluminação viraria contorno falso. Na demonstração do slide 10 é exatamente esse limiar que o controle deslizante ajusta.
Considere o seguinte programa em Python, que calcula a derivada por diferença finita:
def f(x):
return x ** 2
def derivada(f, x, h=0.001):
return (f(x + h) - f(x)) / h
print(round(derivada(f, 5)))Qual valor será exibido no console?
Alternativa C
A função derivada aplica a diferença finita com h = 0,001 sobre f(x) = x², no ponto x = 5:
O round() arredonda 10,001 para 10. Conferindo pela regra da potência: f'(x) = 2x, logo f'(5) = 10. As duas batem, e a sobra de 0,001 é justamente o erro de aproximação da diferença finita — quanto menor o h, menor esse erro.
A alternativa D (25) é o valor de f(5), não da derivada.
O firmware de uma impressora 3D usa um controlador PID para manter a temperatura do bico. O termo derivativo mede a velocidade com que o erro muda, por diferença finita. Na leitura anterior o erro era de 50 °C; na leitura atual, caiu para 30 °C. O intervalo entre leituras é Δt = 1 s e o ganho derivativo é Kd = 2.
O valor do termo derivativo é:
Alternativa A
O sinal negativo é a parte importante: como o erro está diminuindo (de 50 para 30), a diferença dá negativo, e o termo D entra subtraindo potência da saída do controlador. Ou seja, mesmo com o bico ainda 30 °C abaixo do alvo, o controlador já começa a frear — porque percebeu que está chegando rápido e sabe que o calor acumulado na resistência ainda vai subir a temperatura.
É a mesma lógica do motorista que tira o pé do acelerador antes do semáforo. Sem esse termo, o controlador só olharia o erro atual (ainda grande) e manteria potência máxima, ultrapassando o alvo.
A função sqrt() não existe como instrução do processador: ela é calculada pelo método de Newton-Raphson, que usa a derivada para se aproximar da raiz a cada iteração.
Para calcular √9, usa-se f(x) = x² − 9, cuja derivada é f'(x) = 2x. Partindo de um chute inicial x₀ = 5, o valor de x₁ após uma iteração é:
Alternativa C
Calcula-se f(5) e f'(5) e substitui-se na fórmula:
Em uma única iteração o chute saiu de 5 para 3,4 — já bem perto do valor correto (3). Uma segunda iteração daria x₂ = 3,4 − (11,56 − 9)/6,8 ≈ 3,0235, e a terceira já acerta 3,0000 com quatro casas: é a convergência quadrática que torna o método o padrão da computação numérica.
A interpretação geométrica: traça-se a reta tangente à curva no ponto x = 5 (inclinação 10, dada pela derivada) e usa-se o ponto onde ela cruza o eixo horizontal como novo chute. Resolver a reta é fácil; resolver a curva, não.
O firmware de um processador não observa só a temperatura atual, mas também a velocidade com que ela sobe (a derivada da temperatura em relação ao tempo), para reduzir a frequência antes de atingir o limite crítico. O tempo restante até o limite é estimado por:
Dois núcleos estão neste instante exatamente na mesma temperatura, 75 °C, e o limite crítico é 95 °C. O núcleo A aquece a 2 °C/s; o núcleo B, a 10 °C/s. Assinale a alternativa correta:
Alternativa B
Os dois núcleos estão no mesmo estado (75 °C), mas em situações completamente diferentes: um tem dez segundos de folga, o outro tem dois. Um controlador que olhasse apenas o valor absoluto trataria os dois de forma idêntica — e o núcleo B bateria nos 95 °C antes de qualquer reação, forçando desligamento de emergência.
Por que as outras erram: A faz a conta certa mas tira a conclusão oposta; C inverte os resultados (quanto maior a taxa, menor o tempo restante); D ignora a derivada, que está no denominador; E descarta uma estimativa que os dois dados já permitem fazer.
Lista elaborada a partir dos mesmos modelos e números usados na apresentação "A Derivada na Computação" (IFPE) e no material de apoio. Todas as resoluções foram conferidas por cálculo direto.