ChronoMath, une chronologie des MATHÉMATIQUES
à l'usage des professeurs de mathématiques, des étudiants et des élèves des lycées & collèges

Listing JavaScript de la méthode du pivot  
     
commentaires : voir listing de la version Visual Basic pour Excel

<SCRIPT LANGUAGE=JavaScript>
var n, x=new Array(), a=new Array(10)
for (li=1;li<=10;li++) {a[li]=new Array(11)}

function pivot()
{
n=3;visu="";
n=eval(prompt("ordre du systeme :",n))
for(li=1;li<=n;li++)
{
for(co=1;co<=n+1;co++)
{
m=""
if (co< n+1) {m=prompt("a("+li+","+co+")= ",m)}
else
{m=prompt("b("+li+")= ",m)}
if (m==null) {return} else {a[li][co]=eval(m)}
}
}
visu=prompt("Voulez-vous visualiser la triangulation (o/n) ? ",visu)
if(visu==null){return}
if(visu=="o" || visu=="O"){visu=1} else {visu=0}

for(k=1 ; k<=n-1 ; k++)
{
v=a[k][k];if (v==0) {v=permu(k); if (v==0) {sing() ; return}
}
for(i=k+1 ; i<=n ; i++)
{
for(j=k+1 ; j<=n+1 ; j++)
{
a[i][j]=a[i][j]-a[i][k]*a[k][j]/v
}
for(i=k+1;i<=n;i++){a[i][k]=0} 
 // affichage matrice en cours de triangulation
if(visu==1) affiche_matr()
}
}
if (a[n][n]==0) {sing();return} else {x[n]=a[n][n+1]/a[n][n]}
for (i=n-1;i>=1;i--)
{
s=0;
for (j=i+1 ; j<=n ; j++)
{
s=s+a[i][j]*x[j]
x[i]=(a[i][n+1]-s)/a[i][i]
}
}
for(i=1;i<=n;i++) {alert("x("+i+")= "+x[i])}
}
//--- fin pivot

function permu(k)
{
q=0;li=k;
while (a[li][k]==0)
{
q++;li=q+k;
if (li==n+1) {return 0}
}
for(i=1;i<=n+1;i++){aux=a[k][i];a[k][i]=a[li][i];a[li][i]=aux}
return a[k][k]
}
//--- fin permu

function affiche_matr()
{
a$=""
for(i=1;i<=n;i++)
{
for(j=1;j<=n+1;j++)
{
a$=a$+a[i][j].toString()+" "
}
a$=a$+"\n"
}
alert(a$)
}
//--- fin affichage matrice

function sing()
{
alert("Pas de chance, ce systeme est singulier...")
}
//--- fin sing

</SCRIPT>

JavaScript sur ChronoMath :


© Serge Mehl - www.chronomath.com