Système d'équations linéaires

Système d'équations linéaires

Messagede quentinmontana le Jeu 3 Juil 2008 23:08

Ce script très fort résoud automatiquement les systèmes de Cramer, entrez les coefficients des équations, le script vous donnera les réponses ou vous dira si le système est incompatible

Le code :


Entre <HEAD> et </HEAD> :

Code: Tout sélectionner
<script language="JavaScript">
var lettresVariables = "xyzacdefghijklmnopqrstuvwxyz"

function systeme2(T)// FONCTIONNE BIEN
{
if(T.length != 2 || T[0].length != 3){return(0)}
var deter = T[0][0]*T[1][1]-T[0][1]*T[1][0];
if(!deter){return(0)}
Tsol = new Array(2);
if(!T[0][0]&&!T[1][1]){Tsol[0] = -T[1][2]/T[1][0];Tsol[1]=-T[0][2]/T[0][1];return(Tsol)}
if(!T[1][0]&&!T[0][1]){Tsol[0] = -T[0][2]/T[0][0];Tsol[1]=-T[1][2]/T[1][1];return(Tsol)}

Tsol[0] = (T[0][1]*T[1][2]-T[0][2]*T[1][1])/deter
if(T[0][1])
{
Tsol[1] = - (T[0][0]*Tsol[0]+T[0][2])/T[0][1];
}
else
{
Tsol[1] = - (T[0][1]*Tsol[0]+T[1][2])/T[1][1];
}
return(Tsol)
}

function SEL(Te)
{
var nbInconnues = Te.length;
if(nbInconnues +1 != Te[0].length){alert("mauvais format de tableau");return(0);}
if(nbInconnues!=2)
  {
  var T3d = new Array(nbInconnues - 1);
  T3d[0] = Te;
  var equaIsol = new Array();
  var N;var nbIC;
  for(i=1;i<nbInconnues-1;i++)
   {
   // Nombre d'inconnues tableau présent
   nbIC = nbInconnues - i;
   // Création du tableau inférieur
   T3d[i] = new Array(nbIC);
   for(j=0;j<nbIC;j++){T3d[i][j] = new Array(nbIC+1)}
   // Sélection de la ligne où isoler la variable
   for(j=0;j<nbIC+1&&equaIsol[i-1] == undefined;j++)
    {
    if(T3d[i-1][j][T3d[i-1][j].length-2]){equaIsol[i-1] = j}
    }
   // Création du système inférieur
   N = 0;
   for(j=0;j<T3d[i-1].length;j++)
    {
    if(j!=equaIsol[i-1])
     {
     for(k=0;k<nbIC;k++)
      {
      T3d[i][N][k] = -T3d[i-1][equaIsol[i-1]][nbIC]*T3d[i-1][j][k] + T3d[i-1][equaIsol[i-1]][k]*T3d[i-1][j][nbIC]
      }
     T3d[i][N][nbIC] = T3d[i-1][equaIsol[i-1]][nbIC+1]*T3d[i-1][j][nbIC] - T3d[i-1][equaIsol[i-1]][nbIC]*T3d[i-1][j][nbIC+1]
     N++;
     }
    }
   }
  Tsol = systeme2(T3d[T3d.length-1]) 
  // Déduction des solutions
  for(i=T3d.length-2;i>=0;i--)
   {
   N = Tsol.length;
   Tsol[N] = 0;
   Tsol[N] = -T3d[i][equaIsol[i]][T3d[i][equaIsol[i]].length-1]/T3d[i][equaIsol[i]][T3d[i][equaIsol[i]].length-2];
   for(j=0;j<T3d[i][0].length-2;j++)
    {
    Tsol[N] += -T3d[i][equaIsol[i]][j]*Tsol[j]/T3d[i][equaIsol[i]][T3d[i][equaIsol[i]].length-2]
    }
   }
  }
  else
  {
  Tsol = systeme2(Te)
  }
return(Tsol)
}

var nbInconnues = 2;
function genererSysteme()
{
nbInconnues = document.selForm.nbInconnues.selectedIndex+2;
var sortie = "";

for(i=0;i<nbInconnues;i++)
{
sortie += '<input type="text" name="s'+i+'x'+0+'" size="5" value=0>' + lettresVariables.charAt(0);
for(j=1;j<nbInconnues;j++)
{
sortie += ' + <input type="text" name="s'+i+'x'+j+'" size="5" value=0>'+ lettresVariables.charAt(j)
}
sortie += ' = <input type="text" name="s'+i+'x'+nbInconnues+'" size="5" value=0><br>'
}
document.getElementById('systeme').innerHTML = sortie
}

function effectuerCalcul()
{
var Tsys = new Array(nbInconnues)
for(i=0;i<nbInconnues;i++)
{
Tsys[i] = new Array(nbInconnues+1)
for(j=0;j<nbInconnues;j++)
  {
  Tsys[i][j] = eval('document.selForm.s'+i+'x'+j+'.value*1')
  }
Tsys[i][nbInconnues] = eval('document.selForm.s'+i+'x'+nbInconnues+'.value*-1')
}
var solution = SEL(Tsys)
if(solution)
{
var compteRendu = "";
for(i=0;i<solution.length;i++)
{
compteRendu += lettresVariables.charAt(i) + " = " + solution[i] + "<br>";
}
document.getElementById('solution').innerHTML =compteRendu
}
else
{
document.getElementById('solution').innerHTML = "Système impossible à résoudre, il peut y avoir 0 ou une infinité de solutions"
}
}
</script>

Entre <BODY> et </BODY> :

Code: Tout sélectionner
<SPAN style="font-size:20">Système d'équations linéaires</SPAN>
<FORM name="selForm">
  <p>1. S&eacute;lectionner le nombre d'inconnues <br>
    <script language="JavaScript">
var ecrire = "<select name=nbInconnues>"
for(i=2;i<=26;i++)
{
ecrire += "<option>"+i+"</option>"
}
document.write(ecrire+"</select>")
</script>
    <input type="button" name="submit" value="Suite &gt;&gt;" onclick="genererSysteme()">
  </p>2.Entrer le système<br>
  <DIV ID="systeme">
    &nbsp;</DIV>
  <br>
  3.
  <input type="button" name="submit2" value="Calculer" onClick="effectuerCalcul()">

  <div id="solution">&nbsp;</div>
  <br>
</FORM>

<script language="JavaScript">
genererSysteme()
</script>
quentinmontana
 
Messages: 32
Inscription: Mar 17 Juin 2008 16:16


Retourner vers Languages du web

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron