Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.11.2022
Сообщений: 19

задача о телах

14.05.2024, 01:16. Показов 318. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветсвую, есть такая задача, о 2 телах, вот код котопый ее решает
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import matplotlib.pyplot as plt
from scipy import integrate
import numpy as np
 
def gravity_2(y, t, G, m1, m2):
    y1, y2, y3, y4, y5, y6, y7, y8 = y
    r3 = ((y1 - y3)**2 + (y2 - y4)**2)**(3/2)
    return [y5, y6, y7, y8, G*m2*(y3-y1)/r3, G*m2*(y4-y2)/r3, -G*m1*(y3-y1)/r3, -G*m1*(y4-y2)/r3]
 
t = np.arange(0, 5., 0.01)
y0 = [0., 0., 10., 0., 0., 3., 0., -2]
G = 1
m1 = 200
m2 = 300
 
sol = integrate.odeint(gravity_2, y0, t, args=(G, m1, m2))
plt.plot(y0[0], y0[1], '*r', y0[2], y0[3], '*g')
plt.plot(sol[:, 0], sol[:, 1])
plt.plot(sol[:, 2], sol[:, 3])
plt.title('G=1, m1=200., m2=300.')
plt.grid()
plt.show()
надо теперь изменить этот код, что бы добавилось 3 тело m3,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import matplotlib.pyplot as plt
from scipy.integrate import odeint
import numpy as np
 
def gravity_3(y, t, G, m1, m2, m3):
    # Распаковываем входной вектор
    y1, y2, y5, y6, y3, y4, y7, y8, y9, y10, y11, y12 = y
    # Вычисляем куб расстояний
    r13 = ((y1 - y3)**2 + (y2 - y4)**2)**(3/2)
    r12 = ((y1 - y9)**2 + (y2 - y10)**2)**(3/2)
    r23 = ((y3 - y9)**2 + (y4 - y10)**2)**(3/2)
    # Возвращаем производные для системы
    return [y5, y6, 
            G*m2*(y3-y1)/r13 + G*m3*(y9-y1)/r12, 
            G*m2*(y4-y2)/r13 + G*m3*(y10-y2)/r12, 
            y7, y8, 
            -G*m1*(y3-y1)/r13 + G*m3*(y9-y3)/r23, 
            -G*m1*(y4-y2)/r13 + G*m3*(y10-y4)/r23,
            y11, y12,
            -G*m1*(y9-y1)/r12 - G*m2*(y9-y3)/r23,
            -G*m1*(y10-y2)/r12 - G*m2*(y10-y4)/r23]
 
# Начальные условия для кругового движения
# Массы и гравитационная постоянная
G = 1
m1 = m2 = m3 = 1  # Массы тел
 
R = 1  # Расстояние от центра масс до каждого тела
v = np.sqrt(G * R)  # Скорость для кругового движения
 
# Начальные условия для тел
y0 = [R, 0., 0., v, -0.5*R, np.sqrt(3)/2*R, -v, 0., -0.5*R, -np.sqrt(3)/2*R, v, 0.]
 
 
# Массив времени
t = np.linspace(0, 10, 1000)  # Временной интервал
 
# Интегрируем ОДУ
sol = odeint(gravity_3, y0, t, args=(G, m1, m2, m3))
 
# Построение графиков
plt.plot(sol[:, 0], sol[:, 1], 'r', label='Траектория m1')
plt.plot(sol[:, 4], sol[:, 5], 'g', label='Траектория m2')
plt.plot(sol[:, 8], sol[:, 9], 'b', label='Траектория m3')
plt.title('Задача трех тел с круговым движением')
plt.legend()
plt.grid()
plt.axis('equal')
plt.show()
вот код, но тут не круговая траектория, а нужна круговая дляэтих 3 тел, как это можно исправить
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.05.2024, 01:16
Ответы с готовыми решениями:

Задача о двух телах
Необходимо графически продемонстрировать задачу о двух телах двигающихся под действием гравитации друг друга. Когда решал эту проблему...

Рэлеевское рассеяние в жидких и твердых телах
В Википедии написано, что из-за релеевского рассеивания опал рассеивает голубые лучи и пропускает желтые. Как голубое небо. ...

Олимпиадная задача по программированию. PascalABC.NET. Задача L. Переключение между окнами
Когда пользователь работает в операционной системе Winux, у него часто запущено несколько приложений. Каждое из приложений работает в...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2024, 01:16
Помогаю со студенческими работами здесь

Задача со строками. Задача находится на фотке, которая прикреплена к сообщению
Фотку прикрепил к сообщению. П.5.4. Правил Запрещено создавать темы с бессмысленными названиями вроде "Помогите!",...

Васильев C# Глава 8 задача 2 (Просьба объяснить формулировку(задача внутри)
Текст задачи Написать программу , в которой есть класс с полем, являющимся ссылкой на одномерный целочисленный массив. У класса есть...

Васильев C# Глава 7 задача 8 (Просьба объяснить формулировку(задача внутри)
Текст задачи Напишите программу с классом, у которого есть текстовое поле. Значение текстовому полю присваивается при создании объекта...

Задача при создание нового лида выводится задача от несущ.пользователя Б24
При создание нового Лида Выходит уведомление от пользователя которого нету в компаний. Как поменять пользователя???

Задача на k-тую цифру последовательности, задача на схему Горнера.
Ну, собственно опять прошу помощи... Задача 1: Определить k-тую цифру последовательности 1234567891011121314…, в которой выписаны подряд...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru