アットウィキロゴ

poweer

package matrix;
 
 
public class pro {
 
    double[][] a=new double[4][4];
     double[][] ax=new double[4][4];
    double[] b=new double[4];
   double[] bs=new double[4];
   int s,sx;
     double[][] c=new double[3][3];
    double z;
 
 
    public static void main(String[] args) {
        pro test=new pro();
    }
 
  pro(){  
 
 
 
      a[1][1]=1;
      a[1][2]=0.5;
      a[1][3]=0.3;
 
       a[2][1]=0.5;
      a[2][2]=1;
      a[2][3]=0.6;
 
      a[3][1]=0.3;
      a[3][2]=0.6;
      a[3][3]=1;
 
 
 b[1]=1;
 b[2]=0;
 b[3]=0;
 
 int mode;
 
 mode=0;
 
 while(mode<10){
 
      seekb();
 
      double e;
      e=0;
for(s=1;s<4;s++){
    e=e+ (bs[s]-b[s])*(bs[s]-b[s]);
     }
if(e<0.01)mode=100;
 
      for(s=1;s<4;s++){
      b[s]=bs[s];
      }
 
      mode=mode+1;
 
 }
 
 
 System.out.println(z);    
 
 for(s=1;s<4;s++){
 for(sx=1;sx<4;sx++){
 ax[s][sx]=a[s][sx]-z*b[s]*b[sx];
 }
 }
 
 
 b[1]=1;
 b[2]=0;
 b[3]=0;
 
 
 mode=0;
 
 while(mode<10){
 
      seekbx();
 
      double e;
      e=0;
for(s=1;s<4;s++){
    e=e+ (bs[s]-b[s])*(bs[s]-b[s]);
     }
if(e<0.01)mode=100;
 
      for(s=1;s<4;s++){
      b[s]=bs[s];
      }
 
      mode=mode+1;
 
 }
 
 
 System.out.println(z);    
 
 
 for(s=1;s<4;s++){
 for(sx=1;sx<4;sx++){
 ax[s][sx]=ax[s][sx]-z*b[s]*b[sx];
 }
 }
 
 
 
 mode=0;
 
 while(mode<10){
 
      seekbx();
 
      double e;
      e=0;
for(s=1;s<4;s++){
    e=e+ (bs[s]-b[s])*(bs[s]-b[s]);
     }
if(e<0.01)mode=100;
 
      for(s=1;s<4;s++){
      b[s]=bs[s];
      }
 
      mode=mode+1;
 
 }
 
 
 System.out.println(z);    
 
 
 
  }
 
  void seekbx(){
int s,sx;
double b1;
 
    for(s=1;s<4;s++){
    b1=0;
    for(sx=1;sx<4;sx++){
    b1=b1+ax[s][sx]*b[sx];
    }
    bs[s]=b1;
    }
 
    double e;
   z=0;
     for(s=1;s<4;s++){
     z=z+bs[s]*bs[s];
     }
z=Math.sqrt(z);
 
 
 for(s=1;s<4;s++){
     bs[s]=bs[s]/z;
     }
 
 
 
}
 
 
 
void seekb(){
int s,sx;
double b1;
 
    for(s=1;s<4;s++){
    b1=0;
    for(sx=1;sx<4;sx++){
    b1=b1+a[s][sx]*b[sx];
    }
    bs[s]=b1;
    }
 
    double e;
   z=0;
     for(s=1;s<4;s++){
     z=z+bs[s]*bs[s];
     }
z=Math.sqrt(z);
 
 
 for(s=1;s<4;s++){
     bs[s]=bs[s]/z;
     }
 
 
 
}
 
 
 
}
 
最終更新:2014年01月10日 21:24