Мне совершенно нет никакого интереса вас обманывать. я ничего не продаю и не собираюсь продавать, просто делюсь информацией по результатам собственных исследований. Задача 12 тел, так же как и задача 6-ти тел в одном частном случае имеет точное аналитическое решение. Это решение возможно, когда тела расположены полностью симметрично относительно центра масс, имеют одинаковые массы и одинаковые по модулю скорости, при которых центробежная сила, действующая на каждое тело равна сумме гравитационных сил от других тел (формула не сложная). Тогда, если задать равновесную скорость все тела будут двигаться по кругу с постоянным радиусом. Если задать скорость меньше равновесной, то тела будут двигаться по эллипсам вокруг центра масс.
Не надо применять метод деления шага интегрирования пополам, достаточно сравнить аналитический радиус орбиты вращения и радиус, полученный как корень квадратный из суммы квадратов приращений координат. Можно сравнить результаты даже на первом шаге интегрирования.
Кстати в результате подобных расчетов получился весьма интересный вывод, что шаг интегрирования уравнений движения по времени имеет оптимальное значение. То-есть при некотором шаге интегрирования дальнейшее его уменьшение приводит к повышению погрешности, за счет увеличения ошибок округления при малых шагах. При этом рекомендуемое применение метода деления шага интегрирования часто приводит к прямо противоположному результату.
И еще, опыт расчетов движения систем тел во взаимных гравитационных полях однозначно показал, что при высокой точности интегрирования, все законы сохранения и теорема движения центра масс выполняются автоматически. К примеру, даже при самой низкой точности задания начальных эфемерид всех планет и Солнца (16 разрядов в таблицах NASA), расчет их траекторий приводит к смещению вычисленного значения центра масс Солнечной системы всего на 14.5 метра на интервале 100 лет, хотя метод интегрирования был далеко не самый точный (Рунге-Кутты 2-го порядка).
Спасибо за ответ, хотелось бы все таки чем-то быть полезным, хотя мои работы скорее всего безнадежно устарели. Например, решая уравнение Пуассона на большой трехмерной матрице методом итераций, я задавал грубое начальное приближение в каждой точке исходя из приближенного решения уравнения Лапласа, причем совершенно другим методом. После этого требовалось всего несколько итераций решения уравнения Пуассона с применением оптимального параметра верхней релаксации. В итоге получалось самосогласованное электрическое поле с учетом объемного распределения зарядов в интенсивных потоках заряженных частиц в объеме. Это все, больше мне добавить нечего. В настоящее время такие задачи по-видимому никому не интересны.
Что касается космических задач, то я специально придумал тяжелые тестовые задачи 6-ти или 12-ти тел одинаковой массы (порядка массы звезд) для отладки точности алгоритмов численного интегрирования дифференциальных. уравнений движения при взаимном гравитационном влиянии. Характерно и это давно доказано теоретически, что при одинаковой массе эти решения крайне не устойчивы и очень чувствительны и к начальным значениям и к методу интегрирования и к накопленным округлениям переменных на каждом шаге.
Согласен, самый устойчивый метод - это метод Рунге- Кутты, я применяю распространенные методы 2-го или 4-го порядка, и пытаюсь оптимизировать до более высоких порядков, а про метод 24-го порядка слышу впервые. Очень интересно узнать о нем поподробнее.
После того, как мне удалось разработать переменную BigDouble, я первым делом проверил на тестовой задаче точность решения системы уравнений движения при различных заданных значениях разрядности и при прочих равных условиях. Количество шагов интегрирования по времени - 150 000. Результаты примерно такие:
n=15, dr =1*10^-2;
n=20, dr =1*10^-7;
n=25, dr =1*10^-12;
n=30, dr =1*10^-16;
n=35, dr =1*10^-16;
n - разрядность, dr - порядок погрешности расчета координат.
Вывод простой: разрядность влияет до значений порядка 30, дальнейшее увеличение разрядности смысла не имеет, поэтому длинная арифметика не годится от слова совсем.
Последний раз я решал уравнение Пуассона, когда рассчитывал трехмерное гравитационное поле внутри Земли с учетом распределения плотности вещества и формы эллипсоида вращения. Но я немного упростил задачу, свел ее к уравнению Лапласа и получил классное решение при разбиении планеты на кольца сечением 1000 х1000 метров. Этих колец (здесь бы рисунок хорошо вставить) получилось несколько миллионов. В итоге рассчитал распределение гравитационного потенциала и напряженности поля в любой точке объема планеты. На поверхности Земли на уровне океана получилось хорошее соответствие измеряемым величинам ускорения силы тяжести на любой широте, а также известным формулам Гельмерта, Киссиниса. Так что мы тоже чего-то можем!
Я не сталкивался с матрицами Гилберта, но проблема плохой обусловленности у меня возникла при решении задач расчета электрических полей методом интегральных уравнений или методом коллокаций. Там, при значительном смещении фиктивных зарядов внутрь металлических электродов, соседние уравнения имеют весьма близкие коэффициенты и при решении больших СЛАУ с переменными обычной разрядности бывают очень большие ошибки. Приходится жертвовать 2-3 минуты для одноразового точного решения используя переменные с повышенной разрядностью.
Кроме того, я слышал, но не уверен, что проблема плохо обусловленных матриц возникает при решении систем уравнений прогибов в трехмерных прочностных расчетах теории сопротивления материалов.
Основное применение переменных повышенной разрядности у меня в решении дифференциальных уравнений движения тел при взаимном воздействии гравитации. Численное решение любой задачи трех тел с ними вообще не проблема. А вот решение задачи шести тел, а тем более 12 тел без них не получается совсем.
Если задача того стоит, надо ее максимально упростить и решать на суперкомпьютере, а на нашем железе даже начинать не стоит. Как говорил один герой известного фильма: "Бери ношу по себе, чтоб не падать при ходьбе".
Когда-то давным-давно в начале 70-х мне приходилось решать уравнения Пуассона на матрице 1000*1000 при оперативной памяти допотопной ЭВМ Одра-1204 всего 11 К, однако все получалось, диплом защитил на отлично! Кто Вам запрещает использовать дисковую память, периодически поочередно читая и записывая после обработки фрагменты матрицы, которые тянет оперативка? Можно очень эффективно ускорять решение, распараллеливая процесс по ядрам, кроме того, итерационные методы ускоряются подбором оптимального коэффициента верхней релаксации, если, конечно процесс сходящийся.
Для решения уникальных по сложности задач разрабатываются специальные методы с учетом имеющихся возможностей. Иногда, для получения максимальной заданной точности результата можно пожертвовать временем. А вот длинная арифметика годится только лишь очень коротеньких сверх точных расчетов или для проверки точности новых алгоритмов, когда есть такая необходимость.
Для решения СЛАУ в несколько тысяч уравнений с плохо обусловленной матрицей, а также для прецизионного численного решения дифференциальных уравнений движения или уравнений прогибов и других задач, где требуется высочайшая точность вычислений и работа с переменными очень больших астрономических или очень маленьких внутриатомных значений, я разработал и с успехом применяю собственную действительную переменную BigDouble. Ее особенность в том, что разрядность можно самому задавать любую, например, 20, 25, 30 или 36 десятичных знаков, требования к экспоненте без реальных ограничений.
Для примера, решение СЛАУ с 1000 уравнений дает максимальную невязку среди всех найденных решений. при заданной разрядности 28 не более 1.7 10 -23, а для 2000 уравнений менее 5.0*10-23. Существенный недостаток - большое время расчетов. Например, 1000 уравнений считается порядка 3-х минут, зато простота применения и высокая точность решения любых уравнений с плохо и даже очень плохо обусловленной матрицей коэффициентов гарантируется.
Мне совершенно нет никакого интереса вас обманывать. я ничего не продаю и не собираюсь продавать, просто делюсь информацией по результатам собственных исследований. Задача 12 тел, так же как и задача 6-ти тел в одном частном случае имеет точное аналитическое решение. Это решение возможно, когда тела расположены полностью симметрично относительно центра масс, имеют одинаковые массы и одинаковые по модулю скорости, при которых центробежная сила, действующая на каждое тело равна сумме гравитационных сил от других тел (формула не сложная). Тогда, если задать равновесную скорость все тела будут двигаться по кругу с постоянным радиусом. Если задать скорость меньше равновесной, то тела будут двигаться по эллипсам вокруг центра масс.
Не надо применять метод деления шага интегрирования пополам, достаточно сравнить аналитический радиус орбиты вращения и радиус, полученный как корень квадратный из суммы квадратов приращений координат. Можно сравнить результаты даже на первом шаге интегрирования.
Кстати в результате подобных расчетов получился весьма интересный вывод, что шаг интегрирования уравнений движения по времени имеет оптимальное значение. То-есть при некотором шаге интегрирования дальнейшее его уменьшение приводит к повышению погрешности, за счет увеличения ошибок округления при малых шагах. При этом рекомендуемое применение метода деления шага интегрирования часто приводит к прямо противоположному результату.
И еще, опыт расчетов движения систем тел во взаимных гравитационных полях однозначно показал, что при высокой точности интегрирования, все законы сохранения и теорема движения центра масс выполняются автоматически. К примеру, даже при самой низкой точности задания начальных эфемерид всех планет и Солнца (16 разрядов в таблицах NASA), расчет их траекторий приводит к смещению вычисленного значения центра масс Солнечной системы всего на 14.5 метра на интервале 100 лет, хотя метод интегрирования был далеко не самый точный (Рунге-Кутты 2-го порядка).
Спасибо за ответ, хотелось бы все таки чем-то быть полезным, хотя мои работы скорее всего безнадежно устарели. Например, решая уравнение Пуассона на большой трехмерной матрице методом итераций, я задавал грубое начальное приближение в каждой точке исходя из приближенного решения уравнения Лапласа, причем совершенно другим методом. После этого требовалось всего несколько итераций решения уравнения Пуассона с применением оптимального параметра верхней релаксации. В итоге получалось самосогласованное электрическое поле с учетом объемного распределения зарядов в интенсивных потоках заряженных частиц в объеме. Это все, больше мне добавить нечего. В настоящее время такие задачи по-видимому никому не интересны.
Что касается космических задач, то я специально придумал тяжелые тестовые задачи 6-ти или 12-ти тел одинаковой массы (порядка массы звезд) для отладки точности алгоритмов численного интегрирования дифференциальных. уравнений движения при взаимном гравитационном влиянии. Характерно и это давно доказано теоретически, что при одинаковой массе эти решения крайне не устойчивы и очень чувствительны и к начальным значениям и к методу интегрирования и к накопленным округлениям переменных на каждом шаге.
Согласен, самый устойчивый метод - это метод Рунге- Кутты, я применяю распространенные методы 2-го или 4-го порядка, и пытаюсь оптимизировать до более высоких порядков, а про метод 24-го порядка слышу впервые. Очень интересно узнать о нем поподробнее.
После того, как мне удалось разработать переменную BigDouble, я первым делом проверил на тестовой задаче точность решения системы уравнений движения при различных заданных значениях разрядности и при прочих равных условиях. Количество шагов интегрирования по времени - 150 000. Результаты примерно такие:
n=15, dr =1*10^-2;
n=20, dr =1*10^-7;
n=25, dr =1*10^-12;
n=30, dr =1*10^-16;
n=35, dr =1*10^-16;
n - разрядность, dr - порядок погрешности расчета координат.
Вывод простой: разрядность влияет до значений порядка 30, дальнейшее увеличение разрядности смысла не имеет, поэтому длинная арифметика не годится от слова совсем.
Последний раз я решал уравнение Пуассона, когда рассчитывал трехмерное гравитационное поле внутри Земли с учетом распределения плотности вещества и формы эллипсоида вращения. Но я немного упростил задачу, свел ее к уравнению Лапласа и получил классное решение при разбиении планеты на кольца сечением 1000 х1000 метров. Этих колец (здесь бы рисунок хорошо вставить) получилось несколько миллионов. В итоге рассчитал распределение гравитационного потенциала и напряженности поля в любой точке объема планеты. На поверхности Земли на уровне океана получилось хорошее соответствие измеряемым величинам ускорения силы тяжести на любой широте, а также известным формулам Гельмерта, Киссиниса. Так что мы тоже чего-то можем!
Я не сталкивался с матрицами Гилберта, но проблема плохой обусловленности у меня возникла при решении задач расчета электрических полей методом интегральных уравнений или методом коллокаций. Там, при значительном смещении фиктивных зарядов внутрь металлических электродов, соседние уравнения имеют весьма близкие коэффициенты и при решении больших СЛАУ с переменными обычной разрядности бывают очень большие ошибки. Приходится жертвовать 2-3 минуты для одноразового точного решения используя переменные с повышенной разрядностью.
Кроме того, я слышал, но не уверен, что проблема плохо обусловленных матриц возникает при решении систем уравнений прогибов в трехмерных прочностных расчетах теории сопротивления материалов.
Основное применение переменных повышенной разрядности у меня в решении дифференциальных уравнений движения тел при взаимном воздействии гравитации. Численное решение любой задачи трех тел с ними вообще не проблема. А вот решение задачи шести тел, а тем более 12 тел без них не получается совсем.
Если задача того стоит, надо ее максимально упростить и решать на суперкомпьютере, а на нашем железе даже начинать не стоит. Как говорил один герой известного фильма: "Бери ношу по себе, чтоб не падать при ходьбе".
Когда-то давным-давно в начале 70-х мне приходилось решать уравнения Пуассона на матрице 1000*1000 при оперативной памяти допотопной ЭВМ Одра-1204 всего 11 К, однако все получалось, диплом защитил на отлично! Кто Вам запрещает использовать дисковую память, периодически поочередно читая и записывая после обработки фрагменты матрицы, которые тянет оперативка? Можно очень эффективно ускорять решение, распараллеливая процесс по ядрам, кроме того, итерационные методы ускоряются подбором оптимального коэффициента верхней релаксации, если, конечно процесс сходящийся.
Для решения уникальных по сложности задач разрабатываются специальные методы с учетом имеющихся возможностей. Иногда, для получения максимальной заданной точности результата можно пожертвовать временем. А вот длинная арифметика годится только лишь очень коротеньких сверх точных расчетов или для проверки точности новых алгоритмов, когда есть такая необходимость.
Жаль, что такую интересную разработку не замечают!
Для решения СЛАУ в несколько тысяч уравнений с плохо обусловленной матрицей, а также для прецизионного численного решения дифференциальных уравнений движения или уравнений прогибов и других задач, где требуется высочайшая точность вычислений и работа с переменными очень больших астрономических или очень маленьких внутриатомных значений, я разработал и с успехом применяю собственную действительную переменную BigDouble. Ее особенность в том, что разрядность можно самому задавать любую, например, 20, 25, 30 или 36 десятичных знаков, требования к экспоненте без реальных ограничений.
Для примера, решение СЛАУ с 1000 уравнений дает максимальную невязку среди всех найденных решений. при заданной разрядности 28 не более 1.7 10 -23, а для 2000 уравнений менее 5.0*10-23. Существенный недостаток - большое время расчетов. Например, 1000 уравнений считается порядка 3-х минут, зато простота применения и высокая точность решения любых уравнений с плохо и даже очень плохо обусловленной матрицей коэффициентов гарантируется.