Métodos de Runge-Kutta

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Familia de métodos iterativos implícitos y explícitos
Comparación de los métodos Runge-Kutta para la ecuación diferencial Sí..=pecado⁡ ⁡ ()t)2⋅ ⋅ Sí.{displaystyle y'=sin(t)^{2}cdot y} (rojo es la solución exacta)

En análisis numérico, los métodos de Runge-Kutta (RUUNG-ə-KUUT-tah) son una familia de métodos iterativos implícitos y explícitos, entre los que se incluye el método de Euler, utilizado en la discretización temporal para la soluciones aproximadas de ecuaciones no lineales simultáneas. Estos métodos fueron desarrollados alrededor de 1900 por los matemáticos alemanes Carl Runge y Wilhelm Kutta.


El método Runge-Kutta

Pendientes utilizados por el método clásico Runge-Kutta

El miembro más conocido de la familia Runge-Kutta generalmente se conoce como "RK4", el "método clásico de Runge-Kutta" o simplemente como "el método Runge-Kutta".

Deje que un problema de valor inicial se especifique de la siguiente manera:

dSí.dt=f()t,Sí.),Sí.()t0)=Sí.0.{displaystyle {frac {}=f(t,y),quad y(t_{0}=y_{0}}

Aquí. Sí.{displaystyle y} es una función desconocida (escalar o vector) del tiempo t{displaystyle t}, que nos gustaría aproximar; se nos dice que dSí.dt{displaystyle {frac {} {} {fn}}} {fnK}}} {fn}}} {fn}}}}}}, la tasa a la que Sí.{displaystyle y} cambios, es una función de t{displaystyle t} y de Sí.{displaystyle y} en sí mismo. En el momento inicial t0{displaystyle T_{0} el correspondiente Sí.{displaystyle y} valor Sí.0{displaystyle Y.... La función f{displaystyle f} y las condiciones iniciales t0{displaystyle T_{0}, Sí.0{displaystyle Y... se dan.

Ahora elegimos un tamaño de paso h > 0 y definir:

Sí.n+1=Sí.n+h6()k1+2k2+2k3+k4),tn+1=tn+h{displaystyle {begin{aligned}y_{n+1} limit=y_{n}+{frac} {h}{6}left(k_{1}+2k_{2}+2k_{3}+k_{4}right),\t_{n+1}

para n = 0, 1, 2, 3,..., usando

k1=f()tn,Sí.n),k2=f()tn+h2,Sí.n+hk12),k3=f()tn+h2,Sí.n+hk22),k4=f()tn+h,Sí.n+hk3).{displaystyle {begin{aligned}k_{1} f(t_{n},y_{n}),k_{2} {h}{2},y_{n}+h{frac} {k_{1} {2}}derecho),k_{3} {f}left(t_{n}+{frac] {h}{2},y_{n}+h{frac} {k_{2} {2}}derecho),k_{4} { f!left(t_{n}+h,y_{n}+hk_{3}right)end{aligned}}}}}}
(Nota: las ecuaciones anteriores tienen definiciones diferentes pero equivalentes en diferentes textos).

Aquí. Sí.n+1{displaystyle Y... es la aproximación RK4 de Sí.()tn+1){displaystyle y(t_{n+1})}, y el siguiente valor (Sí.n+1{displaystyle Y...) se determina por el valor actual (Sí.n{displaystyle y_{n}) más el promedio ponderado de cuatro incrementos, donde cada aumento es el producto del tamaño del intervalo, h, y una pendiente estimada especificada por función f en el lado derecho de la ecuación diferencial.

  • k1{displaystyle K_{1} es la pendiente al principio del intervalo, utilizando Sí.{displaystyle y} (Método de Euler);
  • k2{displaystyle K_{2} es la pendiente en el punto medio del intervalo, utilizando Sí.{displaystyle y} y k1{displaystyle K_{1};
  • k3{displaystyle K_{3} es otra vez la pendiente en el punto medio, pero ahora Sí.{displaystyle y} y k2{displaystyle K_{2};
  • k4{displaystyle K_{4} es la pendiente al final del intervalo, utilizando Sí.{displaystyle y} y k3{displaystyle K_{3}.

En la promediación de las cuatro pistas, se da mayor peso a las pendientes en el punto medio. Si f{displaystyle f} es independiente de Sí.{displaystyle y}, por lo que la ecuación diferencial es equivalente a una simple integral, entonces RK4 es la regla de Simpson.

El método RK4 es un método de cuarta orden, lo que significa que el error de truncación local está en el orden de O()h5){displaystyle O(h^{5}}, mientras que el error acumulado total está en el orden O()h4){displaystyle O(h^{4}}.

En muchas aplicaciones prácticas la función f{displaystyle f} es independiente de t{displaystyle t} (también llamado sistema autónomo, o sistema invariante de tiempo, especialmente en física), y sus incrementos no se computan en absoluto y no pasan a funcionar f{displaystyle f}, con sólo la fórmula final para tn+1{displaystyle T_{n+1} usado.

Métodos explícitos de Runge-Kutta

La familia de métodos explícitos de Runge-Kutta es una generalización del método RK4 mencionado anteriormente. esta dado por

Sí.n+1=Sí.n+h.. i=1sbiki,{displaystyle Y... ¿Qué?

dónde

k1=f()tn,Sí.n),k2=f()tn+c2h,Sí.n+()a21k1)h),k3=f()tn+c3h,Sí.n+()a31k1+a32k2)h),⋮ ⋮ ks=f()tn+csh,Sí.n+()as1k1+as2k2+⋯ ⋯ +as,s− − 1ks− − 1)h).{cH00} {cH00}cH00} {cc}}c_}} {cc}c_} {c_} {c_} {c_} {cc}cc}c_}c_} {c_} {c_}ccc_} {cccc_}}}ccccccccccccccccc}cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc} 'vdots \k_{s} tarde=f(t_{n}+c_{s}h,y_{n}+(a_{s1}k_{1}+a_{s2}k_{2}+cdots {fnMicrosoft Sans Serif}}
(Nota: las ecuaciones anteriores pueden tener definiciones diferentes pero equivalentes en algunos textos).

