|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Nikolay Hatuntsev 2:5025/27.47 16 Dec 2001 22:56:07 To : Sergey Popov Subject : СДУ --------------------------------------------------------------------------------
15 Дек 01 16:55, Sergey Popov разговаривал с All:
SP> может кто подскажет алгоpитм численного pешение данной системы диф.
SP> уpавнений (инет пеpеpыл, нашел метод эйлеpа, pунге-кутта но для одного
SP> ду)
SP> Ъ x' = y
SP> А y' = -(a/b)*sin a ;a и b заданные константы.
SP> н.у. y=0, x=x0
Решение системы из двух дифф. уравнений методом Рунге-Кутты 4-го порядка.
// y'=f(z,y,t)
// z'=g(z,y,t)
double t=0,y=0,z=0; //Hачальные значения
double dt=time/N; //Временной дискрет
double zn,yn,k1z,k2z,k3z,k4z,k1y,k2y,k3y,k4y;
for(int i=0;i<N;i++)
{
t=i*dt;
k1z=dt*g( z , y , t );
k2z=dt*g( z+k1z/2 , y , t+dt/2 );
k3z=dt*g( z+k2z/2 , y , t+dt/2 );
k4z=dt*g( z+k3z , y , t+dt );
k1y=dt*f( z , y , t );
k2y=dt*f( z , y+k1y/2 , t+dt/2 );
k3y=dt*f( z , y+k2y/2 , t+dt/2 );
k4y=dt*f( z , y+k3y , t+dt );
zn=z+(k1z + 2*k2z + 2*k3z + k4z)/6;
yn=y+(k1y + 2*k2y + 2*k3y + k4y)/6;
y=yn;
z=zn;
}
До скорой встречи, Nikolay AKA Lazy Dreamer.
--- GoldED+/W32 1.1.4.3
* Origin: Voronezh, Russia. (2:5025/27.47)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/151563c1cef89.html, оценка из 5, голосов 10
|