Конечное различие лапласиан

В этом примере показано, как вычислить и представлять конечное различие лаплаков в L-образной области.

Область

The numgrid числа функций указаны в L-образной области. The spy функция является полезным инструментом для визуализации расположения ненулевых элементов в матрице. Используйте эти две функции для генерации и отображения L-образной области.

n = 32;
R = 'L';
G = numgrid(R,n);
spy(G)
title('A Finite Difference Grid')

Figure contains an axes. The axes with title A Finite Difference Grid contains an object of type line.

Покажите меньшую версию матрицы как выборка.

g = numgrid(R,10)
g = 10×10

     0     0     0     0     0     0     0     0     0     0
     0     1     5     9    13    17    25    33    41     0
     0     2     6    10    14    18    26    34    42     0
     0     3     7    11    15    19    27    35    43     0
     0     4     8    12    16    20    28    36    44     0
     0     0     0     0     0    21    29    37    45     0
     0     0     0     0     0    22    30    38    46     0
     0     0     0     0     0    23    31    39    47     0
     0     0     0     0     0    24    32    40    48     0
     0     0     0     0     0     0     0     0     0     0

Дискретный лапласиан

Использование delsq чтобы сгенерировать дискретный лапласиан. Используйте spy снова функция, чтобы получить графическое представление о элементах матрицы.

D = delsq(G);
spy(D)
title('The 5-Point Laplacian')

Figure contains an axes. The axes with title The 5-Point Laplacian contains an object of type line.

Определите количество внутренних точек.

N = sum(G(:)>0)
N = 675
Задача

Контура ценности Дирихлета

Решите задачу Дирихле контура значения для разреженной линейной системы. Настройка проблемы:

delsq(u) = 1 в интерьере, u = 0 на контуре.

rhs = ones(N,1);
if (R == 'N') % For nested dissection, turn off minimum degree ordering.
   spparms('autommd',0)
   u = D\rhs;
   spparms('autommd',1)
else
   u = D\rhs; % This is used for R=='L' as in this example
end

Отобразите решение на Г-образную сетку и постройте график как контурную карту.

U = G;
U(G>0) = full(u(G(G>0)));
clabel(contour(U));
prism
axis square ij

Figure contains an axes. The axes contains 15 objects of type contour, line, text.

Теперь покажите решение как сетчатый график.

mesh(U)
axis([0 n 0 n 0 max(max(U))])
axis square ij

Figure contains an axes. The axes contains an object of type surface.

См. также

Для просмотра документации необходимо авторизоваться на сайте