<!-- Beginvar M=Array();var coM=Array();var n=0;var dim=30;var precis=0;var Q=Array();var P=Array();for(var i=1;i<=dim;i++){M[i]=Array();coM[i]=Array();P[i]=Array();};function reponse(form){for(var i=0;i<form.length;i++){if(form[i].checked){break}}var repondu=""if(i<form.length){repondu=form[i].value}return repondu;}function lecture(form){var auteur="Arnaud Saint-Martin de www.homeomath.com";var rep="";var typ=reponse(form.nomb);n=eval(form.n.value);for(var i=1;i<=n;i++){for(var j=1;j<=n;j++){if(isNaN(M[i][j])){rep=prompt("Entrez la valeur de a"+i+j+" = ","?");}else{rep=prompt("Modifier la valeur de a"+i+j+" = ",M[i][j]);};if(rep==null){break;}else{if(typ=="reel"){with(Math){M[i][j]=eval(rep);};}else{M[i][j]=rep;};};};if(rep==null){break;};};}function affichage(form){var donnee="";var typ=reponse(form.nomb);n=eval(form.n.value);donnee=editmat("<b>matrice A :</b>",M,n);var doc="<b>Composantes b<sub>i</sub> du vecteur B :</b><br>";for(var i=1;i<=n;i++){doc=doc+"b<sub>"+i+"</sub> = "+Q[i]+"<br>";};donnee=donnee+doc;soluce(donnee);}function caractere(form){var pxa="";var paux=Array();var typ=reponse(form.nomb);n=eval(form.n.value);if(typ=="rat"){for(var i=1;i<=n;i++){for(var j=1;j<=n;j++){if(i!=j){P[i][j]=M[i][j];}else{paux[0]=M[i][j];paux[1]="-1";P[i][j]=ecritpol(paux);};};};pxa=determinepx(P,n);document.formulaire.px.value=pxa;};}function produitpolynome(P1,P2){var ptab1=Array();var ptab2=Array();var ptab3=Array();var P3="";ptab1=polysuite(P1);ptab2=polysuite(P2);ptab3=prodsuit(ptab1,ptab2);P3=ecritpol(ptab3);return P3;}function sommepolynome(P1,P2){var ptab1=Array();var ptab2=Array();var ptab3=Array();var P3="";ptab1=polysuite(P1);ptab2=polysuite(P2);ptab3=somsuit(ptab1,ptab2);P3=ecritpol(ptab3);return P3;}function determinepx(A,k){var d="0";var coef1="";var ajout="";if(k==1){d=A[1][1];};if(k>1){coef1="-1";for(var col=1;col<=k;col++){coM=comatrice(A,k,1,col);coef1=produitpolynome(coef1,"-1");ajout=produitpolynome(""+A[1][col],""+determinepx(coM,k-1));ajout=produitpolynome(ajout,coef1);d=sommepolynome(d,ajout);};};return d;}function determine(form){var det="";var typ=reponse(form.nomb);n=eval(form.n.value);if(typ=="reel"){det=determinant(M,n);}else{det=determinex(M,n);};document.formulaire.det.value=det;}function determinant(A,k){var d=0;var coef1=0;var ajout=0;if(k==1){d=eval(A[1][1]);};if(k>1){coef1=-1;for(var col=1;col<=k;col++){coM=comatrice(A,k,1,col);coef1=eval(-coef1);ajout=eval(eval(A[1][col])*determinant(coM,k-1));ajout=eval(ajout*coef1);d=eval(d+"+"+ajout);};};return d;}function determinex(A,k){var d="";var coef1="";var ajout="";if(k==1){d=A[1][1];};if(k>1){coef1="-1";for(var col=1;col<=k;col++){coM=comatrice(A,k,1,col);coef1=produit(coef1,"-1");ajout=produit(A[1][col],determinex(coM,k-1));ajout=produit(ajout,coef1);d=somme(d,ajout);};};return d;}function soluce(txtsoluce){var largeur=500;var hauteur=250;var txte="<html><head><title>Homeomath : Fenêtre de résultats</title></head><body background=\"images/theme.gif\"></p>"+txtsoluce+"</p></body></html>";var wsoluce=open("","remarque","menubar=no,toolbar=no,scrollbars=yes,status=no,resizable=yes,width="+largeur+",height="+hauteur);wsoluce.document.open();wsoluce.document.write(txte);wsoluce.document.close();}function comatrice(A,k,lig,col){var B=Array();var l=1;var c=1;var nc=1;var nl=1;for(var i=1;i<k;i++){B[i]=Array();};while(nc<k){if(c!=col){while(nl<k){if(l!=lig){B[nl][nc]=A[l][c];l++;nl++;}else{l++;};};}else{c++;l=1;nl=1;while(nl<k){if(l!=lig){B[nl][nc]=A[l][c];l++;nl++;}else{l++;};};};c++;nl=1;l=1;nc++;};return B;}function inversion(A,n,precis){var detA=determinant(A,n);var IM=Array();var F=Array();var texte="Matrice inverse : A<sup>-1</sup> = <br>";var coef1=-1;var haut=0;for(var i=1;i<=n;i++){IM[i]=Array();F[i]=Array();};if(detA!=0){for(var i=1;i<=n;i++){for(var j=1;j<=n;j++){F=comatrice(A,n,i,j);IM[i][j]=determinant(F,n-1);coef1=eval(-coef1);IM[i][j]=eval(coef1*eval(IM[i][j]));IM[i][j]=eval(eval(IM[i][j])/detA);IM[i][j]=arrondi(eval(IM[i][j]),precis);};};IM=transpose(IM,n);return IM;}else{alert("Pas d'inverse pour cette matrice, puisque son déterminant est nul !");};}function inversionex(A,n){var detA=determinex(A,n);var IM=Array();var F=Array();var texte="Matrice inverse : A<sup>-1</sup> = <br>";var coef1="-1";var haut=0;for(var i=1;i<=n;i++){IM[i]=Array();F[i]=Array();};if(detA!="0"){for(var i=1;i<=n;i++){for(var j=1;j<=n;j++){F=comatrice(A,n,i,j);IM[i][j]=determinex(F,n-1);coef1=produit("-1",coef1);IM[i][j]=produit(coef1,IM[i][j]);IM[i][j]=division(IM[i][j],detA);};};IM=transpose(IM,n);return IM;}else{alert("Pas d'inverse pour cette matrice, puisque son déterminant est nul !");};}function inverse(form){var doc="";var IM=Array();var AP=Array();var detM=0;var typ=reponse(form.nomb);if(typ=="reel"){detM=determinant(M,n);n=eval(form.n.value);puis=eval(form.exposant.value);for(var i=1;i<=n;i++){IM[i]=Array();AP[i]=Array();};precis=eval(form.precis.value);precis=eval(-precis);precis=Math.pow(10,precis);for(var i=1;i<=n;i++){for(var j=1;j<=n;j++){if(i==j){AP[i][j]=1;}else{AP[i][j]=0;};};};if(puis<0){IM=inversion(M,n,precis);if(detM!=0){for(var m=1;m<=eval(-puis);m++){AP=prodmat(AP,IM,n);};};};else{for(var m=1;m<=puis;m++){AP=prodmat(AP,M,n);};};for(var i=1;i<=n;i++){for(var j=1;j<=n;j++){AP[i][j]=arrondi(AP[i][j],precis);};};doc=editmat("A<sup>"+puis+"</sup> = ",AP,n);if((detM!=0)||(puis>=0)){soluce(doc);};}else{detM=determinex(M,n);n=eval(form.n.value);puis=eval(form.exposant.value);for(var i=1;i<=n;i++){IM[i]=Array();AP[i]=Array();};for(var i=1;i<=n;i++){for(var j=1;j<=n;j++){if(i==j){AP[i][j]="1";}else{AP[i][j]="0";};};};if(puis<0){IM=inversionex(M,n);if(detM!="0"){for(var m=1;m<=eval(-puis);m++){AP=prodmatex(AP,IM,n);};};};else{for(var m=1;m<=puis;m++){AP=prodmatex(AP,M,n);};};doc=editmat("A<sup>"+puis+"</sup> = ",AP,n);if((detM!="0")||(puis>=0)){soluce(doc);};};;}function lireb(form){var auteur="Arnaud Saint-Martin de www.homeomath.com";var rep="";n=eval(form.n.value);for(var i=1;i<=n;i++){if(isNaN(Q[i])){rep=prompt("Entrez la valeur de b"+i+" = ","?");}else{rep=prompt("Modifier la valeur de b"+i+" = ",Q[i]);};if(rep==null){break;}else{Q[i]=rep;};};}function resoudre(form){var X=Array();var Y=Array();var typ=reponse(form.nomb);var doc="Solution du système :<br>";var detM=0;precis=eval(form.precis.value);precis=eval(-precis);precis=Math.pow(10,precis);n=eval(form.n.value);if(typ=="reel"){detM=determinant(M,n);}else{detM=determinex(M,n);};if((detM!=0)||(detM!="0")){for(var i=1;i<=n;i++){Y[i]=Array();};for(var j=1;j<=n;j++){Y=remplace(j);if(typ=="reel"){X[j]=determinant(Y,n);X[j]=eval(X[j]/detM);}else{X[j]=determinex(Y,n);X[j]=division(X[j],detM);};doc=doc+"x<sub>"+j+"</sub> = ";if(typ=="reel"){doc=doc+arrondi(X[j],precis)+"<br>";}else{doc=doc+X[j]+"<br>";};};}else{doc="Il y a une infinité de solutions ou bien aucune solution puisque le déterminant est nul !";};soluce(doc);}function remplace(col){var R=Array();for(var i=1;i<=n;i++){R[i]=Array();};for(var i=1;i<=n;i++){for(var j=1;j<=n;j++){if(j==col){R[i][j]=Q[i];}else{R[i][j]=M[i][j];};};};return R;}function prodmat(A,D,k){var P=Array();for(var i=1;i<=k;i++){P[i]=Array();};for(var i=1;i<=k;i++){for(var j=1;j<=k;j++){P[i][j]=0;for(var l=1;l<=k;l++){P[i][j]=eval(eval(P[i][j])+"+"+eval(eval(A[i][l])*eval(D[l][j])));};};};return P;}function prodmatex(A,D,k){var P=Array();for(var i=1;i<=k;i++){P[i]=Array();};for(var i=1;i<=k;i++){for(var j=1;j<=k;j++){P[i][j]="0";for(var l=1;l<=k;l++){P[i][j]=somme(P[i][j],produit(A[i][l],D[l][j]));};};};return P;}function ap(form){var AP=Array();var texte="";n=eval(form.n.value);puis=eval(form.exposant.value);for(var i=1;i<=n;i++){AP[i]=Array();};texte=texte+"A<sup>"+puis+"</sup>&nbsp;=&nbsp;"+editmat(AP,n);}function editmat(titre,M,n){var haut=eval(n*25);var texte="";texte=texte+titre+"<br><table width=\"5%\" border=\"0\" cellspacing=\"4\">";for(var i=1;i<=n;i++){texte=texte+"<tr>";for(var j=1;j<=n;j++){if((i==1)&&(j==1)){texte=texte+"<td rowspan=\""+n+"\" width=\"21\"><img border=\"0\" src=\"images/mata6.gif\" width=\"16\" height=\""+haut+"\"></td>";};texte=texte+"<td width=\"5%\" nowrap><div align=\"center\">"+M[i][j]+"</div></td>";if((i==1)&&(j==n)){texte=texte+"<td rowspan=\""+n+"\" width=\"21\"><img border=\"0\" src=\"images/mata3.gif\" width=\"16\" height=\""+haut+"\"></td>";};};texte=texte+"</tr>";};texte=texte+"</table>";return texte;}function transpose(M,n){TM=Array();for(var i=1;i<=n;i++){TM[i]=Array();};for(var i=1;i<=n;i++){for(var j=1;j<=n;j++){TM[i][j]=M[j][i];};};return TM;}function pgcd(a,b){var p=0;var reste=b%a;var quot=eval(eval(b-reste)/a);var divis=eval(a);var divid=eval(b);var produit=eval(a*b);while(reste!=0){divid=eval(divis);divis=eval(reste);reste=divid%divis;quot=eval(eval(divid-reste)/divis);};p=divis;return p;}function arrondi(x,choix){var retour=eval(x*choix);var tronc=Math.round(retour);tronc=eval(tronc/choix);return tronc;}function numerateur(chaine){var ch=chaine.toString();var pos=ch.indexOf("/");var num="";if(pos!=-1){num=eval(ch.substring(0,pos));}else{num=ch.replace(".","");};return num;}function denominateur(chaine){var ch=chaine.toString();var pos=ch.indexOf("/");var long=ch.length;var den="";if(pos!=-1){den=ch.substring(pos+1,long);}else{pos=ch.indexOf(".");if(pos!=-1){den=Math.pow(10,eval(long-pos-1));}else{den=1;};};return den;}function reduction(chaine){var nume=numerateur(chaine);var deno=denominateur(chaine);var reduc="";var pg=0;if((nume!=0)&&(deno!=0)){pg=Math.abs(pgcd(nume,deno));nume=Math.round(nume/pg);deno=Math.round(deno/pg);if(deno<0){deno=Math.abs(deno);nume=eval(-nume);};if(deno==1){reduc=nume;}else{reduc=nume+"/"+deno;};};if(deno==0){reduc="Erreur !";};if((nume==0)&&(deno!=0)){reduc="0";};return reduc;}function somme(fraca,fracb){var numa=numerateur(fraca);var numb=numerateur(fracb);var dena=denominateur(fraca);var denb=denominateur(fracb);var fracs="";var nums=eval(numa*denb+numb*dena);var dens=eval(dena*denb);if(dens<0){dens=Math.abs(dens);nums=eval(-nums);};fracs=nums+"/"+dens;fracs=reduction(fracs);return fracs;}function produit(fraca,fracb){var numa=numerateur(fraca);var numb=numerateur(fracb);var dena=denominateur(fraca);var denb=denominateur(fracb);var fracp="";var nump=eval(numa*numb);var denp=eval(dena*denb);if(denp<0){denp=Math.abs(denp);nump=eval(-nump);};fracp=nump+"/"+denp;fracp=reduction(fracp);return fracp;}function moins(fraca,fracb){var numa=numerateur(fraca);var numb=numerateur(fracb);var dena=denominateur(fraca);var denb=denominateur(fracb);var fracm="";var nums=eval(numa*denb-numb*dena);var dens=eval(dena*denb);if(dens<0){dens=Math.abs(dens);nums=eval(-nums);};fracs=nums+"/"+dens;fracs=reduction(fracs);return fracs;}function division(fraca,fracb){var numa=numerateur(fraca);var numb=numerateur(fracb);var dena=denominateur(fraca);var denb=denominateur(fracb);var fracp="";var nump=eval(numa*denb);var denp=eval(dena*numb);if(denp<0){denp=Math.abs(denp);nump=eval(-nump);};fracp=nump+"/"+denp;fracp=reduction(fracp);return fracp;}function decimal(den){var de=den;var deci=true;var div2=eval(de%2==0);var div5=eval(de%5==0);while(div2){de=Math.round(de/2);div2=eval(de%2==0);};while(div5){de=Math.round(de/5);div5=eval(de%5==0);};if(de!=1){deci=false;};return deci;}function polysuite(POL){var POL1=POL;var POL2=Array();var MON=Array();var degpol=0;var POL1=POL.replace(/-/g,"+-");MON=POL1.split("+");for(var i=0;i<MON.length;i++){POL2[deg(MON[i])]=coef(MON[i]);};degpol=eval(POL2.length-1);;for(var i=0;i<=degpol;i++){if((POL2[i]=="")||(POL2[i]==null)){POL2[i]="0";};};return POL2;}function deg(mon){var degre=0;var pos=mon.indexOf("^");var long=mon.length;if(pos==-1){pos=mon.indexOf("x");if(pos==-1){degre=0;}else{degre=1;};}else{degre=eval(mon.substring(pos+1,long));};return degre;}function coef(mon){var coefficient="";var mon1="";var pos=0;pos=mon.indexOf("x");if(pos!=-1){mon1=mon.substring(0,pos);}else{mon1=mon;};if(mon1==""){coefficient="1";};if(mon1=="-"){coefficient="-1";};if((mon1!="")&&(mon1!="-")){coefficient=mon1;};return coefficient;}function somsuit(pola,polb){var da=eval(pola.length-1);var db=eval(polb.length-1);var pols=Array();if(da<db){for(var i=0;i<=da;i++){pols[i]=somme(""+pola[i]+"",""+polb[i]+"");};for(var i=eval(da+1);i<=db;i++){pols[i]=polb[i];};pols.length=eval(db+"+"+1);}else{for(var i=0;i<=db;i++){pols[i]=somme(""+pola[i]+"",""+polb[i]+"");};for(var i=eval(db+1);i<=da;i++){pols[i]=pola[i];};pols.length=eval(da+"+"+1);};return pols;}function diffsuit(pola,polb){var da=eval(pola.length-1);var db=eval(polb.length-1);var pols=Array();if(da<db){for(var i=0;i<=da;i++){pols[i]=somme(""+pola[i]+"",produit("-1",""+polb[i]+""));};for(var i=eval(da+1);i<=db;i++){pols[i]=produit("-1",""+polb[i]+"");};pols.length=eval(db+"+"+1);}else{for(var i=0;i<=db;i++){pols[i]=somme(""+pola[i]+"",produit("-1",""+polb[i]+""));};for(var i=eval(db+1);i<=da;i++){pols[i]=pola[i];};pols.length=eval(da+"+"+1);};return pols;}function prodsuit(pola,polb){var da=eval(pola.length-1);var db=eval(polb.length-1);var ds=eval(da+"+"+db);var aux="";var pols=Array();for(var i=0;i<=ds;i++){pols[i]="0";};for(var i=0;i<=ds;i++){for(var j=0;j<=i;j++){if((j>da)||(eval(i-j)>db)){aux="0";}else{aux=produit(pola[j],polb[i-j]);};if(aux!=null){pols[i]=somme(pols[i],aux);};};};return pols;}function ecritpol(pol){var dp=eval(pol.length-1);var polich="";polich=""+pol[0];for(var i=1;i<=dp;i++){if(pol[i]!=0){if(i!=1){polich=pol[i]+"x^"+i+"+"+polich;}else{polich=pol[i]+"x+"+polich;};};};polich=polich.replace(/\+-/g,"-");polich=polich.replace(/\+1x/g,"+x");polich=polich.replace(/\-1x/g,"-x");polich=polich.replace("x^0","");return polich;}
