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é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 >>" onclick="genererSysteme()">
</p>2.Entrer le système<br>
<DIV ID="systeme">
</DIV>
<br>
3.
<input type="button" name="submit2" value="Calculer" onClick="effectuerCalcul()">
<div id="solution"> </div>
<br>
</FORM>
<script language="JavaScript">
genererSysteme()
</script>
