Aplicaciones de ecuaciones diferenciales
El botón «Aplicaciones de ecuaciones diferenciales» de la pantalla inicial abre un formulario con 23 modelos: radiocarbono, desintegración y periodo, crecimiento exponencial, cadena de desintegración, enfriamiento de Newton (también la hora de la muerte con dos mediciones), cinética química de orden 0–2, fármaco en la sangre, alcoholemia, ahorro y préstamo, circuitos RC, RL y RLC, resorte, caída con resistencia del aire, vaciado de un depósito, mezcla, crecimiento logístico y de Gompertz, población con captura, epidemia SIR, depredador y presa, competencia de dos especies y quimiostato.
Eliges el modelo, la variante y lo que buscas; las constantes vienen rellenadas y se pueden cambiar. Cada magnitud y el resultado tienen su unidad a elegir: la aplicación convierte los valores (la conversión es un paso). El «?» junto al modelo explica de dónde sale su ecuación.
Los pasos plantean el modelo, resuelven la ecuación (separación de variables, factor integrante, ecuación característica), aplican las condiciones, despejan la magnitud buscada y sustituyen los números. Los sistemas se resuelven numéricamente con Runge–Kutta; sus equilibrios y su estabilidad, exactamente. El gráfico muestra las magnitudes en el tiempo y, en los sistemas, el plano de fases.
Ejemplos
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)