Реши трехмерную задачу построения траектории при помощи системы дифференциальных уравнений на python. Нужно поставить график полученной траектории. Используй систему внешней баллистики
python
import numpy as np
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt
Cd = 0.5 # Коэффициент лобового сопротивления
A = 0.01**2 # Площадь сечения цилиндра
rho = 1.225 # Плотность воздуха
m = 0.145 # Масса объекта
g = 9.81 # Ускорение свободного падения
# Функция, возвращающая производные координат и скоростей объекта
def f(t, y):
vx,vy,vz,x,y,z = y
dx_dt = vx
dy_dt = vy
dz_dt = vz
dvx_dt = (-0.5 * Cd * A * rho * vx**2) / m
dvy_dt = (-0.5 * Cd * A * rho * vy**2) / m
dvz_dt = (-0.5 * Cd * A * rho * vz**2) / m - g
return [dvx_dt, dvy_dt, dvz_dt, dx_dt, dy_dt, dz_dt]
# Начальные условия: t=0, x=y=z=0, vx=vy=10, vz=20
y0 = [10,10,20,0,0,0]
# Диапазон времени для решения системы уравнений (от 0 до 10 секунд с шагом 0.01 секунды)
t_span = (0, 10)
# Решение системы уравнений
sol = solve_ivp(f, t_span, y0, rtol=1e-6, atol=1e-8)
# Построение 3D графика траектории
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot(sol.y[3], sol.y[4], sol.y[5], label='Trajectory')
ax.legend()
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
Код выше описывает движение объекта во времени, начиная с начальных условий, и решение системы дифференциальных уравнений при помощи функции solve_ivp(). Затем мы получаем результаты решения в объекте sol и строим 3D график траектории.
Таким образом, используя систему дифференциальных уравнений и модуль scipy.integrate в python, мы можем смоделировать траекторию объекта в трехмерном пространстве при заданных начальных условиях и внешних факторах воздействия. Полученная визуализация позволяет наглядно представить поведение объекта и его траекторию, что может быть полезным при проектировании и тестировании различных систем.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет