Собственные значения и собственные модели L-образной мембраны

Этот пример показывает, как вычислить собственные значения и собственные векторы. Задача собственного значения является -Δu=λu. Этот пример вычисляет все собственные модели с собственными значениями меньше 100.

Создайте модель и включите эту геометрию. Геометрия L-образной мембраны описана в файле lshapeg.

model = createpde();
geometryFromEdges(model,@lshapeg);

Установите нулевые граничные условия Дирихле на всех ребрах.

applyBoundaryCondition(model,'dirichlet','Edge',1:model.Geometry.NumEdges,'u',0);

Задайте коэффициенты для задачи: d = 1 и c = 1. Все другие коэффициенты равны нулю.

specifyCoefficients(model,'m',0,'d',1,'c',1,'a',0,'f',0);

Установите интервал [0 100] как область для собственных значений в решении.

r = [0 100];

Создайте mesh и решите проблему.

generateMesh(model,'Hmax',0.05);
results = solvepdeeig(model,r);
              Basis= 10,  Time=   1.10,  New conv eig=  0
              Basis= 11,  Time=   1.14,  New conv eig=  0
              Basis= 12,  Time=   1.17,  New conv eig=  0
              Basis= 13,  Time=   1.20,  New conv eig=  0
              Basis= 14,  Time=   1.22,  New conv eig=  0
              Basis= 15,  Time=   1.27,  New conv eig=  0
              Basis= 16,  Time=   1.29,  New conv eig=  0
              Basis= 17,  Time=   1.34,  New conv eig=  0
              Basis= 18,  Time=   1.39,  New conv eig=  1
              Basis= 19,  Time=   1.41,  New conv eig=  1
              Basis= 20,  Time=   1.47,  New conv eig=  1
              Basis= 21,  Time=   1.51,  New conv eig=  1
              Basis= 22,  Time=   1.56,  New conv eig=  3
              Basis= 23,  Time=   1.63,  New conv eig=  3
              Basis= 24,  Time=   1.69,  New conv eig=  4
              Basis= 25,  Time=   1.84,  New conv eig=  5
              Basis= 26,  Time=   1.92,  New conv eig=  6
              Basis= 27,  Time=   1.99,  New conv eig=  6
              Basis= 28,  Time=   2.07,  New conv eig=  6
              Basis= 29,  Time=   2.14,  New conv eig=  7
              Basis= 30,  Time=   2.19,  New conv eig=  7
              Basis= 31,  Time=   2.26,  New conv eig= 10
              Basis= 32,  Time=   2.33,  New conv eig= 10
              Basis= 33,  Time=   2.39,  New conv eig= 11
              Basis= 34,  Time=   2.47,  New conv eig= 11
              Basis= 35,  Time=   2.55,  New conv eig= 14
              Basis= 36,  Time=   2.62,  New conv eig= 14
              Basis= 37,  Time=   2.77,  New conv eig= 14
              Basis= 38,  Time=   2.82,  New conv eig= 14
              Basis= 39,  Time=   2.87,  New conv eig= 14
              Basis= 40,  Time=   2.92,  New conv eig= 14
              Basis= 41,  Time=   3.02,  New conv eig= 15
              Basis= 42,  Time=   3.10,  New conv eig= 15
              Basis= 43,  Time=   3.14,  New conv eig= 15
              Basis= 44,  Time=   3.19,  New conv eig= 16
              Basis= 45,  Time=   3.26,  New conv eig= 16
              Basis= 46,  Time=   3.37,  New conv eig= 16
              Basis= 47,  Time=   3.59,  New conv eig= 16
              Basis= 48,  Time=   3.71,  New conv eig= 17
              Basis= 49,  Time=   3.96,  New conv eig= 18
              Basis= 50,  Time=   4.18,  New conv eig= 18
              Basis= 51,  Time=   4.44,  New conv eig= 18
              Basis= 52,  Time=   4.71,  New conv eig= 18
              Basis= 53,  Time=   4.88,  New conv eig= 18
              Basis= 54,  Time=   5.10,  New conv eig= 21
End of sweep: Basis= 54,  Time=   5.10,  New conv eig= 21
              Basis= 31,  Time=   5.66,  New conv eig=  0
              Basis= 32,  Time=   5.73,  New conv eig=  0
              Basis= 33,  Time=   5.81,  New conv eig=  0
End of sweep: Basis= 33,  Time=   5.81,  New conv eig=  0

Существует 19 собственных значений меньше 100.

length(results.Eigenvalues)
ans = 19

Постройте график первой собственной модели и сравните его с membrane MATLAB функция.

u = results.Eigenvectors;
pdeplot(model,'XYData',u(:,1),'ZData',u(:,1));

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

figure
membrane(1,20,9,9)

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

Собственные векторы могут быть умножены на любой скаляр и оставаться собственными векторами. Это объясняет различие в шкале, который вы видите.

membrane может получить первые 12 собственных функций для L-образной мембраны. Сравните 12-е собственные модели.

figure 
pdeplot(model,'XYData',u(:,12),'ZData',u(:,12));

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

figure 
membrane(12,20,9,9)

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