Para especificar un método en particular, es necesario proporcionar el número entero s (el número de etapas) y los coeficientes aij (para 1 ≤ j < is), bi (para i = 1, 2,..., s) y ci (para i = 2, 3,..., s). La matriz [aij] se denomina matriz de Runge-Kutta, mientras que la bi y ci se conocen como los pesos y los nodos. Estos datos generalmente se organizan en un dispositivo mnemotécnico, conocido como cuadro de Butcher (en honor a John C. Butcher):

0{displaystyle 0}
c2{displaystyle c_{2}a21{displaystyle a_{21}
c3{displaystyle C_{3}a31{displaystyle a_{31}a32{displaystyle a_{32}
⋮ ⋮ {displaystyle vdots }⋮ ⋮ {displaystyle vdots }⋱ ⋱ {displaystyle ddots }
cs{displaystyle C_{s}as1{displaystyle a_{s1}as2{displaystyle a_{s2}⋯ ⋯ {displaystyle cdots }as,s− − 1{displaystyle a_{s,s-1}
b1{displaystyle B_{1}b2{displaystyle B_{2}⋯ ⋯ {displaystyle cdots }bs− − 1{displaystyle B_{s-1}bs{displaystyle B_{s}

Una expansión de la serie de Taylor muestra que el método de Runge-Kutta es consistente si y solo si

.. i=1sbi=1.{displaystyle sum _{i=1}{s}b_{i}=1.}

También hay requisitos complementarios si se requiere que el método tenga un cierto orden p, lo que significa que el error de truncamiento local es O(hp+1). Estos pueden derivarse de la propia definición del error de truncamiento. Por ejemplo, un método de dos etapas tiene orden 2 si b1 + b2 = 1, b2c2 = 1/2, y b2a21 = 1/2. Tenga en cuenta que una condición popular para determinar los coeficientes es

.. j=1i− − 1aij=ciparai=2,...... ,s.{displaystyle sum _{j=1}{i-1}a_{ij}=c_{i}{text{ for }i=2,ldotss.}

Sin embargo, esta condición por sí sola no es suficiente ni necesaria para la consistencia.

En general, si es explícita s{displaystyle s}- el método Runge-Kutta tiene orden p{displaystyle p}, entonces se puede probar que el número de etapas debe satisfacer s≥ ≥ p{displaystyle sgeq p}, y si p≥ ≥ 5{displaystyle pgeq 5}, entonces s≥ ≥ p+1{displaystyle sgeq p+1}. Sin embargo, no se sabe si estos límites son agudo en todos los casos; por ejemplo, todos los métodos conocidos del orden 8 tienen por lo menos 11 etapas, aunque es posible que haya métodos con menos etapas. (El límite arriba sugiere que podría haber un método con 9 etapas; pero también podría ser que el límite simplemente no es agudo.) De hecho, es un problema abierto lo que el número mínimo preciso de etapas s{displaystyle s} es para un método de Runge-Kutta explícito para tener orden p{displaystyle p} en aquellos casos en que todavía no se han descubierto métodos que satisfagan los límites anteriores con igualdad. Algunos valores conocidos son:

p12345678mins123467911{displaystyle {begin{array}{c vidascccccccc}p tendrían que haber sido dos personas3 afectadas4 concluidas 5 concluidas 6 personas8\hline {}}}

Los límites provables anteriores implican entonces que no podemos encontrar métodos de órdenes p=1,2,...... ,6{displaystyle p=1,2,ldots6} que requieren menos etapas que los métodos que ya conocemos para estas órdenes. Sin embargo, es concebible que encontremos un método de orden p=7{displaystyle p=7} que tiene sólo 8 etapas, mientras que las únicas conocidas hoy tienen al menos 9 etapas como se muestra en la tabla.

Ejemplos

El método RK4 cae en este marco. Su cuadro es

0
1/21/2
1/201/2
10 01
1/61/31/31/6

Una ligera variación de "the" El método de Runge-Kutta también se debe a Kutta en 1901 y se denomina regla de 3/8. La principal ventaja que tiene este método es que casi todos los coeficientes de error son más pequeños que en el método popular, pero requiere un poco más de FLOP (operaciones de punto flotante) por paso de tiempo. Su cuadro Carnicero es

0
1/31/3
2/3-1/31
11 −11
1/83/83/81/8

Sin embargo, el método más simple Runge–Kutta es el (para adelante) Método Euler, dado por la fórmula Sí.n+1=Sí.n+hf()tn,Sí.n){displaystyle Y... }. Este es el único método de Runge-Kutta explícito consistente con una etapa. El cuadro correspondiente es

0
1

Métodos de segundo orden con dos etapas

El método de punto medio explícito proporciona un ejemplo de un método de segundo orden con dos etapas:

Sí.n+1=Sí.n+hf()tn+12h,Sí.n+12hf()tn,Sí.n)).{displaystyle Y... {1}{2}h,y_{n}+{frac {1} {2}hf(t_{n},y_{n})right). }

El cuadro correspondiente es

0
1/21/2
01

El método del punto medio no es el único método de Runge-Kutta de segundo orden con dos etapas; existe una familia de tales métodos, parametrizados por α y dados por la fórmula

Sí.n+1=Sí.n+h()()1− − 12α α )f()tn,Sí.n)+12α α f()tn+α α h,Sí.n+α α hf()tn,Sí.n))).{displaystyle Y... {1}{2alpha }f(t_{n)alpha h,y.

Su cuadro Carnicero es

0
α α {displaystyle alpha }α α {displaystyle alpha }
()1− − 12α α ){displaystyle (1-{tfrac {1}{2alpha }}}}12α α {displaystyle {tfrac}{2alpha }

En esta familia, α α =12{displaystyle alpha ={tfrac {1}{2}}} da el método de punto medio, α α =1{displaystyle alpha =1} es el método de Heun, y α α =23{displaystyle alpha ={tfrac {2}{3}} Es el método de Ralston.

Usar

Como ejemplo, considere el método de Runge-Kutta de segundo orden y dos etapas con α = 2/3, también conocido como método de Ralston. Está dada por el cuadro.

0
2/32/3
1/43/4

con las ecuaciones correspondientes

k1=f()tn,Sí.n),k2=f()tn+23h,Sí.n+23hk1),Sí.n+1=Sí.n+h()14k1+34k2).{displaystyle {begin{aligned}k_{1} limit=f(t_{n} Y... {2} {3}h,y_{n}+{tfrac {2} {3}hk_{1}),\y_{n+1} {=y_{n}+hleft({tfrac} {1}{4}k_{1}+{tfrac {3} {4} k_{2}derecha).

Este método se utiliza para resolver el problema del valor inicial

dSí.dt=#⁡ ⁡ ()Sí.)+1,Sí.0=1,t▪ ▪ [1,1.1]{displaystyle {frac {y}=tan(y)+1,quad y_{0}=1, tin [1,1.1]}

con un tamaño de paso h = 0.025, por lo que el método debe tomar cuatro pasos.

El método procede de la siguiente manera:

t0=1:: {displaystyle T_{0}=1colon }
Sí.0=1{displaystyle Y...
t1=1.025:: {displaystyle t_{1}=1.025colon }
Sí.0=1{displaystyle Y...k1=2.557407725{displaystyle k_{1}=2.557407725}k2=f()t0+23h,Sí.0+23hk1)=2.7138981400{displaystyle ¿Qué? {2}{3}hk_{1}=2.7138981400}
Sí.1=Sí.0+h()14k1+34k2)=1.066869388¿Qué? ¿Qué? {displaystyle Y... {1}{4}k_{1}+{tfrac {3}{2}={underline {1.066869388}}} {cH0}}}} {c}}} {c}}}}}}} {c}}}}}}} {c}}} {cc}}}}} {c}} {c}}}}}}} {c}}}}}}}}}}}}} {c}}}}}}}}}}} {ccc}}}}}}}}}} {cccccccccccccccccccccccccccccccccccccccc}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
t2=1.05:: {displaystyle T_{2}=1.05colon }
Sí.1=1.066869388{displaystyle Y_{1}=1.066869388}k1=2.813524695{displaystyle k_{1}=2.813524695}k2=f()t1+23h,Sí.1+23hk1){displaystyle k_{2}=f(t_{1}+{tfrac {2} {3}h,fnMicroc {2}hk_{1}}}
Sí.2=Sí.1+h()14k1+34k2)=1.141332181¿Qué? ¿Qué? {displaystyle Y... {1}{4}k_{1}+{tfrac {3}{2}}={compline {1.141332181}}}} {}} {}}} {}}} {}}} {}}}} {}}}}} {}}} {}}}} {}} {}}}} {}}}} {}}} {}}}}}}} {}}}}}} {}}}}}}}} {}} {}}}}}} {}}}}}}}}}} {}}}}}}}}}}}}}}}}}}} {} {} {}}}}}} {}}}}}}} {}}}}}}}}}}}} {}}}}}}}}}}}}} {}}} {}}}}}}}}}}}} {}}} {}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}
t3=1.075:: {displaystyle t_{3}=1.075colon }
Sí.2=1.141332181{displaystyle Y_{2}=1.141332181}k1=3.183536647{displaystyle k_{1}=3.183536647}k2=f()t2+23h,Sí.2+23hk1){displaystyle ¿Qué?
Sí.3=Sí.2+h()14k1+34k2)=1.227417567¿Qué? ¿Qué? {displaystyle Y... {1}{4}k_{1}+{tfrac {3}{2}={compline {1.227417567}}}}
t4=1.1:: {displaystyle t_{4}=1.1colon }
Sí.3=1.227417567{displaystyle Y_{3}=1.227417567}k1=3.796866512{displaystyle k_{1}=3.796866512}k2=f()t3+23h,Sí.3+23hk1){displaystyle k_{2}=f(t_{3}+{tfrac {2} {3}h,f}hk_{1}}}
Sí.4=Sí.3+h()14k1+34k2)=1.335079087¿Qué? ¿Qué? .{displaystyle Y... {1}{4}k_{1}+{tfrac {3}{2}={underline {1.335079087}} {cH0}}

Las soluciones numéricas corresponden a los valores subrayados.

Métodos adaptativos de Runge-Kutta

Los métodos de adaptación están diseñados para producir una estimación del error de truncación local de un solo paso Runge–Kutta. Esto se hace por tener dos métodos, uno con orden p{displaystyle p} y uno con orden p− − 1{displaystyle p-1}. Estos métodos están entrelazados, es decir, tienen pasos intermedios comunes. Gracias a esto, estimar el error tiene un costo computacional poco o insignificante en comparación con un paso con el método de orden superior.

Durante la integración, el tamaño del paso se adapta de modo que el error estimado permanezca por debajo de un umbral definido por el usuario: si el error es demasiado alto, se repite un paso con un tamaño de paso más bajo; si el error es mucho menor, se aumenta el tamaño del paso para ahorrar tiempo. Esto da como resultado un tamaño de paso (casi) óptimo, lo que ahorra tiempo de cálculo. Además, el usuario no tiene que perder tiempo en encontrar un tamaño de paso apropiado.

El paso de orden inferior está dado por

Sí.n+1Alternativa Alternativa =Sí.n+h.. i=1sbiAlternativa Alternativa ki,{displaystyle Y... ¿Qué?

Donde ki{displaystyle K_{i} son los mismos que para el método de orden superior. Entonces el error es

en+1=Sí.n+1− − Sí.n+1Alternativa Alternativa =h.. i=1s()bi− − biAlternativa Alternativa )ki,{displaystyle e_{n+1}=y_{n+1}-y_{n+1}{*}=hsum ¿Qué?

que es O()hp){displaystyle O(h^{p}}. El cuadro de Carnicero para este tipo de método se extiende para dar los valores de biAlternativa Alternativa {displaystyle ¿Qué?:

0
c2{displaystyle c_{2}a21{displaystyle a_{21}
c3{displaystyle C_{3}a31{displaystyle a_{31}a32{displaystyle a_{32}
⋮ ⋮ {displaystyle vdots }⋮ ⋮ {displaystyle vdots }⋱ ⋱ {displaystyle ddots }
cs{displaystyle C_{s}as1{displaystyle a_{s1}as2{displaystyle a_{s2}⋯ ⋯ {displaystyle cdots }as,s− − 1{displaystyle a_{s,s-1}
b1{displaystyle B_{1}b2{displaystyle B_{2}⋯ ⋯ {displaystyle cdots }bs− − 1{displaystyle B_{s-1}bs{displaystyle B_{s}
b1Alternativa Alternativa {displaystyle B_{1}b2Alternativa Alternativa {displaystyle B_{2}⋯ ⋯ {displaystyle cdots }bs− − 1Alternativa Alternativa {displaystyle B.bsAlternativa Alternativa {displaystyle B.

El método de Runge–Kutta–Fehlberg tiene dos métodos de órdenes 5 y 4. Su cuadro Butcher extendido es:

0
1/41/4
3/83/329/32
12/131932/2197−7200/21977296/2197
1439/216−83680/513-845/4104
1/28/272−3544/25651859/4104,11 a 40
16/13506656/1282528561/56430−9-502/55
25/21601408/25652197/4104−1/50

Sin embargo, el método adaptativo de Runge-Kutta más simple consiste en combinar el método de Heun, que es de orden 2, con el método de Euler, que es de orden 1. Su cuadro de Butcher extendido es:

0
11
1/21/2
10

Otros métodos adaptativos de Runge-Kutta son el método Bogacki-Shampine (órdenes 3 y 2), el método Cash-Karp y el método Dormand-Prince (ambos con órdenes 5 y 4).

Métodos de Runge-Kutta no confluentes

Un Runge... Se dice que el método Kutta es no contaminantes si todo ci,i=1,2,...... ,s{displaystyle C_{i},,i=1,2,ldotss} son distintos.

Métodos de Runge-Kutta-Nyström

Los métodos de Runge-Kutta-Nyström son métodos de Runge-Kutta especializados que están optimizados para ecuaciones diferenciales de segundo orden de la siguiente forma:

d2Sí.dt2=f()Sí.,Sí.Í Í ,t).{displaystyle {frac {f} {f}}=f(y,{dot {y}},t).}

Métodos implícitos de Runge-Kutta

Todos los métodos de Runge–Kutta mencionados hasta ahora son métodos explícitos. Los métodos explícitos de Runge-Kutta generalmente no son adecuados para la solución de ecuaciones rígidas porque su región de estabilidad absoluta es pequeña; en particular, está acotado. Este tema es especialmente importante en la solución de ecuaciones diferenciales parciales.

La inestabilidad de los métodos explícitos de Runge-Kutta motiva el desarrollo de métodos implícitos. Un método implícito de Runge-Kutta tiene la forma

Sí.n+1=Sí.n+h.. i=1sbiki,{displaystyle Y... ¿Qué?

dónde

ki=f()tn+cih,Sí.n+h.. j=1saijkj),i=1,...... ,s.{displaystyle k_{i}=fleft(t_{n}+c_{i}h, Y... - ¿Por qué?

La diferencia con un método explícito es que en un método explícito, la suma sobre j sólo va hacia arriba i 1. Esto también aparece en el cuadro de Carnicero: la matriz de coeficiente aij{displaystyle a_{ij} de un método explícito es triangular inferior. En un método implícito, la suma sobre j Sube s y la matriz de coeficiente no es triangular, dando un cuadro de Carnicero de la forma

c1a11a12...... a1sc2a21a22...... a2s⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ ⋱ ⋮ ⋮ csas1as2...... assb1b2...... bsb1Alternativa Alternativa b2Alternativa Alternativa ...... bsAlternativa Alternativa =cAbT{fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {2}}c_{2} {21} 'a_{2s}\vdots > 'vdots > \c_{s} limita_{s1} {fnMicrosoft Sans Serif} ¿Qué? ############ {begin{array}{y} {c habitc}mathbf {C} {\\\\\\\\\\\\\\\\\\fn}}

See Adaptive Runge-Kutta methods above for the explanation of the bAlternativa Alternativa {displaystyle b^{*} fila.

La consecuencia de esta diferencia es que en cada paso se debe resolver un sistema de ecuaciones algebraicas. Esto aumenta considerablemente el costo computacional. Si se usa un método con s etapas para resolver una ecuación diferencial con m componentes, entonces el sistema de ecuaciones algebraicas tiene ms componentes. Esto se puede contrastar con los métodos lineales implícitos de varios pasos (la otra gran familia de métodos para ODE): un método lineal implícito de varios pasos con s pasos necesita resolver un sistema de ecuaciones algebraicas con solo m componentes, por lo que el tamaño del sistema no aumenta a medida que aumenta el número de pasos.

Ejemplos

El ejemplo más simple de un método de Runge-Kutta implícito es el método de Euler hacia atrás:

Sí.n+1=Sí.n+hf()tn+h,Sí.n+1).{displaystyle Y... Y...

El cuadro de Carnicero para esto es simplemente:

111{displaystyle {begin{rray}{c habitc}1 âhline >\end{array}}

Este cuadro de Butcher corresponde a las fórmulas

k1=f()tn+h,Sí.n+hk1)ySí.n+1=Sí.n+hk1,{displaystyle k_{1}=f(t_{n}+h, Y_{n}+hk_{1}quad {text{and}quad Y...

que se puede reorganizar para obtener la fórmula del método de Euler hacia atrás que se muestra arriba.

Otro ejemplo de un método implícito de Runge-Kutta es la regla trapezoidal. Su cuadro de carnicero es:

00011212121210{displaystyle {begin{rray}{c vidascc}0 ventaja01 {1}{2} {frac {2}\hline > {fnMicroc} {fnMicroc} {f}}}\\\\fnMicroc} {fnMicroc} {fn}}}}} {\\\fnMicroc}}}}} {\\\\\\\\\\\\\fnMicroc}}}}}}}\\\\\\\fnMicroc}}}}}}}}}}}}}}\\\\\\\\\\\\\\\\\\\\\\\\\\fn}}}}}}}}}}\\\\\\\\\\\fn {1}{2} {2}\\fn}\\fn}}\\fn}}}}}\\\fn0}}}}\\\\fn}}}}}}}}\\\c}}}}}}\\\\c}}}}}}}}}}\\\\\\\\\c}}}}}}}}}}}}}}\\\\\\\\\\\\}}}}}}}}}}}}}}}}\\\\\\\\\\\\\\\\\\}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

