Processing math: 1%

37 votos

Explicación y Prueba de la cuarta orden de Runge-Kutta

Método de Runge-Kutte de 4º orden, el método es una técnica numérica utilizada para resolver diferenciales ordinarias ecuación de la forma dy/dx=f(x,y),y(0)=y0

Da y_{i+1} en forma y_{i+1} = y_i+(a_1k_1+a_2k_2+a_3k_3+a_4k_4)h, donde las constantes se encuentran: y_{i+1} = y_i+\frac{1}{6}(k_1+2k_2+2k_3+k_4)h y: k_1=f(x_i, y_i) k_2=f(x_i+\frac{1}{2}, y_i+\frac{1}{2}k_1h) k_3=f(x_i+\frac{1}{2}, y_i+\frac{1}{2}k_2h) k_4=f(x_i+h, y_i+k_3h)

También he aprendido que estos se derivan de los primeros cuatro términos de la serie de Taylor: y_{i+1}=y_i+f(x_i,y_i)h+\frac{1}{2!}f'(x_i,y_i)h^2+\frac{1}{3!}f''(x_i,y_i)h^3+\frac{1}{4!}f'''(x_i,y_i)h^4

Estas son las cosas que yo entendía. Sin embargo, he aquí lo que no puedo:

  • No puedo ver por qué es este método de "trabajo"?
  • ¿Cómo son las a_ik_i términos de derivada y calcula a partir de la serie de Taylor?
  • Lo que justifica o prueba de este resultado?

Por favor, tenga en cuenta que he visto muchos artículos en estas cosas cosas, pero ninguno de ellos contenía una plena prueba alguna... también me gustaría mucho como para obtener algunos ejemplos en los que la función f es en realidad una función de x, y no sólo de x. Por favor me podrian enviar algunos enlaces con los más avanzados y concisa de los enlaces de esta pregunta?

57voto

snicker Puntos 123

Hay muchos métodos de Runge–Kutta. La que tú has descrito es probablemente la más popular y ampliamente utilizado. No voy a mostrar cómo derivar este método en particular – en lugar de eso voy a derivar la fórmula general para el explícito de segundo orden de Runge–Kutta y usted puede generalizar las ideas.

En lo que sigue vamos a necesitar los siguientes series de Taylor de las expansiones.

\begin{align} \tag1\label{eq1} & x(t+\Delta t) = x(t) + (\Delta t)x'(t) + \frac{(\Delta t)^{2}}{2!}x''(t) + \text{higher order terms}. \\ \tag2\label{eq2} & f(t + \Delta t, x + \Delta x) = f(t,x) + (\Delta t)f_{t}(t,x) + (\Delta x)f_{x}(t,x) + \text{higher order terms}. \end{align}

Estamos interesados en la siguiente ODA:

x'(t) = f(t,x(t)).

El valor de x(t) es conocido y x(t+h) es deseado. Podemos resolver esta ODA mediante la integración de: x(t+h) = x(t) + \int_{t}^{t+h}f(\tau,x(\tau))\text{d}\tau. Por desgracia, en realidad, haciendo que la integración exactamente a menudo es bastante difícil (o imposible), así que un aproximado usando cuadratura: x(t+h) \approx x(t) + h\sum_{i=1}^{N}\omega_{i}f(t + \nu_{i}h,x(t + \nu_{i}h)). La exactitud de la cuadratura depende del número de términos en la suma (el orden de los métodos de Runge–Kutta), los pesos, \omega_{i}, y la posición de los nodos, \nu_{i}.

Incluso esta cuadratura puede ser bastante difícil de calcular, ya que en el lado derecho tenemos a x(t + \nu_{i}h), lo que no sabemos. Hemos de conseguir alrededor de este problema de la siguiente manera:

Deje \nu_1=0, lo que hace que el primer término de la cuadratura K_{1} := hf(t,x(t)). Esto nos lo hacen saber y nosotros también lo puede utilizar para aproximar x(t + \nu_{2}h) escribiendo el segundo término de la cuadratura como K_{2} := hf(t+\alpha h,x(t) + \beta K_{1}).

Con esto, la cuadratura fórmula es: \tag3\label{eq3} x(t+h) = x(t) + \omega_{1}K_{1} + \omega_{2}K_{2}.

Algunas notas:

  1. Si queríamos encontrar una de tercer orden, método, se introduciría K_{3} = hf(t+\tilde{\alpha}h,x+\tilde{\beta}K_{1} + \tilde{\gamma}K_{2}). Si queríamos un cuarto método de orden, se introduciría K_{4} en una manera similar.
  2. Este es un método explícito, es decir, hemos escogido K_{2} a depender de K_{1} pero K_{1} no depende de K_{2}. Del mismo modo, K_{3} (si nos presentamos a) depende de la K_{1} K_{2} pero no dependen de K_{3}. Se podría permitir que la dependencia a ejecutar ambas maneras, pero el método es implícita y se vuelve mucho más difícil de resolver.
  3. Todavía tenemos que elegir \alpha, \beta y el \omega_{i}. Vamos a hacer eso ahora, usando la serie de Taylor de las expansiones me introdujo en el principio.

En la ecuación \eqref{eq3}, sustituimos en la expansión en series de Taylor \eqref{eq1} en el lado izquierdo:

x(t) + h x'(t) + \frac{h^{2}}{2!}x''(t) + \mathcal{O}\left(h^{3}\right) = x(t) + \omega_{1}K_{1} + \omega_{2}K_{2}.

Desde x' = f e lo x'' = f_{t} + ff_{x} (supresión de los argumentos para la facilidad de notación), tenemos:

hf + \frac{h^{2}}{2}(f_{t} + ff_{x}) + \mathcal{O}\left(h^{3}\right) = \omega_{1}K_{1} + \omega_{2}K_{2}.

Ahora sustituye por K_{1}K_{2}:

hf + \frac{h^{2}}{2}(f_{t} + ff_{x}) + \mathcal{O}\left(h^{3}\right) = \omega_{1}hf + \omega_{2}hf(t + \alpha h, x + \beta K_{1}).

Taylor-ampliar en el lado derecho de usar \eqref{eq2}:

hf + \frac{h^{2}}{2}(f_{t} + ff_{x}) + \mathcal{O}\left(h^{3}\right) = \omega_{1}hf + \omega_{2}(hf +\alpha h^{2}f_{t} + \beta h^{2} ff_{x}) + \mathcal{O}\left(h^{3}\right).

Así, el método de Runge–Kutta de acuerdo con la serie de Taylor aproximación a \mathcal{O}\left(h^{3}\right) si elegimos:

\omega_{1} + \omega_{2} = 1, \alpha \omega_{2} = \frac{1}{2}, \beta \omega_{2} = \frac{1}{2}.

La elección canónica para el segundo orden de Runge–Kutta es \alpha = \beta = 1 \omega_{1} = \omega_{2} = 1/2.

El mismo procedimiento puede ser utilizado para encontrar las restricciones sobre los parámetros del cuarto orden de Runge–Kutta. La canónica de elección en este caso es el método que se describe en la pregunta.

3voto

ValdaR Puntos 11

Le sugiero que revise los enlaces de abajo, usted puede encontrar documentos, videos, matlab (mathematica, maple) códigos y ejemplos sobre el método de rk

De 2º orden

4 de la orden

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X