Page 1 sur 1

Multiplication de deux matrices

Posté : 13 mars 2013, 15:40
par Sardinoux
Bonjour,

Dans le cadre d'un cours j'essaie de faire une multiplication de deux matrices, donc de deux tableaux mais avec les règles qui sont propres au produit matriciel

(1er ligne du 1er tableau * 1er colonne deuxième tableau, etc...).

J'ai donc ecrit une fonction qui est sensée le faire et qui bien-sur ne marche pas:
function Multiplication($tab1, $tab2, $nbLignes1, $nbLignes2, $nbColonnes1, $nbColonnes2) {
    $tabRes[][]= array(0, 0); //initialisation du tableau resultat
    for ($i = 0; $i < $nbLignes1; $i++) {
        echo '<tr>';
        for ($j = 0; $j < $nbColonnes2; $j++) {
            for ($k = 0; $k < $nbColonnes1; $k++) {
                $tabRes[$i][$j] = $tabRes[$i][$j] +($tab1[$i][$k] * $tab2[$k][$j]);
                echo "<td>{$tabRes[$i][$j]}</td>";
            }
        }
    }
}
Donc si quelqu'un ici pouvait me donner une piste pour me débloquer cela m'aiderai.

P.S.: Je ne sais pas si je peux écrire un tableau comme ça $tab[$i][$j] ou $i est la ligne et $j la colonne.

Re: Multiplication de deux matrices

Posté : 13 mars 2013, 16:05
par xTG
$tabRes[][]= array(0, 0); //initialisation du tableau resultat
Cela n'initialise pas ce que tu veux.
Là tu créés :
$tabRes[0][0] = array( 0=> 0, 1 => 0);
// équivalent à
$tabRes[0][0][0] = 0;
$tabRes[0][0][1] = 0;
L'initialisation doit se faire dans la seconde boucle.
function Multiplication($tab1, $tab2, $nbLignes1, $nbLignes2, $nbColonnes1, $nbColonnes2) {
    $tabRes = array();
    echo '<table>';
    for ($i = 0; $i < $nbLignes1; $i++) {
        $tabRes[$i] = array();
        echo '<tr>';
        for ($j = 0; $j < $nbColonnes2; $j++) {
            $tabRes[$i][$j] = 0;
            for ($k = 0; $k < $nbColonnes1; $k++) {
                $tabRes[$i][$j] += $tab1[$i][$k] * $tab2[$k][$j];
                echo '<td>' . $tabRes[$i][$j] . '</td>';
            }
        }
        echo '</tr>';
    }
    echo '</table>';
}
Et sinon le calcul est bon, c'est juste l'affichage qui lui montre les différents calculs et non la matrice finale.

Re: Multiplication de deux matrices

Posté : 13 mars 2013, 16:31
par Sardinoux
D'accord et merci pour la déclaration, j'aurais jamais trouvé.

L'astuce d'utiliser le += c'est vraiment malin aussi!

Merci beaucoup :D