Page 40 - 4968
P. 40

 t , ,
          За  результатами  розрахунків  побудувати  графіки:  u 10                             x , ,  xu  1
                                       a                 b                   2 b   
            x , ,    txu , , де  x   1  b 1  ,  x   a   1  a 1  ,  x   a   1  a 1
           u      t                                                                   .
                        3
              2
                                   1              2   1              2   1
                                          2                  3                   3

                                              Контрольний приклад

                  Автори  висловлюють  вдячність  студенту  групи  ПІ-12-1
          Мацибурці  Петру  за  надане  право  використати  в  методичці

          наведені далі матеріали.
                  Варіант         завдання:         Розв’язати        рівняння        теплопровідності

            U    2    2 U  ,  x   ,  t           2    4.  Записати  алгоритм  розв’язку  при
             t   a   x   2      L,0       T,0  ,  a

                                                       
                                       0              U          t 
                                                         x 
          умовах:   ,0 xU     20,   tU ,  20  cos  t ,     eLt,  .
                                                  Код програми

          import matplotlib


          from pylab import *
          import numpy
          import tdma


          numpy.set_printoptions(precision=2)


          A = 4
          xmin, xmax = 0, 10
          tmin, tmax = 0, 5
          h, k       = .01, .01


          n = int(xmax / h)
          m = int(tmax / k)


          x = linspace(xmin, xmax, n + 1)
          t = linspace(tmin, tmax, m + 1)
          u = zeros((n + 1, m + 1), float)


          u[:, 0] = 20
          u[0, :] = exp(-t)
          u[n, :] = 20 * cos(t)


          D2 = (2 * k * A + h * h) * ones(n - 1, float)
          D1 = -k * A * ones(n - 2, float)
          D3 = -k * A * ones(n - 2, float)


          tdma.factor(D1, D2, D3)

          print(numpy.diagflat(D1, -1) + numpy.diagflat(D2, 0) +
          numpy.diagflat(D3, 1))






                                                                                                          40
   35   36   37   38   39   40   41   42   43