\documentclass[10pt]{article}

\usepackage[left=1cm,right=1cm,top=2cm,bottom=2cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{comment}
\usepackage{verbatim}
\usepackage{graphicx}
\usepackage{hyperref}

\begin{document}

\title{Analyse factorielle universelle} 
\author{Jacques Bailhache (jacques.bailhache@gmail.com)}

\maketitle

\setlength{\parindent}{0pt}

\section{Présentation}

\includegraphics[width=12cm]{afu.jpg}

\section{Exemple}

Exemple tiré de \url{http://www.math.u-bordeaux.fr/~mchave100p/wordpress/wp-content/uploads/2013/10/ACP_L3.pdf} (copie locale : \url{http://log.chez.com/text/math/ACP_L3.pdf})

\bigskip

Programme J effectuant une ACP avec une AFU

\begin{verbatim}


transpose =: |:      NB. Transposition de matrices
matprod =: + / . *   NB. Produit de matrices
id =: (= / ~) @ i.   NB. Matrice identité

diag =: 3 : 0        NB. Matrice diagonale à partir d'un vecteur
 y * id #y
)

tmatprod =: 3 : 0
 (transpose y) matprod y
)
   
maptmatprod =: 3 : 0
 if. 0 = # y do. 0 0 0 $ 0
 else. (tmatprod {. y), maptmatprod }. y
 end.
)

mapprod =: 4 : 0
 if. 0 = # x do. 0 0 0 $ 0
 else. (({. x) matprod y) , (}. x) mapprod y
 end.
)

NB. Tableau de données
X =: 1 3 $ 90 140 6.0
X =: X ,   60  85 5.9
X =: X ,   75 135 6.1
X =: X ,   70 145 5.8 
X =: X ,   85 130 5.4
X =: X ,   70 145 5.0

n =: # X
p =: # 0 { X

M =: (+ / X) % #X                     NB. Moyenne des colonnes
Y =: X - (1 + 0 * i. #X) * / M        NB. Données centrées
E =: ((+ / Y ^ 2) % #Y) ^ 0.5         NB. Ecarts-types des colonnes
Z =: Y % (1 + 0 * i. #Y) * / E        NB. Données centrées-réduites

NB. Tableau tridimensionnel pour l'AFU
T =: ((1 + 0 * i. # 0 { Z) * / Z) * 0 2 1 |: (id # 0 { Z) * / (1 + 0 * i. #Z)

Z1 =: + / T   NB. Tableau bidimensionnel somme des couches

V =: maptmatprod T
W =: + / V
S =: Z1 matprod (%. W) matprod (transpose Z1) 
LU =: vpdefla S   NB. Valeurs et vecteurs propres de S
U =: transpose > 1 { LU
V =: (transpose Z1) matprod U
V =: V % (1 + 0 * i. #V) * / (+ / V ^ 2) ^ 0.5
C =: T mapprod V
F =: + / C
echo F   NB. Résultat

\end{verbatim}

\end{document}
