ВНИМАНИЕ! На форуме начался конкурс астрофотография месяца - СЕНТЯБРЬ!
0 Пользователей и 1 Гость просматривают эту тему.
std::vector<double> y(6), p(6), q(6), r(6), s(6), f(6);double h = 0.0001;y[0] = Point.x;y[1] = Point.y;y[2] = Point.z;y[3] = Velocity.x;y[4] = Velocity.y; y[5] = Velocity.z;f[0] = Velocity.x;f[1] = Velocity.y;f[2] = Velocity.z; f[3] = -(double)GRAVITATION_PARAM*Point.x/(AbsVector(Point)*AbsVector(Point)*AbsVector(Point)); f[4] = -(double)GRAVITATION_PARAM*Point.y/(AbsVector(Point)*AbsVector(Point)*AbsVector(Point)); f[5] = -(double)GRAVITATION_PARAM*Point.z/(AbsVector(Point)*AbsVector(Point)*AbsVector(Point)); for (unsigned long j = 0; j < 100000; j++) { for (int i = 0; i < 6; i++) { p[i] = f[i]; q[i] = f[i] + h*p[i]/2; r[i] = f[i] + h*q[i]/2; s[i] = f[i] + h*q[i]; y[i] += h*(p[i] + 2*q[i] + 2*r[i] + s[i])/6; } f[0] = y[3]; f[1] = y[4]; f[2] = y[5]; f[3] = -(double)GRAVITATION_PARAM*y[0]/(AbsVector(CIC_Point3DD(y[0], y[1], y[2]))*AbsVector(CIC_Point3DD(y[0], y[1], y[2]))*AbsVector(CIC_Point3DD(y[0], y[1], y[2]))); f[4] = -(double)GRAVITATION_PARAM*y[1]/(AbsVector(CIC_Point3DD(y[0], y[1], y[2]))*AbsVector(CIC_Point3DD(y[0], y[1], y[2]))*AbsVector(CIC_Point3DD(y[0], y[1], y[2]))); f[5] = -(double)GRAVITATION_PARAM*y[2]/(AbsVector(CIC_Point3DD(y[0], y[1], y[2]))*AbsVector(CIC_Point3DD(y[0], y[1], y[2]))*AbsVector(CIC_Point3DD(y[0], y[1], y[2])));}
Вы хотите сказать, что производную нужно считать для каждого i?
Нет, для каждого p,q,...https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%A0%D1%83%D0%BD%D0%B3%D0%B5_%E2%80%94_%D0%9A%D1%83%D1%82%D1%82%D1%8B
В правых частях дифференциальных уравнений нужно учитывать вращение Земли.
Но здесь специфика в том, что нет функции, есть только данные
нужно учитывать вращение Земли
omega - угловая скорость вращения Земли
Допустима ли в таких масштабах погрешность
Это зачем? Что бы сто тысяч раз дополнительную ошибку накопить? Если нужно учитывать "вращение", то делать это нужно только один раз
Затем, что она интегрируем во вращающейся системе координат
Скорости вращения по z нет
По поводу скоростей, мю Земли не wgs-84, проверьте
Зачем? У нас мало источников ошибок? Нам некуда девать ресурсы процессора?
Цитата: Geen от 14 Ноя 2015 [01:02:39]Зачем? У нас мало источников ошибок? Нам некуда девать ресурсы процессора?Прочитайте название темы.
Не бывает такой "специфики". Тем более, что вычисление \(f\) у Вас явно написано....
Если нужно учитывать "вращение", то делать это нужно только один раз, в конце...
У Вас пока не с погрешностью проблема, а с алгоритмом...
Кто нибудь оценивал сходимость 2суточных глонасс эфемерид?