La regla trapezoidal es un método de colocación (como se explica en ese artículo). Todos los métodos de colocación son métodos implícitos de Runge-Kutta, pero no todos los métodos implícitos de Runge-Kutta son métodos de colocación.

Los métodos de Gauss-Legendre forman una familia de métodos de colocación basados en la cuadratura de Gauss. Un método de Gauss-Legendre con etapas s tiene un orden de 2s (por lo tanto, se pueden construir métodos con un orden arbitrariamente alto). El método con dos etapas (y por lo tanto orden cuatro) tiene el cuadro de Butcher:

12− − 1631414− − 16312+16314+16314121212+12312− − 123{displaystyle {begin{array}{c vidascc}{frac} {1}{2}-{frac {1}{6}{sqrt {3}{frac {1}{4}} {4} {4} {4} {4}-{frac {1}{6}{sqrt {3}\sqrt {3}\\\c}\c}\c}c}\\\c}c}}\\\c}\c}c}c}c} {c}c} {c}c} {c} {c} {c}}}c}}}}}}}}\c}}}\\c} {c} {\\c}}}}}c}\\\\\c}}}}}}}c}}}}}}\c}\\c}}}}\\c}}}}}}}} {1}{2}}+{6}{6}{sqrt {3} {f} {f} {f} {f}} {f}} {f}} {f}}}}}} {f}}}}} {f}} {f} {f}}} {f}}}}} {f}}}}}}}}}}}}}}}}}}}}}}} {\\f}}}}}}}} {\f}} {f}}} {\f} {f}} {f}} {f} {f} {f}}}}}}}}} {f}} {f} {f} {f}} {f}}}}}} {f}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {1}{4}frac {1}{6}{6}{sqrt {3}{frac {1}{4}\\hline > {1}{2}} {1}{2} {2}\c}\\c}\\\\\\c\\\c\\\\\\c}\c}\\\\c}c}\\c}\\c}c}\\c}\\\c}\\\\\\\\c}\\\\\\\\\c}\\\\\\\\\c}\\\\\\\\\\\\\c}\\\\\\\ {1}{2}}+{frac {2}{sqrt {3} {f} {f} {f} {f}} {f}}} {f}}} {f}}} {f}} {f}}}} {f} {f}}} {f}}}}}}} {f}}}}}}}}} {f}}}}}}}}}}}} {f} {f} {f} {f}} {f}}}}} {f} {f} {f} {f}}}f}}}}}}}}}}}}}}}} {f} {f} {f} {f}} {f}}}}} {f} {f} {f} {f}f}}}}}}}}}}}}}}}}}}}} {f}f}}}}}}}}} {2} {fn} {fn}} {fn}} {fn}} {fn}}} {fn}}} {fn}}}} {fn}} {fn}}} {fn}} {f}}}}} {f}}}} {fn}}} {f}}}} {f}}}}}}}}}}}}}}}}} {f}}}}}}}}}}}} {f}} {f}}} {f} {f}} {f}} {f}}}}}}}}}}} {f}}}}} {f} {f} {f}}}}}} {f}}}} {f}}}}} {f}} {f}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

