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.
\[ L_t = L_\infty \left(1 - e^{-K(t-t_0)}\right) \]
Parâmetros típicos:
Aos 3 anos: \[ L_3 = 100(1-e^{-0.2(3+0.5)}) ≈ 50\,cm \]
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.
\[ L_t = L_\infty \left(1 - \frac{1}{D}e^{-K(t-t_0)}\right)^D \]
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).
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}")
Parâmetros ajustados:
Indica crescimento acelerado nos primeiros 2 anos (atinge ~100 cm antes de desacelerar).
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.
A equação diferencial para o comprimento \( l(t) \) é derivada a partir das taxas de anabolismo e catabolismo:
\[ \frac{dl}{dt} + kl = \lambda, \]onde:
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.
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}} \).
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:
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 \).