Как найти положения масс nnn в механике Ньютона?

Я столкнулся с проблемой во время исследования. Проблема может быть описана как: рассмотреть оригинал н -проблема с телом, и если мы зафиксируем их положение (неизвестных), никакого взаимодействия между ними, они вообще никогда не двигаются. Я хочу узнать их позицию. Теперь ставлю контрольную точку с небольшой массой где-то (известно мне) в системе. Я могу измерить силу, которую он получает, я могу написать одно уравнение:

Дж "=" 1 , . . . , н г м 0 м Дж р 0 Дж | | р 0 Дж | | 3 "=" Ф 0 ,
где г постоянная, м 0 , м Дж известны мне, р 0 Дж "=" Икс Дж Икс 0 вектор расстояния. Ф 0 можно измерить. Икс 0 - положение контрольной точки, а Икс Дж это местонахождение Дж т час объект.

если я передвину контрольную точку 0 во многих других местах я могу получить много уравнений (столько, сколько я хочу). Мой вопрос: как я могу решить положения тел Икс Дж из этих уравнений? Мне достаточно численного решения, я в основном использую язык программирования python, какие-либо предложения о том, как решить эту систему нелинейных уравнений?

Возможно, вас заинтересуют библиотеки NumPy и SciPy. Также рассмотрите возможность моделирования систем с n телами по методу Монте-Карло.
Это перекрестно опубликовано на math.stackexchange.com/q/631560 . Я думаю, что это лучше в математике, чем здесь.
Если вы возьмете градиент силы (потенциала) как функцию положения и сделаете из него контурный график, вы сможете определить положение неподвижных тел.
В зависимости от значения н , вам, вероятно, придется отказаться от интерпретируемых языков и потратить время на изучение C или Fortran.
@RossMillikan, извините, я здесь совсем новенький, не знал, куда написать. Моя проблема связана с физикой, но она требует методов решения нелинейных уравнений. Мне удалить пост здесь?
@fibonatic да, вы правы, но для этого требуется много запусков программы, я хотел бы найти позиции в соответствии с предложенной мной моделью и добиться этого с наименьшим количеством запусков программы. Спасибо
@KyleKanos, да, если проблема слишком дорогая, я напишу функции на C. Спасибо
Будет ли sccomp.stackexchange.com лучшим местом для ответа на этот вопрос?
Я на самом деле думаю, что этот вопрос лучше всего подходит здесь, хотя, конечно, ответы здесь будут сосредоточены на физике (то есть, сколько точек нужно и как их выбрать), а не на деталях численного расчета. (Если вопрос должен был быть о числах, то да, он должен быть отправлен в вычислительную науку .) Несмотря на это, его не следует публиковать ни здесь, ни в математике. johnniac, я думаю, это ваш выбор, но вам, вероятно, следует удалить один или другой.
Что еще известно о системе? Например, существует ли априорная «ограничивающая рамка» для массовых позиций? Что можно сказать о распределении масс м Дж ? Я подозреваю, что будет значительная разница в поиске между случаями почти одинаковых масс и случаем, когда некоторые из масс отличаются на порядки от остальных.
@user23660 user23660, Да, ограничивающая рамка есть. Я пытаюсь найти расположение точек стационарной массы, предполагая одинаковую величину. Я могу использовать контрольную точку столько раз, сколько захочу. Есть предложения по проблеме? Или какие-нибудь похожие?
@johnniac: Я думаю, что для этой проблемы должно существовать что-то вроде «обратного» метода быстрого мультиполя. (Для ознакомления с FMM см. ссылки на fastmultipole.org/Main/Tutorials )

Ответы (1)

Я могу придумать метод, хотя для этого может потребоваться вычислить Ф 0 для очень большого количества контрольных точек. Он основан на законе гравитации Гаусса.

1 м 0 С Ф д С "=" 4 π г М С
где С представляет собой замкнутую поверхность и М С это полная масса, содержащаяся внутри него.

Таким образом, идея заключалась бы в том, чтобы использовать какую-то числовую схему для вычисления общей массы, содержащейся внутри некоторых кубов, исследовать пространство и определять области, где есть масса, а где нет ничего. Предлагаю начать с больших кубиков и искать тот, в котором содержится вся масса Дж м Дж . После того, как вы разграничите его, разделите размер на два, это разделит ваш куб на восемь меньших кубов, посмотрите, в которых у вас есть масса, и повторяйте, пока не получите изолированные массы, соответствующие вашему м Дж . Этот алгоритм заканчивается, но может занять довольно много времени...

Спасибо за ваш вклад, однако я могу измерить только силу, действующую на тестовую массу, объединенную от всех неизвестных масс. У меня нет контроля, чтобы отклонить подмножество масс.
@Джонниак. Используя формулу, которую я написал, вам не нужно уменьшать массу. Только масса внутри куба дает вклад в интеграл. Массы вне куба, в каком бы положении они ни находились, вклада не вносят! Попробуйте на примере!
@Джонниак. Более конкретно: перепишите формулу (1) как ( 1 / 4 π г м 0 ) С Ф д С "=" М С . Слева у вас скрыто что-то, что вы можете вычислить из значений Ф в точках поверхности куба. Правая часть представляет собой сумму масс, содержащихся внутри куба. Массы, находящиеся вне куба, вклада не вносят , поэтому их не нужно уменьшать, это делается по формуле.