Sous-sections

6.6 Optimisation

Matlab est un langage matricielle!

il faut donc utiliser en priorité les notations matricielles

Exemple: calcul de la matrice de Vandermond $A$


\begin{displaymath}
A^{t}=\left[\begin{array}{ccccc}
1 & t_{1} & t_{2} & .. & t_...
...\
1 & t_{1}^{m} & t_{2}^{m} & .. & t_{n}^{m}\end{array}\right]\end{displaymath}

6.6.1 1ere version


\begin{lstlisting}
t=[0:1:200]; n=100;
cpu0=cputime();
m=size(t,1);
for i=1:m
for j=1:n+1
A(i,j)=t(i)^(j-1);
end
end
cputime()-cpu0
\end{lstlisting}

qui s'exécute en 4,87 sec

6.6.2 version matricielle

Alors que la version matricielle


\begin{lstlisting}
cpu0=cputime();
m=size(t,1);
A=zeros(m,n+1);
for i=1:n
A(:,i+1)=A(:,i).*t;
end
cputime()-cpu0
\end{lstlisting}

s'exécute en 0,06 s, soit 80 fois plus rapidement




Pr. Marc BUFFAT
marc.buffat@univ-lyon1.fr
2007-02-08