Get the minimum variance solution

def min_volatility(self):
        """Get the minimum variance solution"""
        if not self.w:
            self.solve()
        var = []
        for w in self.w:
            a = np.dot(np.dot(w.T, self.cov_matrix), w)
            var.append(a)
        # return min(var)**.5, self.w[var.index(min(var))]
        self.weights = self.w[var.index(min(var))].reshape((self.n_assets,))
        return dict(zip(self.tickers, self.weights))