Eigenvalues и Eigenmodes l-образной мембраны

В этом примере показано, как вычислить собственные значения и собственные вектора. Задача о собственных значениях -Δu=λu. Этот пример вычисляет весь eigenmodes с собственными значениями, меньшими, чем 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=   0.32,  New conv eig=  0
              Basis= 11,  Time=   0.37,  New conv eig=  0
              Basis= 12,  Time=   0.41,  New conv eig=  0
              Basis= 13,  Time=   0.43,  New conv eig=  0
              Basis= 14,  Time=   0.45,  New conv eig=  0
              Basis= 15,  Time=   0.49,  New conv eig=  0
              Basis= 16,  Time=   0.51,  New conv eig=  0
              Basis= 17,  Time=   0.54,  New conv eig=  0
              Basis= 18,  Time=   0.56,  New conv eig=  1
              Basis= 19,  Time=   0.59,  New conv eig=  1
              Basis= 20,  Time=   0.62,  New conv eig=  1
              Basis= 21,  Time=   0.64,  New conv eig=  1
              Basis= 22,  Time=   0.67,  New conv eig=  3
              Basis= 23,  Time=   0.70,  New conv eig=  3
              Basis= 24,  Time=   0.73,  New conv eig=  4
              Basis= 25,  Time=   0.76,  New conv eig=  5
              Basis= 26,  Time=   0.78,  New conv eig=  6
              Basis= 27,  Time=   0.81,  New conv eig=  6
              Basis= 28,  Time=   0.84,  New conv eig=  6
              Basis= 29,  Time=   0.87,  New conv eig=  7
              Basis= 30,  Time=   0.90,  New conv eig=  7
              Basis= 31,  Time=   0.93,  New conv eig= 10
              Basis= 32,  Time=   0.96,  New conv eig= 10
              Basis= 33,  Time=   0.99,  New conv eig= 11
              Basis= 34,  Time=   1.01,  New conv eig= 11
              Basis= 35,  Time=   1.04,  New conv eig= 14
              Basis= 36,  Time=   1.07,  New conv eig= 14
              Basis= 37,  Time=   1.09,  New conv eig= 14
              Basis= 38,  Time=   1.13,  New conv eig= 14
              Basis= 39,  Time=   1.15,  New conv eig= 14
              Basis= 40,  Time=   1.18,  New conv eig= 14
              Basis= 41,  Time=   1.21,  New conv eig= 15
              Basis= 42,  Time=   1.23,  New conv eig= 15
              Basis= 43,  Time=   1.26,  New conv eig= 15
              Basis= 44,  Time=   1.28,  New conv eig= 16
              Basis= 45,  Time=   1.31,  New conv eig= 16
              Basis= 46,  Time=   1.34,  New conv eig= 16
              Basis= 47,  Time=   1.37,  New conv eig= 16
              Basis= 48,  Time=   1.40,  New conv eig= 17
              Basis= 49,  Time=   1.44,  New conv eig= 18
              Basis= 50,  Time=   1.48,  New conv eig= 18
              Basis= 51,  Time=   1.51,  New conv eig= 18
              Basis= 52,  Time=   1.54,  New conv eig= 18
              Basis= 53,  Time=   1.58,  New conv eig= 18
              Basis= 54,  Time=   1.62,  New conv eig= 21
End of sweep: Basis= 54,  Time=   1.85,  New conv eig= 21
              Basis= 31,  Time=   2.14,  New conv eig=  0
              Basis= 32,  Time=   2.18,  New conv eig=  0
              Basis= 33,  Time=   2.21,  New conv eig=  0
End of sweep: Basis= 33,  Time=   2.22,  New conv eig=  0

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

length(results.Eigenvalues)
ans = 19

Постройте первый eigenmode и сравните его с membrane MATLAB функция.

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

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

figure
membrane(1,20,9,9)

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

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

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

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

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

figure 
membrane(12,20,9,9)

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