<jupyter_start><jupyter_text>Задача 1: Минимизация среднеквадратичного отклоненияДан набор точек $y_1, \ldots, y_m\in\mathbb{R}^n$, нужно минимизировать$$\frac{1}{2}\sum_{i=1}^m\|x-y_i\|^2.$$Эта игрушечная задача с теоретичеким решением$$x^*=\frac{1}{m}\sum_{i=1}^my_i$$<jupyter_code>import numpy as np
def ADMM(Y, iters = 100):
    """
    Вычисляет миинимум sum(||x-y_i||^2) методом ADMM с использованием консенсусной декомпозиции
    
    Args:
        Y: ndarray(m, n) 
    
    Returns:
        [z_0, ..., z_iters] -- последовательность вспомогательных переменных z
    """
passpass
import matplotlib.pyplot as plt
m = 50
n = 10
Y = np.random.rand(m, n)

vectors = ADMM(Y)
#print(vectors)
#print(np.mean(Y, axis=0))
fig, ax = plt.subplots(1, 1, figsize=(10, 10))
ax.plot([i for i in range(len(vectors))], [np.linalg.norm(z - np.mean(Y, axis=0)) for z in vectors])
ax.set_yscale('log')
plt.close(fig)
fig<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.16844349680170576, 'fraction_numerical': 0.026652452025586353, 'mean_word_length': 4.523529411764706, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, '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': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '5756', 'license': 'MIT', 'n_tokens_mistral': 434, 'n_tokens_neox': 442, 'n_words': 82, 'path': 'optimization_course/practice/09_decompositions.ipynb', 'repo_name': 'ivanoleinik/interactive-visualization', 'size': '938'}