Estabilidad

La ventaja de los métodos implícitos de Runge–Kutta sobre los explícitamente es su mayor estabilidad, especialmente cuando se aplica a las ecuaciones rígidas. Considere la ecuación de prueba lineal Sí..=λ λ Sí.{displaystyle y'=lambda y}. Un método Runge–Kutta aplicado a esta ecuación reduce a la iteración Sí.n+1=r()hλ λ )Sí.n{displaystyle Y..., con r dado por

r()z)=1+zbT()I− − zA)− − 1e=Det()I− − zA+zebT)Det()I− − zA),{displaystyle r(z)=1+zb^{T}(I-zA)}{-1}e={frac {det(I-zA+zeb^{T}}{det(I-zA)}}}, }

donde e representa el vector de unos. La función r se denomina función de estabilidad. De la fórmula se deduce que r es el cociente de dos polinomios de grado s si el método tiene etapas s. Los métodos explícitos tienen una matriz triangular estrictamente inferior A, lo que implica que det(IzA) = 1 y que la función de estabilidad es un polinomio.

La solución numérica de la ecuación de prueba lineal se reduce a cero si | r(z) | < 1 con z = hλ. El conjunto de tales z se denomina dominio de estabilidad absoluta. En particular, se dice que el método es absolutamente estable si todos z con Re(z) < 0 están en el dominio de la estabilidad absoluta. La función de estabilidad de un método explícito de Runge-Kutta es un polinomio, por lo que los métodos explícitos de Runge-Kutta nunca pueden ser A-estables.

