 
          265
        
        
          double
        
        
          y;
        
        
          y=1.;
        
        
          return
        
        
          y;
        
        
          }
        
        
          //условие на правой границе
        
        
          double
        
        
          nyu(
        
        
          double
        
        
          x
        
        
          )
        
        
          {
        
        
          double
        
        
          y;
        
        
          y=2.117;
        
        
          return
        
        
          y;
        
        
          }
        
        
          int
        
        
          main()
        
        
          {
        
        
          ofstream
        
        
          outfile;
        
        
          outfile.open(
        
        
          "rezz.xls"
        
        
          ,
        
        
          ios
        
        
          ::out);
        
        
          int
        
        
          N,K,i,j;
        
        
          double
        
        
          a,L,T,h,delta,gam;
        
        
          double
        
        
          x[52],u[52][202],t[202];
        
        
          N=50;
        
        
          K=200;
        
        
          L=5;
        
        
          T=3;
        
        
          a=0.4;
        
        
          //вычисляем шаг по х
        
        
          h=L/N;
        
        
          //вычисляем шаг по t
        
        
          delta=T/K;
        
        
          //формируем массив х и первый столбец матрицы решений U из начального условия
        
        
          for
        
        
          (i=1;i<=N+1;i++)
        
        
          {
        
        
          x[i]=(i-1)*h;
        
        
          u[i][1]=fi(x[i]);
        
        
          }
        
        
          //Формируем массив t, первую и последнюю строку матрицы решений U из граничных
        
        
          условий
        
        
          for
        
        
          (j=1;j<=K+1;j++)
        
        
          {
        
        
          t[j]=(j-1)*delta;
        
        
          u[1][j]=myu(t[j]);
        
        
          u[N+1][j]=nyu(t[j]);
        
        
          }
        
        
          gam=a*a*delta/h*h;
        
        
          //Формируем матрицу решений
        
        
          for
        
        
          (j=1;j<=K;j++)
        
        
          for
        
        
          (i=2;i<=N;i++)
        
        
          u[i][j+1]=gam*u[i-1][j]+(1-
        
        
          2*gam)*u[i][j]+gam*u[i+1][j]+delta*f(x[i],t[j]);
        
        
          for
        
        
          (i=1;i<=N;i++)
        
        
          {
        
        
          for
        
        
          (j=1;j<=K;j++)
        
        
          {
        
        
          cout<<
        
        
          "\t"
        
        
          <<u[i][j];
        
        
          outfile<<
        
        
          "\t"
        
        
          <<u[i][j];
        
        
          }
        
        
          cout<<endl;
        
        
          outfile<<endl;
        
        
          }
        
        
          outfile.close();
        
        
          return
        
        
          0;
        
        
          }