Guest User

Untitled

a guest
Mar 6th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.67 KB | None | 0 0
  1. double [] getCalc(double t, int K, int I){
  2.         double hx2=Math.pow(hx, 2);
  3.         this.ht=t/K;
  4.         this.hx=l/I;
  5.         this.I=I;
  6.         double a_=a2*(theta-1)*ht;
  7.         double b_=2*(1-theta)*a2*ht+(theta-1)*ht*hx2*b;
  8.         double c_=a_+b_;
  9.  
  10.  
  11.         double a__=a2*theta*ht;
  12.         double b__=hx2-2*a2*theta*ht+theta*ht*hx2*b;
  13.         double [] F = new double [I-1];
  14.         double [] U = null;
  15.         for (int k=0; k<K; k++)
  16.         {
  17.             if (k==0)
  18.                 for (int i=0; i<I-1; i++)
  19.                 F[i]=a__*this.getPsi(i*hx)+b__*this.getPsi((i+1)*hx)+
  20.                      a__*this.getPsi((i+2)*hx)+ht*hx2*this.getPhi((i+1)*hx);
  21.             else
  22.                 for (int i=0; i<I-1; i++){
  23.                     if (i==0)
  24.                         F[i]=a__*U[i]+b__*U[i]+a__*U[i+1]+
  25.                              ht*hx2*this.getPhi((i+1)*hx);
  26.                     if (i==I-2)
  27.                         F[i]=a__*U[i-1]+b__*U[i]+a__*U[i]+
  28.                              ht*hx2*this.getPhi((i+1)*hx);
  29.                     if ((i>0) && (i<I-2))
  30.                         F[i]=a__*U[i-1]+b__*U[i]+a__*U[i+1]+
  31.                              ht*hx2*this.getPhi((i+1)*hx);
  32.                 }
  33.             double [] P = new double [I-2]; //n-1
  34.            
  35.             P[0]=a_/(a_+b_);
  36.             F[0]=-F[0]/(a_+b_);
  37.                 for (int i=1; i<I-1; i++){
  38.                 if (i<I-2)
  39.                     P[i]=a_/(b_-P[i-1]*a_);
  40.                 F[i]=(F[i]-F[i-1]*a_)/(b_-P[i-1]*a_);
  41.             }
  42.             for (int i=I-2; i>0; i--){
  43.                 F[i-1]=F[i-1]-P[i-1]*F[i];
  44.             }
  45.             U=F.clone();
  46.         }
  47.  
  48.  
  49.        return U;
  50.     }
Add Comment
Please, Sign In to add comment