Si el método tiene orden p, entonces la función de estabilidad satisfies r()z)=ez+O()zp+1){displaystyle r(z)={textrm {e}{z}+O(z^{p+1}} como z→ → 0{displaystyle zto 0}. Por lo tanto, es de interés estudiar los cocientes de polinomios de grados dados que aproximan la función exponencial lo mejor. Estos son conocidos como aproximadores Padé. Un pardé aproximado con numerador de grado m y denominador de grado n es A-stable si y sólo si mnm + 2.

El método de Gauss-Legendre con s etapas tiene orden 2s, por lo que su función de estabilidad es la aproximada de Padé con m = n = s. De ello se deduce que el método es A-estable. Esto muestra que A-stable Runge-Kutta puede tener un orden arbitrariamente alto. Por el contrario, el orden de los métodos de varios pasos lineales estables en A no puede exceder de dos.

B-estabilidad

El Estabilidad concepto para la solución de ecuaciones diferenciales está relacionado con la ecuación autónoma lineal Sí..=λ λ Sí.{displaystyle y'=lambda y}. Dahlquist propuso la investigación de la estabilidad de los esquemas numéricos cuando se aplica a los sistemas no lineales que satisfacen una condición de monotónica. Los conceptos correspondientes se definen como Estabilidad G para los métodos multipaso (y los métodos de una sola pierna relacionados) y B-estabilidad (Carnicero, 1975) para los métodos Runge-Kutta. Un método Runge-Kutta aplicado al sistema no lineal Sí..=f()Sí.){displaystyle y'=f(y)}, que verifica <math alttext="{displaystyle langle f(y)-f(z), y-zrangle .. f()Sí.)− − f()z),Sí.− − z.. .0{displaystyle langle f(y)-f(z), y-zrangle #<img alt="{displaystyle langle f(y)-f(z), y-zrangle , se llama B-estable, si esta condición implica .. Sí.n+1− − zn+1.. ≤ ≤ .. Sí.n− − zn.. {displaystyle "Persistente" "Perfecto" para dos soluciones numéricas.

Vamos B{displaystyle B}, M{displaystyle M} y Q{displaystyle Q} tres s× × s{displaystyle stimes s} matrices definidas por

B=diag⁡ ⁡ ()b1,b2,...... ,bs),M=BA+ATB− − bbT,Q=BA− − 1+A− − TB− − A− − TbbTA− − 1.{displaystyle B=operatorname {diag} (b_{1},b_{2},ldotsb_{s}),,M=BA+A^{T}B-bb^{T},,Q=BA^{-1}+A^{-T}B-A^{T}bb^{-1}
algebraicamente estableB{displaystyle B}M{displaystyle M}B-estabilidadB{displaystyle B}Q{displaystyle Q}

Derivación del método de cuarto orden de Runge-Kutta

En general un método de orden Runge–Kutta s{displaystyle s} puede ser escrito como:

Sí.t+h=Sí.t+h⋅ ⋅ .. i=1saiki+O()hs+1),{displaystyle Y... ¿Por qué?

donde:

ki=Sí.t+h⋅ ⋅ .. j=1sβ β ijf()kj,tn+α α ih){displaystyle k_{i}=y_{t}+hcdot sum _{j=1}beta _{ij}fleft(k_{j}, t_{n}+alpha _{i}hright)}

son incrementos obtenidos evaluando los derivados de Sí.t{displaystyle y_{t} en el i{displaystyle i}-a la orden.

Desarrollamos la derivación para el método Runge–Kutta de cuarto orden usando la fórmula general con s=4{displaystyle s=4} evaluado, como se explicó anteriormente, en el punto de partida, el punto medio y el punto final de cualquier intervalo ()t,t+h){displaystyle (t, t+h)}; por lo tanto, elegimos:

α α iβ β ijα α 1=0β β 21=12α α 2=12β β 32=12α α 3=12β β 43=1α α 4=1{displaystyle {begin{aligned} - ¿Qué? ¿Por qué? - ¿Por qué? - ¿Qué? - ¿Qué? ################################################################################################################################################################################################################################################################ - ¿Qué?

y β β ij=0{displaystyle beta _{ij}=0} de lo contrario. Comenzamos por definir las siguientes cantidades:

Sí.t+h1=Sí.t+hf()Sí.t,t)Sí.t+h2=Sí.t+hf()Sí.t+h/21,t+h2)Sí.t+h3=Sí.t+hf()Sí.t+h/22,t+h2){displaystyle {begin{aligned}y_{t+h} {=y_{t}+hfleft(y_{t} ################################################################################################################################################################################################################################################################ t+{frac {h}{2}right)\y_{t+h}{3} {=y_{t}+hfleft(y_{t+h/2}}{2}}\cH0} {fnMicroc} {fnMicrosoft Sans Serif}}

Donde Sí.t+h/21=Sí.t+Sí.t+h12{displaystyle Y... {fnK} {cH}}} {c}}}} {c}} {c}}} {c}} {c}}}}}}} {c}}}}} {c}}}}}} {c}}} {}}}}}}}} {c}}}} {}}}}}}}}}}} {}}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} y Sí.t+h/22=Sí.t+Sí.t+h22{displaystyle Y... {fnK}} {cH}} {c}}}} {c}} {c}}} {c}}} {c}}}}} {c}}}} {c}}}}}}}} {c}}}}} {c}}}}}}}}}} {c}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}. Si definimos:

