Aplicações de equações diferenciais
O botão «Aplicações de equações diferenciais» na tela inicial abre um formulário com 23 modelos: radiocarbono, decaimento e meia-vida, crescimento exponencial, cadeia de decaimento, resfriamento de Newton (também a hora da morte a partir de duas medições), cinética química de ordem 0–2, medicamento no sangue, álcool no sangue, poupança e empréstimo, circuitos RC, RL e RLC, mola, queda com resistência do ar, esvaziamento de um tanque, mistura, crescimento logístico e de Gompertz, população com captura, epidemia SIR, predador e presa, competição de duas espécies e quimiostato.
Escolhe o modelo, a variante e o que procura; as constantes vêm preenchidas e podem ser alteradas. Cada grandeza e o resultado têm a unidade à escolha: a aplicação converte os valores (a conversão é um passo). O «?» junto ao modelo explica de onde vem a sua equação.
Os passos montam o modelo, resolvem a equação (separação de variáveis, fator integrante, equação característica), aplicam as condições, isolam a grandeza procurada e substituem os números. Os sistemas resolvem-se numericamente por Runge–Kutta; os equilíbrios e a estabilidade, exatamente. O gráfico mostra as grandezas no tempo e, nos sistemas, o plano de fase.
Exemplos
model(radiocarbon; find=t[yr]; T12=5730[yr]; p=35[pct]; input=ratio)![model(radiocarbon; find=t[yr]; T12=5730[yr]; p=35[pct]; input=ratio)](img/models-radiocarbon.png)
![model(radiocarbon; find=t[yr]; T12=5730[yr]; p=35[pct]; input=ratio)](img/models-radiocarbon-1.png)
![model(radiocarbon; find=t[yr]; T12=5730[yr]; p=35[pct]; input=ratio)](img/models-radiocarbon-2.png)
![model(radiocarbon; find=t[yr]; T12=5730[yr]; p=35[pct]; input=ratio)](img/models-radiocarbon-3.png)
model(cooling; find=t[h]; T0=30[degC]; Ta=20[degC]; t1=1[h]; T1=28[degC]; Tt=37[degC]; k=measured)![model(cooling; find=t[h]; T0=30[degC]; Ta=20[degC]; t1=1[h]; T1=28[degC]; Tt=37[degC]; k=measured)](img/models-death.png)
![model(cooling; find=t[h]; T0=30[degC]; Ta=20[degC]; t1=1[h]; T1=28[degC]; Tt=37[degC]; k=measured)](img/models-death-1.png)
![model(cooling; find=t[h]; T0=30[degC]; Ta=20[degC]; t1=1[h]; T1=28[degC]; Tt=37[degC]; k=measured)](img/models-death-2.png)
![model(cooling; find=t[h]; T0=30[degC]; Ta=20[degC]; t1=1[h]; T1=28[degC]; Tt=37[degC]; k=measured)](img/models-death-3.png)
model(drug; find=steady[mg_l]; D=500[mg]; V=40[l]; T12=6[h]; tau=8[h]; mode=repeated)![model(drug; find=steady[mg_l]; D=500[mg]; V=40[l]; T12=6[h]; tau=8[h]; mode=repeated)](img/models-drug.png)
![model(drug; find=steady[mg_l]; D=500[mg]; V=40[l]; T12=6[h]; tau=8[h]; mode=repeated)](img/models-drug-1.png)
![model(drug; find=steady[mg_l]; D=500[mg]; V=40[l]; T12=6[h]; tau=8[h]; mode=repeated)](img/models-drug-2.png)
![model(drug; find=steady[mg_l]; D=500[mg]; V=40[l]; T12=6[h]; tau=8[h]; mode=repeated)](img/models-drug-3.png)
model(interest; find=a[CZK_mo]; B0=1000000[CZK]; r=5[pct_yr]; t=20[yr]; B=0[CZK]; kind=loan)![model(interest; find=a[CZK_mo]; B0=1000000[CZK]; r=5[pct_yr]; t=20[yr]; B=0[CZK]; kind=loan)](img/models-loan.png)
![model(interest; find=a[CZK_mo]; B0=1000000[CZK]; r=5[pct_yr]; t=20[yr]; B=0[CZK]; kind=loan)](img/models-loan-1.png)
![model(interest; find=a[CZK_mo]; B0=1000000[CZK]; r=5[pct_yr]; t=20[yr]; B=0[CZK]; kind=loan)](img/models-loan-2.png)
![model(interest; find=a[CZK_mo]; B0=1000000[CZK]; r=5[pct_yr]; t=20[yr]; B=0[CZK]; kind=loan)](img/models-loan-3.png)
model(rc; find=t[ms]; R=10[kohm]; C=100[uF]; U=12[V]; u=6[V]; mode=charge)![model(rc; find=t[ms]; R=10[kohm]; C=100[uF]; U=12[V]; u=6[V]; mode=charge)](img/models-rc.png)
![model(rc; find=t[ms]; R=10[kohm]; C=100[uF]; U=12[V]; u=6[V]; mode=charge)](img/models-rc-1.png)
![model(rc; find=t[ms]; R=10[kohm]; C=100[uF]; U=12[V]; u=6[V]; mode=charge)](img/models-rc-2.png)
![model(rc; find=t[ms]; R=10[kohm]; C=100[uF]; U=12[V]; u=6[V]; mode=charge)](img/models-rc-3.png)
model(spring; find=x[cm]; m=0.5[kg]; k=20[N_m]; b=1[kg_s]; x0=5[cm]; v0=0[m_s]; t=1[s])![model(spring; find=x[cm]; m=0.5[kg]; k=20[N_m]; b=1[kg_s]; x0=5[cm]; v0=0[m_s]; t=1[s])](img/models-spring.png)
![model(spring; find=x[cm]; m=0.5[kg]; k=20[N_m]; b=1[kg_s]; x0=5[cm]; v0=0[m_s]; t=1[s])](img/models-spring-1.png)
![model(spring; find=x[cm]; m=0.5[kg]; k=20[N_m]; b=1[kg_s]; x0=5[cm]; v0=0[m_s]; t=1[s])](img/models-spring-2.png)
![model(spring; find=x[cm]; m=0.5[kg]; k=20[N_m]; b=1[kg_s]; x0=5[cm]; v0=0[m_s]; t=1[s])](img/models-spring-3.png)
model(sir; find=overview[d]; N=10000[pcs]; I0=10[pcs]; R0=2.5; D=7[d]; rates=r0)![model(sir; find=overview[d]; N=10000[pcs]; I0=10[pcs]; R0=2.5; D=7[d]; rates=r0)](img/models-sir.png)
![model(sir; find=overview[d]; N=10000[pcs]; I0=10[pcs]; R0=2.5; D=7[d]; rates=r0)](img/models-sir-1.png)
![model(sir; find=overview[d]; N=10000[pcs]; I0=10[pcs]; R0=2.5; D=7[d]; rates=r0)](img/models-sir-2.png)
![model(sir; find=overview[d]; N=10000[pcs]; I0=10[pcs]; R0=2.5; D=7[d]; rates=r0)](img/models-sir-3.png)
model(predator; find=overview[mo]; a=0.5[per_mo]; b=0.01[per_pcs_mo]; c=0.4[per_mo]; d=0.005[per_pcs_mo]; x0=100[pcs]; y0=20[pcs])![model(predator; find=overview[mo]; a=0.5[per_mo]; b=0.01[per_pcs_mo]; c=0.4[per_mo]; d=0.005[per_pcs_mo]; x0=100[pcs]; y0=20[pcs])](img/models-predator.png)
![model(predator; find=overview[mo]; a=0.5[per_mo]; b=0.01[per_pcs_mo]; c=0.4[per_mo]; d=0.005[per_pcs_mo]; x0=100[pcs]; y0=20[pcs])](img/models-predator-1.png)
![model(predator; find=overview[mo]; a=0.5[per_mo]; b=0.01[per_pcs_mo]; c=0.4[per_mo]; d=0.005[per_pcs_mo]; x0=100[pcs]; y0=20[pcs])](img/models-predator-2.png)
![model(predator; find=overview[mo]; a=0.5[per_mo]; b=0.01[per_pcs_mo]; c=0.4[per_mo]; d=0.005[per_pcs_mo]; x0=100[pcs]; y0=20[pcs])](img/models-predator-3.png)