拉普拉斯算子的特征值

此示例示出了如何解决上的L形区域拉普拉斯算子的特征值问题。

膜质量问题

考虑一个固定在边界上的膜 Ω 一个区域的 Ω 在平面上。它的位移 u ( x , y ) 由本征值问题描述 Δ u = λ u ,其中 Δ u = u x x + u y y 是拉普拉斯算子吗 λ 是一个标量参数。边界条件 u ( x , y ) = 0 对所有人 ( x , y ) Ω

拉普拉斯算子是自伴和负定的,也就是说,只有实的负特征值 λ 存在。存在一个极大的(负的)离散特征值,对应的特征函数 u 被称为基态。在这个例子中, Ω 为l形区域,与此区域相关的基态为l形膜,即MATLAB®徽标。

九点有限差分近似

以特征值问题的最简单的方法是近似拉普拉斯 Δ u 由有限差分近似(一模版)在一个由点和距离构成的正方形网格上hx x 方向和距离沪元 y 方向。在这个例子中,是近似值 Δ u 用一笔S_H围绕中点9个规则的网格点 ( x , y ) 。未知数就是权重 一个 - 1 - 1 , , 一个 1 1

SYMSU(X,Y)每股收益A11A10A1_1A01A00a0_1a_11a_10a_1_1SYMShx沪元S_H = a_11 * U(X  - 每股收益* HX,Y +每股收益* HY)+...A01 * U(X,Y +每股收益* HY)+...A11 * U(X +每股收益* HX,Y +每股收益* HY)+...a_10 * U(X  - 每股收益* HX,Y)+...A00 * U(X,Y)+...A10 * U(X +每股收益* HX,Y)+...a_1_1 * U(X  - 每股收益* HX,Y  - 每股收益* HY)+...a0_1 * U(X,Y  - 每股收益* HY)+...A1_1 * U(X +每股收益* HX,Y  - 每股收益* HY);

使用象征性的参数每股收益排序这个表达式的由权力膨胀hx沪元。知道了权值,您就可以通过设置来近似拉普拉斯行列式EPS = 1

T =泰勒(S_H,EPS,'订购'7);

使用多项式系数函数的作用是:提取幂次相同的项的系数每股收益。每个系数都是幂的表达式hx,沪元,以及u关于 x y 。自S_H代表 u x x + u y y 的所有其他导数的系数u必须为零。通过替换的所有衍生提取的系数u,除了 u x x u y y ,0。取代 u x x u y y 1。这就把泰勒展开式化为你想要计算的系数,从而得到下面六个线性方程。

C =式(coeffs(吨,EPS,“所有”));EQ0 =潜艇(C(7)中,u(X,Y),1)== 0;eq11 =潜艇(C(6),[DIFF(U,X),DIFF(U,Y)],[1,0])== 0;eq12 =潜艇(C(6),[DIFF(U,X),DIFF(U,Y)],[0,1])== 0;EQ21 =潜艇(C(5),[DIFF(U,X,X),DIFF(U,X,Y),DIFF(U,Y,Y)],[1,0,0])== 1;eq22 =潜艇(C(5),[DIFF(U,X,X),DIFF(U,X,Y),DIFF(U,Y,Y)],[0,1,0])== 0;eq23 =潜艇(C(5),[DIFF(U,X,X),DIFF(U,X,Y),DIFF(U,Y,Y)],[0,0,1])== 1;

由于有九个未知的权重S_H,要求所有的三阶导数u都是0。

