Multiplicar matrices n*n

Iniciado por Vampersy, 10 Octubre 2008, 07:49 AM

0 Miembros y 1 Visitante están viendo este tema.

Vampersy

Hola gente:
Saludos a todos antes que nada..¡

Bueno estoy tratando de hacer un pequeño script php para multiplicar matrices, pero hasta ahorita no me ha salido.
Si algunos de ustedes puede proporcionarme alguno, le agradezco de antemano, ya que he buscado por la web y solo he encontrado para otros lenguajes diferentes al php.

Ok espero puedan aportar alguna idea, mientras seguiré intentando dar con el clavo.. ;D

alone-in-the-chat

 :)

Publica lo que tu ya hayas hecho para darle una revisada , y echarte una mano.

Saludos¡¡
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

[ Alberto]

primero tienes que verificar que las dos se puedan multiplicar luego podría ser  ir recorriendo columna de una matriz y multiplicar por la fila de la otra no recuerdo como era que se multiplicaban  :-[ mañana le hecho cabeza es un ejercicio bueno
Debemos de hacer todas las cosas sencillas, excepto las cosas sencillas


Vampersy

Caballeros gracias por sus aportes.
Este es mi avance, pero ya estoy que me explota la cabeza y nada que sale.
Aqui pego el avance para que me puedan ayudar.

Se supone que la matriz la define el usuario y se debe automaticamente calcular la matriz resultante o el resultado:


el error me lo marca en la linea 160.
Espero sus aportaciones que ahorita ya ando enbolado por darle tanta vuelta al error  :o :rolleyes:

http://rapidshare.com/files/153492401/matriz.php.html



alone-in-the-chat

Como no vi si lo que deseas multiplicar son matrices algebraicas ni explicaste muy bien como hacerlo modifique tu ejemplo para que trabaje bien , tal y como esta planteado .

:)

Claro debes mejorar algunas cosas pero espero que ya lo tengas mas claro


matriz.php
Código (php-brief) [Seleccionar]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="matriz.php">
  <div align="center">
    <table width="287" border="3">
      <tr>
        <td colspan="2"><div align="center">
          <h5><strong>Teclea Las dimenciones de la matriz 1</strong></h5>
        </div></td>
      </tr>
      <tr>
        <td width="123">Teclea las filas</td>
        <td width="144"><div align="center">
            <input name="txtf1" type="text" id="txtf1" />
        </div></td>
      </tr>
      <tr>
        <td>Teclea las columnas</td>
        <td><input name="txtc1" type="text" id="txtc1" /></td>
      </tr>
      <tr>
        <td colspan="2"><div align="center"></div></td>
      </tr>
    </table>
    <table width="287" border="3">
      <tr>
        <td colspan="2"><div align="center">
          <h5>Teclea Las dimenciones de la matriz 2 </h5>
        </div></td>
      </tr>
      <tr>
        <td width="123">Teclea las filas</td>
        <td width="144"><div align="center">
            <input name="txtf2" type="text" id="txtf2" />
        </div></td>
      </tr>
      <tr>
        <td>Teclea las columnas</td>
        <td><input name="txtc2" type="text" id="txtc2" /></td>
      </tr>
      <tr>
        <td colspan="2"><div align="center"></div></td>
      </tr>
    </table>
    <p>
      <input type="submit" name="Submit2" value="Dibujar" />
      <label>
      <input type="submit" name="Submit" value="Calcular" />
      </label><label></label>
      <label></label></p>
    </div>
   <p>
     <label></label>
     <label></label>
     <label></label>
   </p>
   <p align="center">
<?php

if (
$_POST["txtf1"] != "" && $_POST["txtc1"] != "" && $_POST["txtf2"] != "" && $_POST["txtc2"] != "" && isset($_POST['calcular']) == false)
{
$f1=$_POST["txtf1"];
$c1=$_POST["txtc1"];
$f2=$_POST["txtf2"];
$c2=$_POST["txtc2"];

if ($c1==$f2)
{
echo "Matriz 1";

echo "<table border=3 cellspacing=1>";
$j 1;
for ($fila=1;$fila<=$f1;$fila++)
{
$i 1;
echo "<tr>";
for ($col=1;$col<=$c1;$col++)
{
echo "<td>";
echo "<label>";
echo "<input type='text' name='txt1[$j][$i]' />";
echo "</label>";
echo "</td>";
$i++;
}
echo "</tr>";
$j++;
}
echo "</table>";


echo "<br>";

//Dibujo de la 2da matriz 

echo "Matriz 2";
echo "<table border=3 cellspacing=1>";
$j 1;
for ($fila=1;$fila<=$f2;$fila++)
{
$i 1;
echo "<tr>";
for ($col=1;$col<=$c2;$col++)
{
echo "<td>";
echo "<label>";
echo "<input type='text' name='txt2[$j][$i]' />";
echo "</label>";
echo "</td>";
$i++;
}
echo "</tr>";
$j++;
}
echo "</table>";
echo "<input type = 'hidden' name = 'calcular' value = '1'/>";
}else{
echo "Las Matrices no son Multiplicables";
}
}
?>

   </p>
</form>
<?php


if ($_POST[txt1] != "" && $_POST[txt2] != "" && isset($_POST['calcular']))
{
$txt1 $_POST['txt1'];
$txt2 $_POST['txt2'];

$A $txt1;
$B $txt2;
$C = array();

//print_r($A);print_r($B);

if(count($A)==count($B))
{
$n=count($A);
for($i=1;$i<=$n;$i++)
{
for($j=1;$j<=$n;$j++)
{
$C[$i][$j] = 0;
//echo ($A[$i][$j]*$B[$i][$j]);
for($k=1;$k<=$n;$k++)
{
$C[$i][$j] += $A[$i][$k]*$B[$k][$j];
echo $C[$i][$j]."<br />";
}
}// for anidado
}// primer for
}// if para determinar si son iguales las matrices
}elseif(isset($_POST['calcular'])){
echo "INTRODUCE TODOS LOS ELEMENTOS DE LA MATRIZ";
}
?>

</body>
</html>



Saludos¡¡
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

Vampersy

Caballeros, este ejercicio sencillo pero a la vez complicado, ( para lgunos, me incluyo), me provoco dolores de cabeza y canas de mil colores jeje  ;D.

Si alguien necesita lo mismo por aqui paso el code:

resuelve matrices n * n.  Aclaro que no es perfecto y evidentemente se puede optimizar mucho maaaaas...

http://rapidshare.com/files/154052586/matricesPHP.rar.html

Bueno saludos y gracias por sus aportaciones  ::)

NOTA: son 3 archivos, y  el uno llama al segundo y el segundo al tercero.