import numpy as np
import matplotlib.pyplot as plt
# Модуль и аргумент z
r_z = np.sqrt(22/7)
theta_z = np.pi/12
# Модуль и аргументы w_k
r_w = (22/7)**(1/6)
thetas_w = [np.pi/36, 25*np.pi/36, 49*np.pi/36]
# Создание фигуры
fig, ax = plt.subplots(figsize=(8, 8))
# Окружность для z (пунктирная)
circle_z = plt.Circle((0, 0), r_z, fill=False, linestyle='--', color='blue', alpha=0.5, label='Окружность |z|')
ax.add_artist(circle_z)
# Окружность для w_k (сплошная)
circle_w = plt.Circle((0, 0), r_w, fill=False, color='red', alpha=0.5, label='Окружность |w_k|')
ax.add_artist(circle_w)
# Точка z
x_z = r_z * np.cos(theta_z)
y_z = r_z * np.sin(theta_z)
ax.scatter(x_z, y_z, color='blue', s=100, marker='^', label=f'$z$ (угол $\\pi/12$)', zorder=5)
# Точки w_k
colors_w = ['red', 'green', 'purple']
labels_w = ['$w_0$', '$w_1$', '$w_2$']
for i, theta in enumerate(thetas_w):
x_w = r_w * np.cos(theta)
y_w = r_w * np.sin(theta)
ax.scatter(x_w, y_w, color=colors_w[i], s=100, marker='o', label=labels_w[i], zorder=5)
# Линии от центра к точкам
ax.plot([0, x_w], [0, y_w], color=colors_w[i], alpha=0.7, linestyle='-', linewidth=1)
# Оси
ax.axhline(y=0, color='k', linestyle='-', alpha=0.3)
ax.axvline(x=0, color='k', linestyle='-', alpha=0.3)
ax.set_xlabel('Re')
ax.set_ylabel('Im')
ax.set_title('Комплексное число $z$ и его кубические корни $w_k$')
# Настройки отображения
ax.set_aspect('equal', 'box')
ax.set_xlim([-2, 2])
ax.set_ylim([-2, 2])
ax.grid(True, linestyle='--', alpha=0.5)
ax.legend(loc='upper right')
plt.show()
aW1wb3J0IG51bXB5IGFzIG5wCmltcG9ydCBtYXRwbG90bGliLnB5cGxvdCBhcyBwbHQKCiMg0JzQvtC00YPQu9GMINC4INCw0YDQs9GD0LzQtdC90YIgegpyX3ogPSBucC5zcXJ0KDIyLzcpCnRoZXRhX3ogPSBucC5waS8xMgoKIyDQnNC+0LTRg9C70Ywg0Lgg0LDRgNCz0YPQvNC10L3RgtGLIHdfawpyX3cgPSAoMjIvNykqKigxLzYpCnRoZXRhc193ID0gW25wLnBpLzM2LCAyNSpucC5waS8zNiwgNDkqbnAucGkvMzZdCgojINCh0L7Qt9C00LDQvdC40LUg0YTQuNCz0YPRgNGLCmZpZywgYXggPSBwbHQuc3VicGxvdHMoZmlnc2l6ZT0oOCwgOCkpCgojINCe0LrRgNGD0LbQvdC+0YHRgtGMINC00LvRjyB6ICjQv9GD0L3QutGC0LjRgNC90LDRjykKY2lyY2xlX3ogPSBwbHQuQ2lyY2xlKCgwLCAwKSwgcl96LCBmaWxsPUZhbHNlLCBsaW5lc3R5bGU9Jy0tJywgY29sb3I9J2JsdWUnLCBhbHBoYT0wLjUsIGxhYmVsPSfQntC60YDRg9C20L3QvtGB0YLRjCB8enwnKQpheC5hZGRfYXJ0aXN0KGNpcmNsZV96KQoKIyDQntC60YDRg9C20L3QvtGB0YLRjCDQtNC70Y8gd19rICjRgdC/0LvQvtGI0L3QsNGPKQpjaXJjbGVfdyA9IHBsdC5DaXJjbGUoKDAsIDApLCByX3csIGZpbGw9RmFsc2UsIGNvbG9yPSdyZWQnLCBhbHBoYT0wLjUsIGxhYmVsPSfQntC60YDRg9C20L3QvtGB0YLRjCB8d19rfCcpCmF4LmFkZF9hcnRpc3QoY2lyY2xlX3cpCgojINCi0L7Rh9C60LAgegp4X3ogPSByX3ogKiBucC5jb3ModGhldGFfeikKeV96ID0gcl96ICogbnAuc2luKHRoZXRhX3opCmF4LnNjYXR0ZXIoeF96LCB5X3osIGNvbG9yPSdibHVlJywgcz0xMDAsIG1hcmtlcj0nXicsIGxhYmVsPWYnJHokICjRg9Cz0L7QuyAkXFxwaS8xMiQpJywgem9yZGVyPTUpCgojINCi0L7Rh9C60Lggd19rCmNvbG9yc193ID0gWydyZWQnLCAnZ3JlZW4nLCAncHVycGxlJ10KbGFiZWxzX3cgPSBbJyR3XzAkJywgJyR3XzEkJywgJyR3XzIkJ10KZm9yIGksIHRoZXRhIGluIGVudW1lcmF0ZSh0aGV0YXNfdyk6CiAgICB4X3cgPSByX3cgKiBucC5jb3ModGhldGEpCiAgICB5X3cgPSByX3cgKiBucC5zaW4odGhldGEpCiAgICBheC5zY2F0dGVyKHhfdywgeV93LCBjb2xvcj1jb2xvcnNfd1tpXSwgcz0xMDAsIG1hcmtlcj0nbycsIGxhYmVsPWxhYmVsc193W2ldLCB6b3JkZXI9NSkKICAgIAogICAgIyDQm9C40L3QuNC4INC+0YIg0YbQtdC90YLRgNCwINC6INGC0L7Rh9C60LDQvAogICAgYXgucGxvdChbMCwgeF93XSwgWzAsIHlfd10sIGNvbG9yPWNvbG9yc193W2ldLCBhbHBoYT0wLjcsIGxpbmVzdHlsZT0nLScsIGxpbmV3aWR0aD0xKQoKIyDQntGB0LgKYXguYXhobGluZSh5PTAsIGNvbG9yPSdrJywgbGluZXN0eWxlPSctJywgYWxwaGE9MC4zKQpheC5heHZsaW5lKHg9MCwgY29sb3I9J2snLCBsaW5lc3R5bGU9Jy0nLCBhbHBoYT0wLjMpCmF4LnNldF94bGFiZWwoJ1JlJykKYXguc2V0X3lsYWJlbCgnSW0nKQpheC5zZXRfdGl0bGUoJ9Ca0L7QvNC/0LvQtdC60YHQvdC+0LUg0YfQuNGB0LvQviAkeiQg0Lgg0LXQs9C+INC60YPQsdC40YfQtdGB0LrQuNC1INC60L7RgNC90LggJHdfayQnKQoKIyDQndCw0YHRgtGA0L7QudC60Lgg0L7RgtC+0LHRgNCw0LbQtdC90LjRjwpheC5zZXRfYXNwZWN0KCdlcXVhbCcsICdib3gnKQpheC5zZXRfeGxpbShbLTIsIDJdKQpheC5zZXRfeWxpbShbLTIsIDJdKQpheC5ncmlkKFRydWUsIGxpbmVzdHlsZT0nLS0nLCBhbHBoYT0wLjUpCmF4LmxlZ2VuZChsb2M9J3VwcGVyIHJpZ2h0JykKCnBsdC5zaG93KCk=