#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Sep 24 16:22:44 2024

@author: sam
"""

import numpy as np
from scipy import linalg as la



def invpeig(A):
    vk = np.random.rand(len(A),1)
    u = A@vk
    μk = 0
    μj = 1

    while abs(μk-μj) > 1e-4:
        u = la.inv(A)@vk
        
        μj = μk
        
        μk = la.norm(u,np.inf)
        
        vk = u/μk
    lam = 1/la.norm(u,np.inf)
    vec = vk
    return lam,vec



print('lam =',invpeig(np.random.rand(5,5))[0],'\nvec =\n',invpeig(np.random.rand(5,5))[1])