eq31 =潜艇(C(4),[DIFF(U,X,X,X),DIFF(U,X,X,Y),DIFF(U,X,Y,Y),DIFF(U,Y,Y,Y)],[1,0,0,0])== 0;eq32 =潜艇(C(4),[DIFF(U,X,X,X),DIFF(U,X,X,Y),DIFF(U,X,Y,Y),DIFF(U,Y,Y,Y)],[0,1,0,0])== 0;eq33 =潜艇(C(4),[DIFF(U,X,X,X),DIFF(U,X,X,Y),DIFF(U,X,Y,Y),DIFF(U,Y,Y,Y)],[0,0,1,0])== 0;eq34 =潜艇(C(4),[DIFF(U,X,X,X),DIFF(U,X,X,Y),DIFF(U,X,Y,Y),DIFF(U,Y,Y,Y)],[0,0,0,1])== 0;

解决为九点未知的权重产生的10式。使用ReturnConditions求出包括任意参数在内的所金宝搏官方网站有解。

[A11,A10,A1_1,A01,A00,a0_1,a_11,a_10,a_1_1,参数,条件] =...解决([EQ0,eq11,eq12,EQ21,eq22,eq23,eq31,eq32,eq33,eq34]...[A11,A10,A1_1,A01,A00,a0_1,a_11,a_10,a_1_1]...'ReturnConditions',真正);扩大([a_11,A01,A11;...a_10,A00,A01;...a1_1、a0_1 a_1_1])
ans =
                 

( z 1 沪元 2 - 2 z z 1 hx 2 - 2 z 4 z - 2 hx 2 - 2 沪元 2 1 沪元 2 - 2 z z 1 沪元 2 - 2 z z ) [Z,1 / HY ^ 2 - 2 * Z,Z;1 / HX ^ 2 - 2 * Z,4 * Z - 2 / HX ^ 2 - 2 / HY ^ 2,1 / HY ^ 2 - 2 * Z;Z,1 / HY ^ 2 - 2 * Z,Z]

参数
参数=
                 
                  
                   
                    
                     z
                   
                   
                    z
                  
                 

使用潜艇函数以其计算值替换权重。

C =简化(潜艇(C));

的表情C(7),C(6)C(4)包含的0阶,1阶和3阶导数u消失。

[C(7),C(6),C(4)]
ans =
                 
                  
                   
                    
                     
                      (
                     
                      
                       
                        
                         
                          0
                        
                       
                       
                        
                         
                          0
                        
                       
                       
                        
                         
                          0
                        
                       
                      
                     
                     
                      )
                    
                   
                   
                    [符号(0),符号(0),符号(0)]
                  
                 

表达方式C(5)是的拉普拉斯u

C(5)
ans =
                 

2 x 2 u ( x , y ) + 2 y 2 u ( x , y ) 差异(U(X,Y)中,x,2)+ DIFF(U(X,Y)中,y,2)

因此,使用上面计算的权重值,模板S_H接近拉普拉斯高达秩序hx ^ 2,hy ^ 2对于任意参数的任意值z,前提是z被选为有秩序的O(1 / HX ^ 2,1 / HY ^ 2)

含条款第四,高阶导数

尽管解决方案包含一个自由参数z,该表达式C(3)含的第四阶导数u不能由适当选择变成零z。另一种选择是把它变成拉普拉斯算子的平方的倍数。

SYMSd拉普拉斯= @(u)拉普拉斯(u,[x,y]);扩大(d *拉普拉斯(拉普拉斯(u)))
ANS(X,Y)=
                 

d 4 x 4 u ( x , y ) + 2 d 2 y 2 2 x 2 u ( x , y ) + d 4 y 4 u ( x , y ) d *的diff(U(X,Y)中,x,4)+ 2 * d *差异(差异(U(X,Y)中,x,2)中,y,2)+ d *的diff(U(X,Y)中,y,4)

挑的不同衍生物uC(3),并使它们的系数与相应的项相等。

潜艇(C (3), [diff (u, x, x, x, x), diff (u, x, x, y, y), diff (u, y, y, y, y)], [1, 0, 0)) = = d
ans =
                 

hx 2 12 = d HX ^ 2/12 == d

潜艇(C(3),[DIFF(U,X,X,X,X),DIFF(U,X,X,Y,Y),DIFF(U,Y,Y,Y,Y)],[0,1,0])== 2 * d
ans =
                 
                  
                   
                    
                     
                      
                       
                        
                         
                          hx
                        
                        
                         
                          2
                        
                       
                       
                       
                       
                        
                         
                          沪元
                        
                        
                         
                          2
                        
                       
                       
                       
                       
                        z
                      
                     
                     
                      =
                     
                      
                       
                        2
                       
                       
                       
                        d
                      
                     
                    
                   
                   
                    hx ^ 2 * hy ^ 2 * z = = 2 * d
                  
                 
潜艇(C(3),[DIFF(U,X,X,X,X),DIFF(U,X,X,Y,Y),DIFF(U,Y,Y,Y,Y)],[0,0,1])== d
ans =
                 

沪元 2 12 = d hy ^ 2/12 = = d

因此,你可以选择d = HX ^ 2/12 = HY ^ 2/12z = 2 * d / (hx hy ^ ^ 2 * 2),这意味着hx =沪元Z = 1 /(6 * * HX HY)。因此,模板S_H近似于改进的拉普拉斯上的正方形格子HX = HY = H

年代 h = Δ u + h 2 1 2 Δ 2 u + O ( h 3. ) ( 1 )

SYMShhx = h;hy = h;d = h ^ 2/12;

取代hx沪元通过h

C =潜艇(C);

取代z通过它的价值,1 /(6 * H ^ 2)。因为z不存在于MATLAB®工作空间中,您只能将其作为值存储在参数数组中。

C =潜艇(C,参数,1 /(6 * H ^ 2));

验证式(1)。

简化(C(3) -  d *拉普拉斯(拉普拉斯(U)))
ANS(X,Y)=
                 
                  
                   
                    
                     0
                   
                   
                    信谊(0)
                  
                 

现在,考虑第三阶项hx,沪元

简化(C (2))
ans =
                 
                  
                   
                    
                     0
                   
                   
                    信谊(0)
                  
                 

由于在模版的膨胀不存在这样的术语中,术语 O ( h 3. ) in(1)实际上是有序的 O ( h 4 ) 。考虑模具的第四阶术语。

因子(简化(C (1)))
ans =
                 

( 1 360 h h h h 6 x 6 u ( x , y ) + 5 2 y 2 4 x 4 u ( x , y ) + 5 4 y 4 2 x 2 u ( x , y ) + 6 y 6 u ( x , y ) ) [符号(1/360),H,H,H,H,DIFF(U(X,Y)中,x,6)+ 5 *差异(差异(U(X,Y)中,x,4)中,Y,2)+ 5 *差异(差异(U(X,Y)中,x,2)中,y,4)+ DIFF(U(X,Y)中,Y,6)]

检查这些条款可与拉普拉斯算子的又一力量来识别。然而,与比较

拉普拉斯(拉普拉斯(拉普拉斯(u)))
ANS(X,Y)=
                 

6 x 6 u ( x , y ) + 3. 2 y 2 4 x 4 u ( x , y ) + 3. 4 y 4 2 x 2 u ( x , y ) + 6 y 6 u ( x , y ) diff (u (x, y), x, 6) + 3 * diff (diff (u (x, y), x, 4), y, 2) + 3 * diff (diff (u (x, y), x, 2), y, 4) + diff (u (x, y), y, 6)

表示的是有序的表达式 O ( h 4 ) 不能被认定为拉普拉斯算子的第三功率的某个倍数,因为系数不能匹配。

总结

对于方形网格的距离h在相邻的网格点与上述权值的选择之间,得到:

年代 h = Δ u + h 2 1 2 Δ 2 u + O ( h 4 ) ( 2 )

使用这个扩展的数值方法特征值问题 Δ u = λ u 。加上某个倍数 Δ 2 u = λ 2 u 到特征值方程。

