¿Qué es un código C para una ecuación de movimiento armónico simple usando el método Runge-Kutta?

La ecuación general para el movimiento armónico simple es:
[matemáticas] \ ddot {x} + \ omega ^ 2x = 0 [/ matemáticas]
Ahora para resolver esto usando el Método Runge-Kutta podemos dividirlo en dos partes:
[matemáticas]
\ dot {x} = v;
\ dot {v} = – \ omega ^ 2 x;
[/matemáticas]
Al conocer las condiciones iniciales para el movimiento armónico simple:
[matemáticas]
x (0) = x_ {0};
v (0) = v_ {0};
[/matemáticas]
El siguiente es el código para el método Runge-Kutta en el programa C:

#include
int main ()
{
flotador x, v, t, h, x1, x2, x3, x4, v1, v2, v3, v4, w, i;
printf (“Proporcione la frecuencia angular: \ n”);
scanf (“% f”, & w);
printf (“Proporcione el desplazamiento inicial y la velocidad: \ n”);
scanf (“% f% f”, & x, & v);
printf (“Dar el tiempo: \ n”);
scanf (“% f”, & t);
printf (“Dar el tamaño de pasos: \ n”);
scanf (“% f”, & h);
x1 = x2 = x3 = x4 = v1 = v2 = v3 = v4 = 0;
para (i = 0; i <= t; i = i + h)
{
x1 = h * v;
v1 = h * (- (w * w) * x);
x2 = h * (v + v1 / 2);
v2 = h * (- (w * w) * (x + x1 / 2));
x3 = h * (v + v2 / 2);
v3 = h * (- (w * w) * (x + x2 / 2));
x4 = h * (v + v3);
v4 = h * (- (w * w) * (x + x3));
x = x + (x1 + 2 * x2 + 2 * x3 + x4) / 6;
v = v + (v1 + 2 * v2 + 2 * v3 + v4) / 6;
x1 = x2 = x3 = x4 = 0;
v1 = v2 = v3 = v4 = 0;
}
printf (“% f y% f es desplazamiento y velocidad respectivamente después del tiempo% f \ n”, x, v, t);

retorno (0);
}

Al iterar hasta el tiempo requerido t, podemos obtener el desplazamiento y la velocidad del objeto que experimenta, un movimiento armónico simple.
¡Esperanza! te gusta la respuesta
Lo editaré aún más si algún concepto no está claro. 😀