var FI=1.61803398874989448482; var PI=Math.PI; var E=Math.E; var sqrt2=Math.SQRT2; var LogE=Math.LOG10E; var log2E=Math.LOG2E; var log2=Math.LN2; function abs(x) { return Math.abs(x); } function acos(x) { return 180.0*Math.acos(x)/Math.PI; } function asin(x) { return 180.0*Math.asin(x)/Math.PI; } function atan(x) { if(x>=0) return Math.atan(x)*180.0/Math.PI; else return (Math.PI-Math.atan(x))*180.0/Math.PI; } function atanh(x) { return Math.atanh(x); } function atan2(y,x) { return Math.atan2(y,x)*180.0/Math.PI; } function ceil(x) { return Math.ceil(x); } function cos(x) { return Math.cos(x*Math.PI/180.0); } function exp(x) { return Math.exp(x); } function floor(x) { return Math.floor(x); } function hypot(x,y) { return Math.hypot(x,y); } function log(x) { return Math.log(x); } function Log(x) { return Math.log10(x); } function pow(x,y) { return Math.pow(x,y); } function random() { return Math.random(); } function round(x) { return Math.round(x); } function sin(x) { return Math.sin(x*Math.PI/180.0); } function sqrt(x) { return Math.sqrt(x); } function tan(x) { return Math.tan(x*Math.PI/180.0); } function cot(x) { return 1.0/Math.tan(x*Math.PI/180.0); } function sec(x) { return 1.0/Math.cos(x*Math.PI/180.0); } function cosec(x) { return 1.0/Math.sin(x*Math.PI/180.0); } function sinh(x) { return Math.sinh(x); } function cosh(x) { return Math.cosh(x); } function tanh(x) { return Math.tanh(x); } function coth(x) { return 1.0/Math.tanh(x); } function sech(x) { return 2.0/(exp(x)+exp(-x)); } function cosech(x) { return 2.0/(exp(x)-exp(-x)); } function Mat3x3Mul(a,b){ var c=new Array(9); c[0]=a[0]*b[0]+a[1]*b[3]+a[2]*b[6];c[1]=a[0]*b[1]+a[1]*b[4]+a[2]*b[7];c[2]=a[0]*b[2]+a[1]*b[5]+a[2]*b[8]; c[3]=a[3]*b[0]+a[4]*b[3]+a[5]*b[6];c[4]=a[3]*b[1]+a[4]*b[4]+a[5]*b[7];c[5]=a[3]*b[2]+a[4]*b[5]+a[5]*b[8]; c[6]=a[6]*b[0]+a[7]*b[3]+a[8]*b[6];c[7]=a[6]*b[1]+a[7]*b[4]+a[8]*b[7];c[8]=a[6]*b[2]+a[7]*b[5]+a[8]*b[8]; return c; } function Det3x3AuVal(a){ var A=new Array(3); A[0]=-a[0]-a[4]-a[8];A[1]=a[0]*a[8]+a[4]*a[8]+a[0]*a[4]-a[2]*a[6]-a[1]*a[3]-a[5]*a[7]; A[2]=-a[0]*a[4]*a[8]-a[2]*a[3]*a[7]-a[1]*a[5]*a[6]+a[2]*a[4]*a[6]+a[1]*a[3]*a[8]+a[0]*a[5]*a[7]; return A; } function Mat4x4Mul(a,b){ var c=new Array(16); c[0]=a[0]*b[0]+a[1]*b[4]+a[2]*b[8]+a[3]*b[12]; c[1]=a[0]*b[1]+a[1]*b[5]+a[2]*b[9]+a[3]*b[13]; c[2]=a[0]*b[2]+a[1]*b[6]+a[2]*b[10]+a[3]*b[14]; c[3]=a[0]*b[3]+a[1]*b[7]+a[2]*b[11]+a[3]*b[15]; c[4]=a[4]*b[0]+a[5]*b[4]+a[6]*b[8]+a[7]*b[12]; c[5]=a[4]*b[1]+a[5]*b[5]+a[6]*b[9]+a[7]*b[13]; c[6]=a[4]*b[2]+a[5]*b[6]+a[6]*b[10]+a[7]*b[14]; c[7]=a[4]*b[3]+a[5]*b[7]+a[6]*b[11]+a[7]*b[15]; c[8]=a[8]*b[0]+a[9]*b[4]+a[10]*b[8]+a[11]*b[12]; c[9]=a[8]*b[1]+a[9]*b[5]+a[10]*b[9]+a[11]*b[13]; c[10]=a[8]*b[2]+a[9]*b[6]+a[10]*b[10]+a[11]*b[14]; c[11]=a[8]*b[3]+a[9]*b[7]+a[10]*b[11]+a[11]*b[15]; c[12]=a[12]*b[0]+a[13]*b[4]+a[14]*b[8]+a[15]*b[12]; c[13]=a[12]*b[1]+a[13]*b[5]+a[14]*b[9]+a[15]*b[13]; c[14]=a[12]*b[2]+a[13]*b[6]+a[14]*b[10]+a[15]*b[14]; c[15]=a[12]*b[3]+a[13]*b[7]+a[14]*b[11]+a[15]*b[15]; var tot=c[0]+c[1]+c[2]+c[3];var f0=new Array(c[0]/tot,c[1]/tot,c[2]/tot,c[3]/tot); tot=c[4]+c[5]+c[6]+c[7];var f1=new Array(c[4]/tot,c[5]/tot,c[6]/tot,c[7]/tot); tot=c[8]+c[9]+c[10]+c[11];var f2=new Array(c[8]/tot,c[9]/tot,c[10]/tot,c[11]/tot); tot=c[12]+c[13]+c[14]+c[15];var f3=new Array(c[12]/tot,c[13]/tot,c[14]/tot,c[15]/tot); c=c.concat(f0,f1,f2,f3); return c; } function calcolaTri(n){ if(n<1)return(0); if(n==1){var I=new Array(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);b=Mat4x4Mul(I,mat);} else if(n==2){ b=Mat4x4Mul(mat,mat);} else{b=mat;for(var i=0;i=0)string[i]="+"+Equ[i].toString();else string[i]=Equ[i].toString(); string="x^4-6*x^3+9*x^2-4*x=0"; //string="x^3"+string[0]+"*x^2"+string[1]+"*x"+string[2]; // var M=new Array(Math.sqrt(au[0]),Math.sqrt(au[1]),Math.sqrt(au[2]));var tot=M[0]+M[1]+M[2]; // M[0]=M[0]/tot;M[1]=M[1]/tot;M[2]=M[2]/tot; alert( " Tn= "+b[0]+" Tn + "+b[1]+" TnR + "+b[2]+" Tm + "+b[3]+" Ta"+ "\n TnR= "+b[4]+" Tn + "+b[5]+" TnR+ " +b[6]+" Tm + " +b[7]+" Ta" + "\n Tm= "+b[8]+" Tn + "+b[9]+" TnR + " +b[10]+" Tm+ " +b[11]+" Ta" + "\n Ta= "+b[12]+" Tn + "+b[13]+" TnR + " +b[14]+" Tm + " +b[15]+" Ta" + "\nFreqTn: "+nDecimali(b[16],10)+", "+nDecimali(b[17],10)+", "+nDecimali(b[18],10)+", "+nDecimali(b[19],10)+ "\nFreqTnR: "+nDecimali(b[20],10)+", "+nDecimali(b[21],10)+", "+nDecimali(b[22],10)+", "+nDecimali(b[23],10)+ "\nFreqTm: "+nDecimali(b[24],10)+", "+nDecimali(b[25],10)+", "+nDecimali(b[26],10)+", "+nDecimali(b[27],10)+ "\nFreqTa: "+nDecimali(b[28],10)+", "+nDecimali(b[29],10)+", "+nDecimali(b[30],10)+", "+nDecimali(b[31],9)+ "\nMatrice caratteristica: 1 1 1 1\n 1 1 1 1\n 1 0 2 1\n 1 0 1 1"+ "\nEquazione caratteristica : "+string+ "\nAutovalori: X1="+nDecimali(au[0],10)+"; X2="+nDecimali(au[1],10)+"; X3="+au[2]+"; X4="+au[3]+ "\nk = 1/sqrt(X1) = "+nDecimali(1.0/Math.sqrt(au[0]),10)+" ; "+n+"° Sostituzione\n" ); } function nDecimali(num,n){ var nu=num.toString();var m=0; for(var i=0;i(nu.length-m-1))) var string=""; for(var i=0;i<(n-(nu.length-m-1));i++)string=string+"0"; return (nu+string); }