Δ u + h 2 1 2 Δ 2 u = ( λ + h 2 1 2 λ 2 ) u

这个等式的左边用模板很好地近似了 年代 h 。因此,使用(2),一个数值特征值 μ 令人满意的模板 年代 h u = μ u 一定是特征值的近似值吗 λ 拉普拉斯算子与

μ = λ + h 2 1 2 λ 2 + O ( h 4 )

对于给定 μ ,解决 λ 获得的拉普拉斯特征值的更好近似。需要注意的是,在二次方程式的解 λ 平方根的正确的符号是由要求,即给定的 λ μ h 0

λ = 6 h 2 ( 1 + μ h 2 3. - 1 ) = 2 μ 1 + μ h 2 3. + 1 ( 3. )

用符号矩阵求解特征值问题

考虑一个l形区域 Ω 由三个单位正方形。

Ω = { ( x , y ) ; - 1 x 0 , - 1 y 0 } { ( x , y ) ; 0 x 1 , - 1 y 0 } { ( x , y ) ; - 1 x 0 , 0 y 1 }

定义区域角的坐标值。

XMIN = -1;XMAX = 1;YMIN = -1;YMAX = 1;

考虑一个正方形网格组成的奇数的NX = 2 * NX-1在网格点x方向和奇数NY = 2 * NY-1在网格点y方向。

nx = 6;Nx = 2 * nx-1;hx = (xmax-xmin) / (Nx-1);纽约= 6;纽约= 2 * ny-1;hy = (ymax-ymin) / (Ny-1);

创建尹恩惠-通过-NX符号矩阵 u 。它的条目u (i, j)代表的值u(xmin + (j - 1)*hx,ymin + (i - 1)*hy)该解决方案的U(X,Y)特征值问题 Δ u = λ u

U =符号(“u”(纽约Nx]);

的边界 Ω 对应于以下指标:

U(:,1)= 0;%左边界u (1) = 0;%下边界U(1:NY,NX)= 0;右上边界u(纽约:纽约,nx) = 0;右边界,下半部分U(NY,1:NX)= 0;%上边界,左部U(NY中,nx:NX)= 0;%上边界,右部

该地区与 0 < x 1 0 < y 1 不属于 Ω 。设置相应的矩阵项(ⅰ= ny的+ 1:NY,J = NX + 1:NX)零。他们发挥没有进一步的作用,将被忽略。

u(ny + 1: ny,nx + 1: nx) = 0;

问题的未知数是以下矩阵的元素:

u
U =
                 

