<jupyter_start><jupyter_text>Пример использования numpy / matplotlib Моделирование падения тела с учетом сопротивления воздуха<jupyter_code>import pylab as plt
from numpy import *
import matplotlib.pyplot as plt

t = linspace(0,17,num=300)

m = 100  # масса в кг
k1 = 0
k2 = 0
g = 9.81 # ускорение свободного падения м/с^2

h0 = 10000 # начальная высота м
v0 = 0 # начальная скорость м/с
a0 = 0 # начальное ускорение м/с^2

N = 100 # количество шагов

t = []
a = []
v = []
h = []

v.append(v0)
a.append(a0)
h.append(h0)
t.append(0)
for i in range(N):
    t.append(t[-1] + i)
    a.append(((k1*v[-1] + k2*v[-1]**2)/m) - g)
    v.append(v0 + v[-1] + a[-1] * t[-1])
    h.append(h0 + h[-1] + v[-1] * t[-1])
plt.plot(t,a,label='a')
plt.plot(t,v, label='v')
plt.plot(t,h, label='h')
pylab.legend(loc='upper right')<jupyter_output><empty_output><jupyter_text>Моделирование бросания тела под углом к горизонту<jupyter_code>x = []
y = []

h = 0
d = 0

vx = 100
vy = 100

g = 9.81
while h >= 0:
    x.append(d)
    y.append(h)
    d = d + vx
    h = h + vy
    vy = vy - g
plt.plot(x,y)

import math

x = []
y = []

h = 0
d = 0

angle = math.pi / 4
force = 100

vx = force * math.cos(angle) 
vy = force * math.sin(angle)

g = 9.81
while h >= 0:
    x.append(d)
    y.append(h)
    d = d + vx
    h = h + vy
    vy = vy - g
plt.plot((0,2500), (0,0),'r')
plt.plot((0,0), (0,700),'r')
plt.grid()

plt.plot(x,y)

import math

x = []
y = []

h = 0
d = 0

angle = math.pi / 3
force = 100

vx = force * math.cos(angle) 
vy = force * math.sin(angle)

g = 9.81
while h >= 0:
    x.append(d)
    y.append(h)
    d = d + vx
    h = h + vy
    vy = vy - g
plt.plot((0,2500), (0,0),'r')
plt.plot((0,0), (0,700),'r')
plt.grid()

plt.plot(x,y)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.19210977701543738, 'fraction_numerical': 0.061177815894797025, 'mean_word_length': 2.8461538461538463, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 12, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '239337', 'license': 'Unlicense', 'n_tokens_mistral': 923, 'n_tokens_neox': 878, 'n_words': 203, 'path': 'visualisation_matplotlib/07_freefall.ipynb', 'repo_name': 'boykoatwork/jupyter', 'size': '1749'}