Resumen de opciones de ODE
Resolver ODE normalmente requiere parámetros de ajuste preciso, que ajusten las tolerancias a errores o transfieran información adicional al solver. En este tema se muestra cómo especificar opciones de las funciones de solver (ode45
, ode15s
, etc.) y con qué solvers de ecuación diferencial es compatible cada opción.
Sintaxis de opciones
Utilice la función odeset
para crear una estructura de opciones y pasarla después al solver como el cuarto argumento de entrada. Por ejemplo, para ajustar las tolerancias a errores absolutas y relativas:
opts = odeset('RelTol',1e-2,'AbsTol',1e-5); [t,y] = ode45(@odefun,tspan,y0,opts);
Si utiliza el comando odeset
sin valores de entrada, MATLAB® muestra una lista de los posibles valores para cada opción, con los valores predeterminados indicados mediante llaves {}
.
La función odeget
consulta el valor de una opción de una estructura existente, que puede utilizar para modificar dinámicamente los valores de las opciones en función de las condiciones. Por ejemplo, este código detecta si Stats
está establecido en 'on'
y modifica el valor si es necesario:
if isempty(odeget(opts,'Stats')) odeset(opts,'Stats','on') end
Compatibilidad de las opciones con cada solver
Algunas opciones de odeset
son genéricas y compatibles con cualquier solver, mientras que otras dependen del solver. En la siguiente tabla se resume la compatibilidad de cada opción con los diferentes solvers.
Grupo de opciones | Opción | ode45 | ode23 | ode78 | ode89 | ode113 | ode15s | ode23s | ode23t | ode23tb | ode15i |
---|---|---|---|---|---|---|---|---|---|---|---|
Control de errores | RelTol | | | | | | | | | | |
AbsTol | | | | | | | | | | | |
NormControl | | | | | | | | | | | |
Salida de solvers | NonNegative | | | | | | | | | | |
OutputFcn | | | | | | | | | | | |
OutputSel | | | | | | | | | | | |
Refine | | | | | | | | | | | |
Stats | | | | | | | | | | | |
Tamaño de paso | InitialStep | | | | | | | | | | |
MaxStep | | | | | | | | | | | |
Ubicación de eventos | Events | | | | | | | | | | |
Matriz jacobiana | Jacobian | | | | | | | | | | |
JPattern | | | | | | | | | | | |
Vectorized | | | | | | | | | | | |
Matriz de masa y DAE | Mass | | | | | | | | | | |
MStateDependence | | | | | | | | | | | |
MvPattern | | | | | | | | | | | |
MassSingular | | | | | | | | | | | |
InitialSlope | | | | | | | | | | | |
Opciones de algoritmo para ode15s y ode15i | MaxOrder | | | | | | | | | | |
BDF | | | | | | | | | | |
* Utilice el parámetro NonNegative
con ode15s
, ode23t
y ode23tb
solo para los problemas en que no haya una matriz de masa.
** La función de eventos para ode15i
debe admitir un tercer argumento de entrada para yp
.
Ejemplos de uso
MATLAB incluye varios archivos de ejemplo que muestran cómo usar las diversas opciones. Por ejemplo, escriba edit ballode
para ver un ejemplo en que se utiliza 'Events'
para especificar una función de eventos o edit batonode
para ver un ejemplo en que se utiliza 'Mass'
para especificar una matriz de masa. Para obtener un resumen completo de los archivos de ejemplo y qué opciones utilizan, consulte Resumen de ejemplos y archivos de ODE.