Lei de Von Bertalanffy: Modelando o Crescimento de Peixes

Prof. Doherty Andrade - www.metodosnumericos.com.br

📜 Contexto Histórico

Desenvolvida pelo biólogo austríaco Ludwig von Bertalanffy em 1938, esta equação descreve o crescimento de organismos aquáticos, especialmente peixes, sendo fundamental na biologia pesqueira e ecologia.Veja resumo teórico ao final deste texto.

📊 A Equação do Crescimento

\[ L_t = L_\infty \left(1 - e^{-K(t-t_0)}\right) \]

Parâmetros:

🐟 Aplicação Prática

Exemplo: Dourado (Salminus brasiliensis)

Parâmetros típicos:

Aos 3 anos: \[ L_3 = 100(1-e^{-0.2(3+0.5)}) ≈ 50\,cm \]

💻 Implementação em Python

Plota a curva de crescimento do peixe dourado.
import numpy as np
import matplotlib.pyplot as plt

# Parâmetros do Dourado
L_inf = 100  # cm
K = 0.2      # ano^-1
t0 = -0.5    # anos

# Função de crescimento
def von_bertalanffy(t, L_inf, K, t0):
    return L_inf * (1 - np.exp(-K * (t - t0)))

# Tempo (0 a 10 anos)
t = np.linspace(0, 10, 100)
L = von_bertalanffy(t, L_inf, K, t0)

# Plot
plt.figure(figsize=(10, 6))
plt.plot(t, L, 'b-', linewidth=2)
plt.title('Crescimento de Dourado (Von Bertalanffy)')
plt.xlabel('Idade (anos)')
plt.ylabel('Comprimento (cm)')
plt.grid(True)
plt.show()

Importância ecológica: Este modelo ajuda a determinar idades de captura sustentável, tamanhos mínimos e avaliação de estoques pesqueiros.

📈 Variações do Modelo

🔣 O Parâmetro D na Forma Generalizada

\[ L_t = L_\infty \left(1 - \frac{1}{D}e^{-K(t-t_0)}\right)^D \]

O que o parâmetro D representa?

O expoente D (adimensional) controla a forma da curva de crescimento:

Valor de D Efeito no Crescimento Aplicação Típica
D = 1 Modelo clássico de Von Bertalanffy (crescimento linear inicial) Peixes ósseos (ex.: bacalhau, salmão)
D < 1 Crescimento rápido nos estágios iniciais Larvas de peixes, atuns (D ≈ 0.67)
D > 1 Crescimento lento no início, acelerado depois Crustáceos, algumas espécies com metamorfose
D = 3 Relação cúbica com o comprimento (usado para peso corporal) Modelagem de biomassa

Importante: Valores de D ≠ 1 indicam que diferentes partes do corpo crescem em taxas relativas distintas (alometria).

Como determinar D para uma espécie?

  1. Coletar dados de comprimento/idade em múltiplos estágios de vida
  2. Ajustar o modelo generalizado por regressão não-linear
  3. Validar com testes estatísticos (ex.: AIC, RMSE)

Exemplo de Código Python para Ajuste:

import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt

# 1. Definindo a função do modelo generalizado de Von Bertalanffy
def von_bertalanffy_general(t, L_inf, K, t0, D):
    """
    Modelo generalizado de crescimento de Von Bertalanffy
    
    Parâmetros:
    t - idade/tempo (array)
    L_inf - comprimento assintótico máximo (estimado)
    K - taxa de crescimento (estimado)
    t0 - idade teórica quando o comprimento seria zero (estimado)
    D - parâmetro de forma (estimado)
    
    Retorna:
    Comprimento previsto pelo modelo
    """
    return L_inf * (1 - (1/D)*np.exp(-K*(t-t0)))**D

# 2. Preparando seus dados experimentais
# Substitua por seus próprios dados:
t_experimental = np.array([1, 2, 3, 4, 5])  # idades em anos
L_experimental = np.array([15, 28, 38, 45, 50])  # comprimentos em cm