k1=f()Sí.t,t)k2=f()Sí.t+h/21,t+h2)=f()Sí.t+h2k1,t+h2)k3=f()Sí.t+h/22,t+h2)=f()Sí.t+h2k2,t+h2)k4=f()Sí.t+h3,t+h)=f()Sí.t+hk3,t+h){displaystyle {begin{aligned}k_{1} limit=f(y_{t}, t)\k_{2} limit=fleft(y_{t+h/2}{1}\ccH00} ¿Qué? {h}{2}k_{1}, t+{frac {h}right)\k_{3} {=fleft(y_{t+h/2}{2}c}ccccH}cccH}cccH} ¿Qué? {h}{2} k_{2}, t+{frac {h}right)\k_{4} {=fleft(y_{t+h}{3}, t+hright)=fleft(y_{3}, t+hright)end{aligned}}}} {h}{2}}} {}}}}} {}}}}}}} {}}}}}}}{2}{2}}}}}} {}}}}}}}}}}}}}}}}}}}}}}}}}}} {cccc}}}}}}}}}} {cccccccccccccccccccccccccccccccccccccccc

y para las relaciones anteriores podemos demostrar que las siguientes igualdades tienen hasta O()h2){displaystyle {mathcal}(h^{2}}:

k2=f()Sí.t+h/21,t+h2)=f()Sí.t+h2k1,t+h2)=f()Sí.t,t)+h2ddtf()Sí.t,t)k3=f()Sí.t+h/22,t+h2)=f()Sí.t+h2f()Sí.t+h2k1,t+h2),t+h2)=f()Sí.t,t)+h2ddt[f()Sí.t,t)+h2ddtf()Sí.t,t)]k4=f()Sí.t+h3,t+h)=f()Sí.t+hf()Sí.t+h2k2,t+h2),t+h)=f()Sí.t+hf()Sí.t+h2f()Sí.t+h2f()Sí.t,t),t+h2),t+h2),t+h)=f()Sí.t,t)+hddt[f()Sí.t,t)+h2ddt[f()Sí.t,t)+h2ddtf()Sí.t,t)]]{displaystyle {begin{aligned}k_{2} limit=fleft(y_{t+h/2}^{1}, ¿Qué? {h}{2} k_{1}, t+{frac {h}{2}right)\\fleft(y_{t}, tright)+{frac {h}{2}frac {d} {dt}fleft(y_{t}, tright)k_{3}{y}{2} {f}} {f}}}}} {f}}} {c}}}}}}}} {c} {c}}}} {c} {c} {c} {c} {c} {cccccc}}} {cccccccccccccccccccccccccccccccccccccccc} ¿Qué? {h}{2}fleft (y_{t}+{frac {h}{2} k_{1}, t+{frac {h}{2}right), t+{frac {h}{2}}}right)\\\fleft(y_{t}, tright)+{frac {h}{2}{frac} {d} {dt}left[fleft(y_{t}, {f} {f} {f}c}c} {f}c}ccc}ccc}ccc}cccH} {c} {cc}ccc}cccc}ccH00}ccccH0}cccc}c}cccc}cccccc}cccc}cccccccH00ccH00cH00c}cc}cccc}ccccH00c}ccccH00cccc}cH00}cH00cH00cH00cccH00c}c}c}c}cH {h}{2} k_{2}, t+{frac {h} {h}right), t+hright)\\\\fs=fleft(y_{t}+hfleft(y_{t}+{frac}f} {f} {f}f}f} {f}f}f}f} {f} {f}}t}t}t}t}f} {f} {f}f} {f}f}}f}f}f} {f}f}ccccH}}cc}cc}c}ccc}ccc}ccc}cc}cccccccccccccH00}cccc}c}ccccccH}cc}ccccccccc}ccH}ccH00}ccH00}ccccccc}ccc tright)+{frac {h}{2}{frac} {d} {dt}left[fleft(y_{t}, {fnMicroc} {f} {f} {f}f} {f} {f}f}m} {f} {f}}}f}}}}}}f} {f}
ddtf()Sí.t,t)=∂ ∂ ∂ ∂ Sí.f()Sí.t,t)Sí.Í Í t+∂ ∂ ∂ ∂ tf()Sí.t,t)=fSí.()Sí.t,t)Sí.Í Í +ft()Sí.t,t):=Sí... t{fnMicroc {f} {fnMicroc {f} {f} {fnMicroc {partial }{partial y}}f(y_{t}, t){dot} {f} {f} {f} {f} {f} {f} {f} {f}=f_{y}(y_{t}, t){ dot {y}+f_{t}(y_{t} t} t}={ddot}={ddot} {c} {c} {c} {t} {c} {c}ccccccccc}c}ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc} {y}_{t}
f{displaystyle f}

