# -*- coding: utf-8 -*- """ Created on Thu Jan 08 15:31:02 2015 Listing 10.1 : Formation de la matrice de Householder @author: grivet """ import numpy as np from scipy.linalg import norm N = 5 x = np.array([1.0,-2.0,3.0,1.0,-1.0]) E5 = np.eye(5,5) e0 = np.zeros(N) e0[0] = 1.0 v = np.sign(x[0])*norm(x)*e0 + x v /= norm(v) P = E5 -2*np.outer(v,v) print ('vecteur x: ', x) print ('norme de x: ',norm(x)) print ('matrice P: ') print (P) print ('produit P.x: ') print (np.dot(P,x))