拉普拉斯操作员的特征值

此示例显示了如何解决LAPPAlt操作员在L形区域上的特征值问题。

膜问题

考虑一个固定在边界的膜 ω. 一个地区 ω. 在飞机上。它的流离失所 X y 由特征值问题描述 δ. = λ. , 在哪里 δ. = X X + y y 是拉普拉斯州的运营商和 λ. 是标量参数。边界条件是 X y = 0. 对所有人 X y ω.

拉普拉斯操作员是自伴和负面的,即只有真正的消极特征值 λ. 存在。存在最大(负)离散的特征值,相应的特征函数 被称为基地。在这个例子中, ω. 是L形区域,与该区域相关的地位是L形膜,其是MATLAB®标识。

九点有限差异近似

最简单的特征值问题的方法是近似拉普拉斯人 δ. 通过有限差分近似(a模版)在带距离的点的平方网格上HX. X 方向和距离HY. y 方向。在这个例子中,近似 δ. 总和S_H.中点周围的九个常规网格点 X y 。未知数是重量 一种 - 1 - 1 ...... 一种 1 1

Syms.U(x,y)eps.A11A10A1_1A01A00A0_1.A_11A_10A_1_1.Syms.HX.HY.积极的s_h = a_11 * u(x  -  eps * hx,y + eps * hy)+......A01 * U(x,y + eps * hy)+......A11 * U(X + EPS * HX,Y + EPS * HY)+......A_10 * U(X  -  EPS * HX,Y)+......a00 * u(x,y)+......A10 * U(X + EPS * HX,Y)+......A_1_1 * U(X  -  EPS * HX,Y  -  EPS * HY)+......a0_1 * u(x,y  -  eps * hy)+......A1_1 * U(x + EPS * HX,Y  -  EPS * HY);

使用符号参数eps.通过权力对此表达的扩展进行分类HX.HY.。了解权重,您可以通过设置近似拉普拉斯人EPS = 1

T =泰勒(S_H,EPS,'命令',7);

使用COEFFS.用相同的权力提取它们的术语系数的功能eps.。每个系数是含有幂的表达HX.HY.和衍生物的关于 X y 。自从S_H.代表 X X + y y ,所有其他衍生物的系数必须是零。通过替换所有衍生物来提取系数, 除了 X X y y ,换0。更换 X X y y 到1.这将泰勒扩展降低到要计算的系数,并导致以下六个线性方程。