Si ahora expresamos la fórmula general usando lo que acabamos de derivar obtenemos:

Sí.t+h=Sí.t+h{}a⋅ ⋅ f()Sí.t,t)+b⋅ ⋅ [f()Sí.t,t)+h2ddtf()Sí.t,t)]++c⋅ ⋅ [f()Sí.t,t)+h2ddt[f()Sí.t,t)+h2ddtf()Sí.t,t)]]++d⋅ ⋅ [f()Sí.t,t)+hddt[f()Sí.t,t)+h2ddt[f()Sí.t,t)+h2ddtf()Sí.t,t)]]]}+O()h5)=Sí.t+a⋅ ⋅ hft+b⋅ ⋅ hft+b⋅ ⋅ h22dftdt+c⋅ ⋅ hft+c⋅ ⋅ h22dftdt++c⋅ ⋅ h34d2ftdt2+d⋅ ⋅ hft+d⋅ ⋅ h2dftdt+d⋅ ⋅ h32d2ftdt2+d⋅ ⋅ h44d3ftdt3+O()h5){fnMicrosoft Sans Serif} {f} {f} {f}} {f} {f} {f}} {f}} {f} {f} {f} {f}f} {f} {f} {f}}f}}f}f}f}f}} {f}f}}}}f}f}}f}f}}} {f} {f}f} {f}f} {f}f} {f}f} {f}f}}f}f}}f}}}}}f}f}f} {f}f} {f}}}}}f}f} {f}}f}f}f}}}}f}f}}f}f}f}}f}f}f}f}}}}}f}} t)+{frac {h}{2}{frac {dt}left[f(y_{t}, t)+left.{frac} {h}{2}{} {dt}f(y_{t}, t)right]right]rightrbrace {fnMitcal {} {cH}={} {cdot} hf_{t}+bcdot ¿Qué? {df_{t} {dt}+ccdot ¿Qué? {f} {f}}\\\f}+ccdot} {fnMicroc {fnK} {fnMicroc} {fnMicroc}} {f}} {fn}}} {fn}}}} {fnMicroc} {fnK}}} {fn}} {fnMicroc {f}}}} {fn}}}}}} {f}}}}}}}}}}}}}}}} {f}f}f}f}f}f}f}f}f}f}fnf}fnMicrocfnf}f}f}f}f}fnfn}}fn}f}fnfnfnfnfnfnfnf}fnfnfnfnMicrocfnMicrocfnf}}}}f}}}}}}}}} {f} {f} {f}}cdot} hf_{t}+dcdot h^{2}{frac {df_{t} {dt}}dcdot {fnMicroc {fnK} {fnMicroc} {fnMicroc}} {f}} {fn}}} {fn}}} {fnMicroc}}} {fnMicroc {f}}}}} {fn}}}} {fnMicroc} {f}}}}}}} {f}}}} {f}}}}}} {f}}}}}}}}}}}}}}}}}}}}} {f} {f} {f} {f}f}f}f} {f} {f}f}f}f}fnMicrocfnMicroc}}}f}}}}}}fnf}f}f}}f}}}}}}}}}}fnf}f}f}f}f}f}f}f {f} {f} {f}}cdot} {fnMicroc {fn} {fnK}} {fnMicroc}} {fn}} {fn}} {fnK}}}} {fnMicroc}}}}} {fnK}}}} {fnMicroc {f}}} {fnMicroc} {f}}}} {f}}}}}}}}} {f}}}}}}} {f}}} {f} {f} {f}f}}}}}}}}}}}}}}}}}}}}}}}}}}}} {f} {f} {f} {f}f}f} {fnf}f}f} {fnf}f}f}f}f}fnfn}fnf}f}f}f}f}f}f}fn {f} {f} {f}} {f}} {f}} {f} {f}} {f} {f} {f}}} {f}}} {f}}}} {f}} {f}}} {f}}} {f}}}}}}}}}}}}}}}}}}}}}}} {f}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {f}

