ce que dit Louis est correct, mais je voudrais aussi répondre sous un autre angle : conception.
Il est aussi bon en terme de conception d'identifier les invariants ; c'est un peu le sens de votre question (si cette matrice, cette séquences d'opérations, etc., est toujours la même, pourquoi ne pas éviter de la recalculer). Identifier les invariants et les montrer comme tels est toujours une bonne chose. Pour cela il faut « tracer » de quoi ils dépendent (et ce qu'ils influencent) et ne faire en effet leur recalcul que quand cela est strictement nécessaire.
Pour de telles conceptions, il est donc bon de faire le graphe des
dépendances entre les variables/concepts du programme (p.ex. si theta
change alors ça, ça et ça doivent changer).
Par exemple dans votre « flot de calcul », une fois qu'on est dans une base donnée, il n'y a plus de changement à faire (la matrice de passage est alors invariante, c'est l'identité) ; l'«invariant» à identifier dans ce cas est peut être la notion de « base » elle-même : et ne lancer le calcul de la matrice QUE lorsque l'on change de base (au lieu de la recalculer à chaque fois que l'on demande un vecteur ; p.ex. si j'ai bien compris votre exemple). A la limite dans un exemple aussi simple, la « base » est elle-même représentée par la matrice de passage ; à ne recalculer QUE quand elle change (pour garder le même esprit).