C =公式(COEFFS(T,EPS,'全部'));eq0 = summ(c(7),u(x,y),1)== 0;eq11 = summ(c(6),[diff(u,x),diff(u,y)],[1,0])== 0;eq12 = summ(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 = summ(c(5),[diff(u,x,x),diff(u,x,y),diff(u,y,y)],[0,1,0])== 0;eq23 = summ(c(5),[diff(u,x,x),diff(u,x,y),diff(u,y,y),[0,0,1])== 1;

由于有九个未知权重S_H.,通过要求所有三阶衍生物添加其他方程式是0。

eq31 = summ(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 = summ(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 = summ(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 = summ(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;

解决九个未知权重的由此产生的十个方程。用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,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 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,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.
                  
                 

使用subs通过计算值替换权重。

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

表达式C(7)C(6), 和C(4)包含0th,第1和第3衍生物消失。

[C(7),C(6),C(4)]
ans =.
                 
                  
                   
                    
                     
                     
                      
                       
                        
                         
                          0.
                        
                       
                       
                        
                         
                          0.
                        
                       
                       
                        
                         
                          0.
                        
                       
                      
                     
                     
                    
                   
                   
                    [sym(0),sym(0),sym(0)]
                  
                 

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

C(5)
ans =.
                 

2 X 2 X y + 2 y 2 X y 差异(U(x,y),x,2)+ diff(u(x,y),y,2)

因此,在上面计算的权重的值,模板S_H.近似拉普拉斯人达到订单HX ^ 2hy ^ 2对于任意参数的任何值Z.,提供了Z.被选中为订单O(1 / hx ^ 2,1 / hy ^ 2)

含有第四和高阶衍生物的条款

虽然解决方案包含一个免费参数Z., 表达方式C(3)包含四阶衍生物不能通过合适的选择变成零Z.。另一种选择是将其转换为Laplace操作员的正方形。

Syms.D.laplace = @(u)拉普拉斯(u,[x,y]);扩展(D * LAPLACH(LAPLACE(U))))
ans(x,y)=
                 

D. 4. X 4. X y + 2 D. 2 y 2 2 X 2 X y + D. 4. y 4. X y d * diff(u(x,y),x,4)+ 2 * d * diff(差异(u(x,y),x,2),y,2)+ d * diff(u(x,y),y,4)

挑选不同的衍生品C(3),并将它们的系数与相应的术语等同起来。

子(C(3),[差异(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),[差异(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
                        
                       
                       
                       
                       
                        
                         
                          HY.
                        
                        
                         
                          2
                        
                       
                       
                       
                       
                        Z.
                      
                     
                     
                      =
                     
                      
                       
                        2
                       
                       
                       
                        D.
                      
                     
                    
                   
                   
                    HX ^ 2 * hy ^ 2 * z == 2 * d
                  
                 
子(C(3),[差异(u,x,x,x,x),diff(u,x,x,y,y),diff(u,y,y,y,y)],[0,0,1])== d
ans =.
                 

HY. 2 12. = D. hy ^ 2/12 == d

因此,你可以选择D = HX ^ 2/12 = hy ^ 2/12z = 2 * d /(hx ^ 2 * hy ^ 2),暗示hx = hy.Z = 1 /(6 * HX * HY)。因此,模板S_H.在方形网格上近似改进的拉普拉斯hx = hy = h

S. H = δ. + H 2 1 2 δ. 2 + O. H 3. 1

Syms.Hhx = h;hy = h;d = h ^ 2/12;

代替HX.HY.经过H

C =子(C);

代替Z.通过其价值,1 /(6 * H ^ 2)。因为Z.在Matlab®工作区中不存在,您只能访问它作为存储在中的值参数大批。

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

验证公式(1)。

简化(C(3) -  D * laplace(拉普拉斯(U)))
ans(x,y)=
                 
                  
                   
                    
                     0.
                   
                   
                    SYM(0)
                  
                 

现在,考虑第三顺序HX.HY.

简化(C(2))
ans =.
                 
                  
                   
                    
                     0.
                   
                   
                    SYM(0)
                  
                 

由于在模板的扩展中没有存在这些条款,因此术语 O. H 3. 在(1)中实际上是顺序 O. H 4. 。考虑模板的第四顺序。

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

1 360. H H H H 6. X 6. X y + 5. 2 y 2 4. X 4. X y + 5. 4. y 4. 2 X 2 X y + 6. y 6. X y [sym(1/360),h,h,h,h,diff(u(x,y),x,6)+ 5 * diff(diff(u(x,y),x,4),y,2)+ 5 *差异(差异(u(x,y),x,2),y,4)+ diff(u(x,y),y,6)]

检查这些术语是否可以用LaPlace运算符的另一个电源识别。但是,比较

拉普拉斯(拉普拉斯(拉普拉斯(U)))
ans(x,y)=
                 

6. X 6. X y + 3. 2 y 2 4. X 4. X y + 3. 4. y 4. 2 X 2 X y + 6. y 6. X y 差异(U(x,y),x,6)+ 3 * diff(差异(u(x,y),x,4),y,2)+ 3 * diff(diff(u(u(x,y),x,2),y,4)+ diff(u(x,y),y,6)

表明订单的表达式 O. H 4. 不能被识别为拉普拉斯算子的第三个电源的一些倍数,因为系数不能匹配。

概括

对于具有距离的方形网格H邻近网格点与上述权重的选择之间,您得到:

S. H = δ. + H 2 1 2 δ. 2 + O. H 4. 2

使用此扩展为特征值问题的数字方法 δ. = λ. 。添加一些倍数 δ. 2 = λ. 2 到特征值方程。

δ. + H 2 1 2 δ. 2 = λ. + H 2 1 2 λ. 2

该等式的左侧由模板近似地近似 S. H 。因此,使用(2),数字特征值 μ. 模板令人满意 S. H = μ. 必须是特征值的近似值 λ. 拉普拉斯运营商的

μ. = λ. + H 2 1 2 λ. 2 + O. H 4.

给予 μ. ,解决 λ. 获得Laplace特征值的更好近似。注意,在二次方程的解决方案中 λ. 方形的正确迹象是由要求提供的 λ. μ. 为了 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;ny = 2 * ny-1;hy =(ymax-ymin)/(ny-1);

创建一个纽约-经过-NX.象征性矩阵 。它的参赛作品你(我,j)代表价值U(Xmin +(J-1)* HX,YMIN +(I - 1)* HY)解决方案U(x,y)特征值问题 δ. = λ.

u = sym('U',[ny,nx]);

界限 ω. 对应以下索引:

U(:,1)= 0;%左边界U(1,:) = 0;%较低的边界U(1:NY,NX)= 0;%右边界,上部U(NY:NY,NY)= 0;%右边界,下部U(ny,1:nx)= 0;%上边界,左部U(ny,nx:nx)= 0;%上边界,右侧部分

该地区有 0. < X ≤. 1 0. < y ≤. 1 不属于 ω. 。设置相应的矩阵条目(i = ny + 1:ny,j = nx + 1:nx)零。他们没有发挥其他作用,将被忽略。

U(NY + 1:NY,NX + 1:NX)= 0;

问题的未知是以下矩阵条目:

你=
                 

0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 2 2 2 3. 2 4. 2 5. 2 6. 2 7. 2 8. 2 9. 2 10. 0. 0. 3. 2 3. 3. 3. 4. 3. 5. 3. 6. 3. 7. 3. 8. 3. 9. 3. 10. 0. 0. 4. 2 4. 3. 4. 4. 4. 5. 4. 6. 4. 7. 4. 8. 4. 9. 4. 10. 0. 0. 5. 2 5. 3. 5. 4. 5. 5. 5. 6. 5. 7. 5. 8. 5. 9. 5. 10. 0. 0. 6. 2 6. 3. 6. 4. 6. 5. 0. 0. 0. 0. 0. 0. 0. 7. 2 7. 3. 7. 4. 7. 5. 0. 0. 0. 0. 0. 0. 0. 8. 2 8. 3. 8. 4. 8. 5. 0. 0. 0. 0. 0. 0. 0. 9. 2 9. 3. 9. 4. 9. 5. 0. 0. 0. 0. 0. 0. 0. 10. 2 10. 3. 10. 4. 10. 5. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 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),sym(0),sym(0),sym(0),sym(0);SYM(0),U2_2,U2_3,U2_4,U2_5,U2_6,U2_7,U2_8,U2_9,U2_10,SYM(0);SYM(0),U3_2,U3_3,U3_4,U3_5,U3_6,U3_7,U3_8,U3_9,U3_10,SYM(0);SYM(0),U4_2,U4_3,U4_4,U4_5,U4_6,U4_7,U4_8,U4_9,U4_10,SYM(0);SYM(0),U5_2,U5_3,U5_4,U5_5,U5_6,U5_7,U5_8,U5_9,U5_10,SYM(0);sym(0),u6_2,u6_3,u6_4,u6_5,sym(0),sym(0),sym(0),sym(0),sym(0),sym(0);sym(0),u7_2,u7_3,u7_4,u7_5,sym(0),sym(0),sym(0),sym(0),sym(0),sym(0);Sym(0),U8_2,U8_3,U8_4,U8_5,Sym(0),Sym(0),Sym(0),Sym(0),Sym(0),Sym(0);sym(0),u9_2,u9_3,u9_4,u9_5,sym(0),sym(0),sym(0),sym(0),sym(0),sym(0);sym(0),u10_2,u10_3,u10_4,u10_5,sym(0),sym(0),sym(0),sym(0),sym(0),sym(0); sym(0), sym(0), sym(0), sym(0), sym(0), sym(0), sym(0), sym(0), sym(0), sym(0), sym(0)]

该地区的内部点 ω. ω. 对应于索引 一世 j 包含未知值 一世 j 问题。在向量中收集这些未知数vars.

[I,J] =查找(U〜= 0);vars = u(u〜= 0);

将符号表达式与每个索引(即每个未知)相关联(由本示例的第一部分中导出的模板给出)。

n =长度(vars);lu = sym(零(n,1));为了k = 1:n i = i(k);j = j(k);lu(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);结尾lu = lu / hx ^ 2;

因为此表达式在未知元素中是线性的(存储在vars.),您可以将其视为作用在载体上的矩阵vars.

s_h =雅各比(lu,vars);

你可以对待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')]
                  
                 

由于对于此近似来,您使用具有少量点的网格,因此只有特征值的前导数字是正确的。

LAPLACE操作员在L形区域上的第三位最高特征值 ω. 究竟知道。拉普拉斯算子的确切特征功能是功能 X y = π X π y 与(确切)特征值相关联 - 2 π 2 = - 1 9. 7. 3. 9. 2 。实际上,使用上面的等式(3),您可以获得Laplace特征值的更好近似值 λ. 从模具特征值 μ.

mu = d(3,3)
穆=
                 
                  
                   
                    
                     
                      -
                     
                      18.490392088545609858994660377955
                    
                   
                   
                    -VPA('18。490392088545609858994660377955')
                  
                 
lambda = 2 * mu /(Sqrt(1 + mu * hx ^ 2/3)+ 1)
lambda =
                 
                  
                   
                    
                     
                      -
                     
                      19.796765119155672176257649532142
                    
                   
                   
                    -VPA('19.796765119155672176257649532142')
                  
                 

绘制与第三最高特征值相关的特征。

v = v(:,3);为了k = 1:n u(i(k),j(k))= v(k);结尾u = double(u);冲浪(Xmin:HX:Xmax,Ymin:Hy:Ymax,U');查看(125,30);

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

当您使用符号矩阵时,不建议毫无推荐地增加网格点数,因为符号计算比使用MATLAB双精度矩阵的数值计算显着慢。该示例的这一部分演示了如何使用稀疏双算法,允许改进数值网格。L形区域 ω. 与以前相同的方式设置。通过符号未知数,而不是表示内部点,而是初始化网格值由那些和定义 ω. 通过将边界点和外部点的值设置为零。而不是定义每个内部点的符号表达,而是将模板计算为jacobian,直接将模板矩阵直接设置为稀疏矩阵。

Xmin = -1;xmax = 1;ymin = -1;Ymax = 1;nx = 30;nx = 2 * nx-1;hx =(xmax-xmin)/(nx-1);纽约= 30;ny = 2 * ny-1;hy =(ymax-ymin)/(ny-1); u = ones(Ny,Nx); u(:,1) = 0;%左边界U(1:NY,NX)= 0;%右边界,上部U(NY:NY,NY)= 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,'la');

三个最大特征值是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),得出了Laplace特征值的更准确的近似 λ. 从模具特征值 μ.

mu = d(3,3)
mu = -19.7006.
lambda = 2 * mu /(Sqrt(1 + mu * hx ^ 2/3)+ 1)
lambda = -19.7393.

绘制与第三最高特征值相关的特征。

v = v(:,3);为了k = 1:n u(i(k),j(k))= v(k);结尾冲浪(Xmin:HX:Xmax,Ymin:Hy:Ymax,U');查看(125,30);

注意Matlab功能通过不同的方法计算LAPLACE操作员的特征函数。

膜(3,NX  -  1,8,8);