( 0 0 0 0 0 0 0 0 0 0 0 0 u 2 , 2 u 2 , 3. u 2 , 4 u 2 , 5 u 2 , 6 u 2 , 7 u 2 , 8 u 2 , 9 u 2 , 10 0 0 u 3. , 2 u 3. , 3. u 3. , 4 u 3. , 5 u 3. , 6 u 3. , 7 u 3. , 8 u 3. , 9 u 3. , 10 0 0 u 4 , 2 u 4 , 3. u 4 , 4 u 4 , 5 u 4 , 6 u 4 , 7 u 4 , 8 u 4 , 9 u 4 , 10 0 0 u 5 , 2 u 5 , 3. u 5 , 4 u 5 , 5 u 5 , 6 u 5 , 7 u 5 , 8 u 5 , 9 u 5 , 10 0 0 u 6 , 2 u 6 , 3. u 6 , 4 u 6 , 5 0 0 0 0 0 0 0 u 7 , 2 u 7 , 3. u 7 , 4 u 7 , 5 0 0 0 0 0 0 0 u 8 , 2 u 8 , 3. u 8 , 4 u 8 , 5 0 0 0 0 0 0 0 u 9 , 2 u 9 , 3. u 9 , 4 u 9 , 5 0 0 0 0 0 0 0 u 10 , 2 u 10 , 3. u 10 , 4 u 10 , 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ) [符号(0),符号(0),符号(0),符号(0),符号(0),符号(0),符号(0),符号(0),符号(0),符号(0),符号(0);符号(0),u2_2,u2_3,u2_4,u2_5,u2_6,u2_7,u2_8,u2_9,u2_10,符号(0);符号(0),u3_2,u3_3,u3_4,u3_5,u3_6,u3_7,u3_8,u3_9,u3_10,符号(0);符号(0),u4_2,u4_3,u4_4,u4_5,u4_6,u4_7,u4_8,u4_9,u4_10,符号(0);符号(0),u5_2,u5_3,u5_4,u5_5,u5_6,u5_7,u5_8,u5_9,u5_10,符号(0);符号(0),u6_2,u6_3,u6_4,u6_5,符号(0),符号(0),符号(0),符号(0),符号(0),符号(0);符号(0),u7_2,u7_3,u7_4,u7_5,符号(0),符号(0),符号(0),符号(0),符号(0),符号(0);符号(0),u8_2,u8_3,u8_4,u8_5,符号(0),符号(0),符号(0),符号(0),符号(0),符号(0);符号(0),u9_2,u9_3,u9_4,u9_5,符号(0),符号(0),符号(0),符号(0),符号(0),符号(0);符号(0),u10_2,u10_3,u10_4,u10_5,符号(0),符号(0),符号(0),符号(0),符号(0),符号(0); sym(0), sym(0), sym(0), sym(0), sym(0), sym(0), sym(0), sym(0), sym(0), sym(0), sym(0)]

该区域的内部点 Ω Ω 对应于指数 ( , j ) 包含未知值的 u ( , j ) 的问题。在载体中收集这些未知瓦尔

(I, J) =找到(u ~ = 0);var = u (u ~ = 0);

相关联的符号表达(通过在该示例中的第一部分得到的给定模板)与每个索引(即,与每个未知)。

n =长度(var);陆=符号(0 (n, 1));K = 1:n的I = I(K);当J = J(K);路(K)= 1/6 * U(I + 1,J-1)+ 2/3 * U(I + 1,J)+ 1/6 * U(I + 1,J + 1)...+ 2/3*u(i,j-1) - 10/3*u(i,j) + 2/3*u(i,j+1)...+ 1/6 * U(I-1,J-1)+ 2/3 * U(I-1,j)的+ 1/6 * U(I-1,J + 1);结束陆=陆/ hx ^ 2;

