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
:)
Publica lo que tu ya hayas hecho para darle una revisada , y echarte una mano.
Saludos¡¡
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
Si. Te dejo algunos enlaces donde tambien salen códigos en PHP aunque no los he comprobado.
http://www.mathwarehouse.com/algebra/matrix/multiply-matrix.php
http://www.ingenieria.uady.mx/weblioteca/programacion/Prog07/MultiplicdeMatrices.htm
http://www.marcelovalenzuela.com/matrices/producto-de-matrices-comentarios.php
http://www.forosdelweb.com/f18/matrices-php-411416/
Añado:
http://dada.perl.it/shootout/matrix_allsrc.html
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
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
<!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í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¡¡
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.