Page 43 - 6760
P. 43

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


                                                   Контрольний приклад
                         Автори  висловлюють  вдячність  студенту  групи  ПІ-12-1  Мацибурці  Петру  за  надане  право
                  використати в методичці наведені далі матеріали.
                         Варіант        завдання:        Розв’язати      рівняння       теплопровідності
                    U    2   2 U                         2
                         a     ,  x   L,0  ,  t   T,0  ,  a    4.  Записати  алгоритм  розв’язку  при
                    t       x   2
                                                             U
                  умовах:   ,0 xU     20,    0,    20  cos t ,     eLt,    t   .
                                            t
                                          U
                                                             x 
                                                       Код програми
                  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))





                                                              43
   38   39   40   41   42   43   44   45   46