因为这个表达式在未知元素中是线性的u(存储在瓦尔,你可以把它看成作用于这个向量的矩阵瓦尔

S_H =雅可比(路,乏);

你可以把S_H作为拉普拉斯算子的矩阵近似。计算它的特征向量和特征值。

[V D] = eig (vpa (S_h));

三个最大本征值是由D的第一对角元素给定

[d(1,1),d(2,2),d(3,3)]
ans =
                 
                  
                   
                    
                     
                      (
                     
                      
                       
                        
                         
                          
                           
                            -
                           
                            9.5214641572625960021345709535953
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            -
                           
                            14.431096242107969492574666743957
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            -
                           
                            18.490392088545609858994660377955
                          
                         
                        
                       
                      
                     
                     
                      )
                    
                   
                   
                    [-vpa( '9.5214641572625960021345709535953'),-vpa('14 0.431096242107969492574666743957 '),-vpa('18 0.490392088545609858994660377955')]
                  
                 

因为对于这个近似值,你使用了一个有少量点的网格,只有特征值的前导数字是正确的。

l形区域上拉普拉斯算子的第三高特征值 Ω 是清楚的。拉普拉斯算子的特征函数就是这个函数 u ( x , y ) = ( π x ) ( π y ) 与(精确)相关联的本征值 - 2 π 2 = - 1 9 7 3. 9 2 。事实上,利用上面的方程(3),你可以得到一个更好的拉普拉斯特征值的近似值 λ 从模板特征值 μ :

亩= d(3,3)
μ=
                 
                  
                   
                    
                     
                      -
                     
                      18.490392088545609858994660377955
                    
                   
                   
                    -vpa('18 0.490392088545609858994660377955' )
                  
                 
拉姆达= 2 *亩/(SQRT(1 +亩* HX ^ 2/3)+ 1)
λ=
                 
                  
                   
                    
                     
                      -
                     
                      19.796765119155672176257649532142
                    
                   
                   
                    vpa (“19.796765119155672176257649532142”)
                  
                 

绘制与第三最高特征相关联的本征函数。

V = V(:,3);K = 1:N个U(I(K),J(K))= V(k)的;结束U =双(U);冲浪(XMIN:HX:XMAX,YMIN:HY:YMAX,U');视图(125年,30);

使用双精度矩阵求解特征值问题

当您使用符号矩阵,极大地增加不推荐的网格点的数量,因为象征性的计算是显著慢于与MATLAB的双精度​​矩阵的数值计算。本示例的这一部分说明了如何使用稀疏双算术,其允许改进的数值网格。该L形区域 Ω 设置方式与以前相同。相反,通过象征性的表示未知数内部点,初始化网格值u由1和定义 Ω 由边界点和外部点的值设置为零。而不是限定的符号表达为每个内部点并计算模版作为雅可比,直接设置在模板矩阵作为稀疏矩阵。

XMIN = -1;XMAX = 1;YMIN = -1;YMAX = 1;为nx = 30;Nx = 2 * nx-1;hx = (xmax-xmin) / (Nx-1);NY = 30;纽约= 2 * ny-1;hy = (ymax-ymin) / (Ny-1); u = ones(Ny,Nx); u(:,1) = 0;%左边界U(1:NY,NX)= 0;右上边界u(纽约:纽约,nx) = 0;右边界,下半部分u (1) = 0;%下边界U(NY,1:NX)= 0;%上边界,左部U(NY中,nx:NX)= 0;%上边界,右部u(ny + 1: ny,nx + 1: nx) = 0;[I,J] =查找(U〜= 0);N =长度(I);S_H =稀疏(N,N);K = 1:n的I = I(K);当J = J(K);S_H(K,I == I + 1&J == J + 1)= 1/6;S_H(K,I == I + 1&J == j)的2/3 =;S_H(K,I == I + 1&J == J-1)= 1/6;S_H(K,I == I&J == J + 1)= 2/3;S_H(K,I == I&J == j)的=  -  10/3;S_H(K,I == I&J == J-1)= 2/3;S_H(K,I == I-1&J == J + 1)= 1/6;S_H(K,I == I-1&J == j)的2/3 =; S_h(k,I==i-1 & J==j-1)= 1/6;结束S_H = S_h./hx^2;

这里,S_H是(稀疏的)模板矩阵。使用eigs它处理稀疏矩阵来计算三个最大的特征值。

[V D] = eigs (S_h 3“拉”);

这三个最大的特征值是D的第一个对角线元素

[d(1,1),d(2,2),d(3,3)]
ans =1×3-9.6493 -15.1742 -19.7006

d(3,3)接近准确的特征值 - 2 π 2 = - 1 9 7 3. 9 2 0 8 8 。利用上面的方程(3),推导出更精确的拉普拉斯特征值近似值 λ 从模板特征值 μ

亩= d(3,3)
μ= -19.7006
拉姆达= 2 *亩/(SQRT(1 +亩* HX ^ 2/3)+ 1)
拉姆达= -19.7393

绘制与第三最高特征相关联的本征函数。

V = V(:,3);K = 1:N个U(I(K),J(K))= V(k)的;结束冲浪(xmin: hx: xmax ymin::为什么ymax, u ');视图(125年,30);

注意MATLAB函数用不同的方法计算拉普拉斯算子的特征函数。

膜(3中,nx  -  1,8,8);