y comparar esto con la serie Taylor Sí.t+h{displaystyle Y... alrededor t{displaystyle t}:

Sí.t+h=Sí.t+hSí.Í Í t+h22Sí... t+h36Sí.t()3)+h424Sí.t()4)+O()h5)==Sí.t+hf()Sí.t,t)+h22ddtf()Sí.t,t)+h36d2dt2f()Sí.t,t)+h424d3dt3f()Sí.t,t){displaystyle {begin{aligned}y_{t+h} {y}_{t}+{frac} {h}{2}{2}{ddot {y}_{t}+{frac} {fnh} {fn} {fn}} {fn}} {fn}}} {fn}}} {f} {f}} {f}}}} {f}}} {f}} {f}}}}} {f}}}}}}} {f}}}}}}}}}}} {\\\f}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {\\\\\\\\\\\\\\\\f}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {\\\\\\\\\\\\\\\ {h^{4}}{24}y_{(4)}+{mathcal {O}(h^{5})=\\\\\\\\\\\\\\f}\\\\\\\\cH00}\cH00cH00}\cH00cH00cH00}cH00}cH00}cH00cH00}cH00}cH00}cH00cH00cH00cH00cH00}cH00cH00}cH00}cH00cH00}cH00}cH00}cH00}cH00cH00}cH00cH00cH00}cH00}cH00}cH00cH00}cH00}cH00cH00}cH00} ¿Qué? t)+{frac {h^{3}{6}{frac} {f} {f}} {f}} {f}} {f}} {f}}} {f}} {f}} {f}}}} {f}}}} {f}} {f}} {f}}}}}}}}}} {f}}}}}} {f} {f}} {f}f}}}}f} {f}f}f}}f}f}f}f}}f} {f} {f}f} {f}f}f}f}f}f}f} {f}f} {f}f}f}f}f}f}f}f} {f}f}f}f}f}f}f}f}f}f}f}f}f}f {d^{2}{dt}}f(y_{t}, t)+{frac {h^{4}{24}{frac} {f} {f}} {f}} {f}} {f}} {f}}}} {f}} {f}}} {f}}} {f}}}} {f}}} {f}}}}}}} {f} {f}f}f}f}f}f}}}f}}}}}}f}f}f}f}f}f}f}f}f}f}f} {f}f}f}f}f}f}f}f}}f}f}f}}f}}f}f}f}f}f}f}f}f} {f}f}fnMicroc}}}f}f}}}}}}}}}}}}}}}}}}}} {d^{3}{dt}}f(y_{t}, t)end{aligned}}

obtenemos un sistema de restricciones sobre los coeficientes:

{}a+b+c+d=112b+12c+d=1214c+12d=1614d=124{fnMicrosoft Sans Serif}b+{fnMicrosoft Sans Serif}b+{frac {1}{2}c+d={frac} {1}{2}[6pt] {1}{4}c+{frac} {1}{2}d={frac} {1}{6}[6pt] {1} {4}d={frac {1} {24}end{cases}} {fnMicrosoft Sans Serif}} {fnK}}} {fnK}}} {fnK}} {fnK}}} {f}}}} {f}} {fnKf}}} {f}}}} {f}}}}}} {f}}}}}}} {f}}}}}}}}}} {f} {f}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {f} {f} {f} {f} {f} {f}} {f}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}f}}}}f}}}}}}}}}}

que cuando se resuelve da a=16,b=13,c=13,d=16{displaystyle a={frac {1}{6},b={frac {1}{3},c={frac {1}{3},d={frac {1}{6}} como se indicó anteriormente.

Contenido relacionado

Ciencias formales

La ciencia formal es una rama de la ciencia que estudia las disciplinas del lenguaje formal relacionadas con los sistemas formales, como la lógica, las...

ArXiv

arXiv fue posible gracias al formato de archivo TeX compacto, que permitió que los artículos científicos se transmitieran fácilmente a través de Internet...

Teoría de la decisión

La teoría de la decisión es el estudio de las elecciones de un agente. La teoría de la decisión se puede dividir en dos ramas: la teoría de la...

John William Strutt, tercer barón Rayleigh

John William Strutt, tercer barón de Rayleigh, OM, PC, PRS fue un matemático británico y físico que hizo amplias contribuciones a la ciencia. Pasó toda...

Heinz von Foerster

Heinz von Foerster fue un científico austríaco-estadounidense que combinaba física y filosofía, y ampliamente atribuido como el creador de la cibernética...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save