# 3. Ajuste do modelo aos dados
# Valores iniciais sugeridos para os parâmetros (ajuste conforme necessário):
# L_inf ~ máximo observado ou um pouco acima
# K ~ entre 0.1 e 1.0 para peixes
# t0 ~ geralmente negativo (quando o peixe teria tamanho zero)
# D ~ comece com 1 (modelo clássico)
initial_guess = [55, 0.5, -0.5, 1]  

# Executando o ajuste:
params_opt, params_cov = curve_fit(von_bertalanffy_general, 
                                  t_experimental, 
                                  L_experimental, 
                                  p0=initial_guess)

# 4. Resultados do ajuste
L_inf_opt, K_opt, t0_opt, D_opt = params_opt
print(f"Parâmetros otimizados:")
print(f"L_inf = {L_inf_opt:.2f} cm")
print(f"K = {K_opt:.4f} /ano")
print(f"t0 = {t0_opt:.2f} anos")
print(f"D = {D_opt:.4f}")

# 5. Gerando previsões do modelo
t_range = np.linspace(min(t_experimental), max(t_experimental), 100)
L_predicted = von_bertalanffy_general(t_range, *params_opt)

# 6. Plotando resultados
plt.figure(figsize=(10, 6))
plt.scatter(t_experimental, L_experimental, color='red', label='Dados experimentais')
plt.plot(t_range, L_predicted, 'b-', label='Modelo ajustado')
plt.title('Ajuste do Modelo de Von Bertalanffy Generalizado')
plt.xlabel('Idade (anos)')
plt.ylabel('Comprimento (cm)')
plt.legend()
plt.grid(True)
plt.show()

# 7. Calculando R² (coeficiente de determinação)
residuals = L_experimental - von_bertalanffy_general(t_experimental, *params_opt)
ss_res = np.sum(residuals**2)
ss_tot = np.sum((L_experimental - np.mean(L_experimental))**2)
r_squared = 1 - (ss_res / ss_tot)
print(f"\nR² = {r_squared:.4f}")

Estudo de Caso: Atum-rabilho (Thunnus thynnus)

Parâmetros ajustados:

Indica crescimento acelerado nos primeiros 2 anos (atinge ~100 cm antes de desacelerar).

Resumo Teórico: Modelo de Crescimento de Peixes de Von Bertalanffy

O modelo de Von Bertalanffy descreve o crescimento de peixes em termos de comprimento e peso, considerando processos de anabolismo (síntese de proteínas) e catabolismo (degradação de proteínas). O crescimento é modelado por equações diferenciais que relacionam essas taxas.

Modelo para o Comprimento

A equação diferencial para o comprimento \( l(t) \) é derivada a partir das taxas de anabolismo e catabolismo:

\[ \frac{dl}{dt} + kl = \lambda, \]

onde:

Solução da Equação

A solução geral é obtida usando o fator integrante:

\[ l(t) = \frac{\lambda}{k} + Ce^{-kt}. \]

Com a condição inicial \( l(t_0) = l_0 \), a solução torna-se:

\[ l(t) = l_{\infty} + (l_0 - l_{\infty})e^{-kt}, \]

onde \( l_{\infty} = \frac{\lambda}{k} \) é o comprimento assintótico máximo.

Modelo para o Peso

A equação diferencial para o peso \( w(t) \) é:

\[ \frac{dw}{dt} + \beta w = \alpha w^{2/3}, \]

onde \( \alpha = \frac{pa}{b^{2/3}} \).

Solução da Equação

A equação é resolvida usando a substituição \( v = w^{1/3} \), resultando em:

\[ w(t) = w_{\infty} \left(1 - e^{-kt}\right)^3, \]

onde:

Análise da Solução
Exemplo Aplicado

Para a Tilápia:

\[ w(t) = 0.0194 \left(36.36 - 25.36 e^{-0.161t}\right)^3, \]

com \( w_{\infty} = 935g \) e \( k = 0.161 \).

Referências Científicas