Практикум №9:

Задание 1

(дополнительный блок)

import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt

# Определение пределов переменновй величины
# В данном случае переменной величиной явялется расстояние
initial_pos = 384400000
Earth_Radius = 6400000
r = np.arange(0, initial_pos - Earth_Radius, 500)

# Создание дифференциальной функции изменяемой величины
def asteroid_vel(v, r):
    dvdr = G * M / (v * (initial_pos + Earth_Radius - r)**2)
    return dvdr

# Определение начальных условий и параметров
v_0 = 1
M = 5.94 * 10**24
G = 6.67 * 10**(-11)
# Решение поставленной задачи
solve_ast_vel = odeint(asteroid_vel, v_0, r)

# Построение решения в виде графика функции
plt.plot(initial_pos-r, solve_ast_vel[:,0], label='Скорость')

plt.xlabel('Расстояние до Земли, м')
plt.ylabel('Скорость астероида, м/с')
plt.title('Кривая армагедонна')
plt.xlim(initial_pos, -Earth_Radius)
plt.plot([Earth_Radius, Earth_Radius], [v_0, 11000], label='Земля')
plt.legend()
plt.grid()

plt.show()

Спасибо за понимание!

lab 9 dop task 1

By Alexey Baigashov

lab 9 dop task 1

  • 64