主要内容

拉普拉斯算子的特征值

这个例子展示了如何解决拉普拉斯算子的特征值问题在一个l型地区。

膜的问题

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

拉普拉斯算子自伴的和消极的,也就是说,只有真正的负特征值 λ 存在。有一个最大的(负面)离散特征值,相应的本征函数 u 被称为基态。在这个例子中, Ω 是一个l型地区,基态与这个地区的l型膜MATLAB®商标。

9分有限差分近似

最简单的方法是近似拉普拉斯算子的特征值问题 Δ u 由有限差分逼近(a钢网在正方形网格点的距离hx x 方向和距离沪元 y 方向。在这个例子中,近似 Δ u 用一笔S_h九个正则网格点的中点 ( x , y ) 。未知的权重 一个 - - - - - - 1 - - - - - - 1 , , 一个 1 1

信谊u (x, y)每股收益a11a10a1_1a01a00a0_1a_11a_10a_1_1信谊hx沪元积极的S_h = a_11 * u (x - Eps * hx y + Eps * hy) +a01 * u (x, y + Eps *沪元)+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 *沪元)+a0_1 * u (x, y - Eps *沪元)+a1_1 * u (x + Eps * hx y - Eps *衔接);

使用符号参数每股收益将这个表达式的权力的扩张hx沪元。知道重量,可以近似的拉普拉斯算子的设置每股收益= 1

t =泰勒(S_h,每股收益,“秩序”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 =公式(多项式系数(t,每股收益,“所有”));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;

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

使用潜艇函数来代替权重计算的值。

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

的表情C (7),C (6),C (4)包含第0、1和3的衍生品u消失。

[C (7)、C (6)、C (4))
ans =
                  
                   
                    
                     
                      (
                     
                      
                       
                        
                         
                          0
                        
                       
                       
                        
                         
                          0
                        
                       
                       
                        
                         
                          0
                        
                       
                      
                     
                     
                      )
                    
                   
                  

表达式C (5)的拉普拉斯算子u

C (5)
ans =
                  

2 x 2 u ( x , y ) + 2 y 2 u ( x , y )

因此,在上面的值权重的计算中,模板S_h接近拉普拉斯算子的秩序hx ^ 2,hy ^ 2对于任何任意参数的值z,前提是z选择的顺序O (1 / hx ^ 2, 1 / hy ^ 2)

包含第四和高阶导数

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

信谊d拉普拉斯= @ (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 )

选择不同的衍生品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

潜艇(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
                       
                      
                     
                    
                   
                  
潜艇(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

因此,你可以选择d = hx ^ = ^为什么2/12 2/12z = 2 * d / (hx hy ^ ^ 2 * 2),这意味着hx =沪元z = 1 / (6 * hx *衔接)。因此,模板S_h接近一个修改过的拉普拉斯算子在正方形网格hx = =为什么h

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

信谊hhx = h;hy = h;d = h ^ 2/12;

取代hx沪元通过h

C =潜艇(C);

取代z的价值,h ^ 1 / (6 * 2)。因为z在MATLAB工作区中不存在,你只能访问它的值存储在吗参数数组中。

C =潜艇(C、参数1 / (6 * h ^ 2));

(1)验证公式。

简化(C (3) - d *拉普拉斯(拉普拉斯(u)))
ans (x, y) =
                  
                   
                    
                     0
                   
                  

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

简化(C (2))
ans =
                  
                   
                    
                     0
                   
                  

因为没有这样的条款存在扩张的模板,这个词 O ( h 3 ) (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 ) )

检查这些术语可以与另一个拉普拉斯算子的力量。然而,与

拉普拉斯(拉普拉斯(拉普拉斯(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 )

显示顺序的表达式 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方向和奇数纽约= 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) *衔接)解决方案的u (x, y)特征值问题 Δ u = λ u

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

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

u (: 1) = 0;%左边界u (1) = 0;%下边界u(1:纽约,Nx) = 0;%对边界,上部u(纽约:纽约,nx) = 0;%对边界,下部u (Ny, 1: nx) = 0;%上限,剩下的部分nx u(纽约:nx) = 0;%上边界,对部分

该地区与 0 < x 1 0 < y 1 不属于 Ω 。设置相应的矩阵的条目(我=纽约+ 1:纽约,j = nx + 1: nx)为零。他们没有进一步的作用,将被忽略。

u(纽约+ 1:纽约,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 )

该地区的内陆点 Ω Ω 对应的指标 ( , j ) 含有未知值 u ( , j ) 这个问题。收集这些未知数向量var

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

关联符号表达式(由模板派生的第一部分本例)与每个索引(即每个未知)。

n =长度(var);陆=符号(0 (n, 1));k = 1: n i =我(k);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 * (i, j) + 2/3 * u (i, j + 1)j - 1 + 1/6 * u(张)+ 2/3 * u(张,j) + 1/6 *(张,j + 1);结束陆=陆/ hx ^ 2;

因为这个表达式是线性的未知元素u(存储在var),您可以把它当作一个矩阵的向量var

陆S_h =雅可比矩阵(var);

你可以治疗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
                          
                         
                        
                       
                      
                     
                     
                      )
                    
                   
                  

因为这个近似你使用一个网格与少量的点,只有领先的数字特征值是正确的。

第三个最高的拉普拉斯算子的特征值l型地区 Ω 是清楚的。确切的拉普拉斯算子的本征函数是函数 u ( x , y ) = ( π x ) ( π y ) (精确的)相关的特征值 - - - - - - 2 π 2 = - - - - - - 1 9 7 3 9 2 。实际上,使用方程(3),可以得到一个更好的拉普拉斯特征值的近似 λ 从模板特征值 μ :

μ= D (3)
μ=
                  
                   
                    
                     
                      
                       - - - - - -
                      
                       18.490392088545609858994660377955
                     
                    
                   
                  
λ= 2 *亩/(√(1 +μ* hx ^ 2/3) + 1)
λ=
                  
                   
                    
                     
                      
                       - - - - - -
                      
                       19.796765119155672176257649532142
                     
                    
                   
                  

情节与第三高相关的本征函数特征值。

v = v (:, 3);k = 1: n u(我(k), J (k)) = v (k);结束u =双(u);冲浪(xmin: hx: xmax ymin::为什么ymax, u ');视图(125年,30);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

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

当你使用符号矩阵,增加网格点的数量大大不推荐,因为符号计算显著低于与MATLAB数值计算双精度矩阵。这部分的示例演示了如何使用稀疏双运算可以完善数值网格。l型区域 Ω 设置一样。而不是表示符号未知内陆点,初始化网格值u的和定义 Ω 通过设置边界点和外部点的值为零。每个内部点,而不是定义一个符号表达式和计算雅可比矩阵的模板,设置模板矩阵直接作为一个稀疏矩阵。

xmin = 1;xmax = 1;ymin = 1;ymax = 1;nx = 30;Nx = 2 * nx-1;hx = (xmax-xmin) / (Nx-1);纽约= 30;纽约= 2 * ny-1;hy = (ymax-ymin) / (Ny-1); u = ones(Ny,Nx); u(:,1) = 0;%左边界u(1:纽约,Nx) = 0;%对边界,上部u(纽约:纽约,nx) = 0;%对边界,下部u (1) = 0;%下边界u (Ny, 1: nx) = 0;%上限,剩下的部分nx u(纽约:nx) = 0;%上边界,对部分u(纽约+ 1:纽约,nx + 1: nx) = 0;(I, J) =找到(u ~ = 0);n =长度(我);S_h =稀疏(n, n);k = 1: n i =我(k);j = (k);S_h (k,我= = + 1 & J = = + 1) = 1/6;S_h (k,我= = + 1 & J = =) = 2/3;S_h (k,我= = + 1 & J = = J - 1) = 1/6;S_h (k,我= = & J = = + 1) = 2/3;S_h (k,我= = & J = =) = 10/3;S_h (k,我= = & J = = J - 1) = 2/3;张S_h (k,我= = & J = = + 1) = 1/6;张S_h (k,我= = & 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)
μ= -19.7006
λ= 2 *亩/(√(1 +μ* hx ^ 2/3) + 1)
λ= -19.7393

情节与第三高相关的本征函数特征值。

v = v (:, 3);k = 1: n u(我(k), J (k)) = v (k);结束冲浪(xmin: hx: xmax ymin::为什么ymax, u ');视图(125年,30);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

注意,MATLAB函数计算拉普拉斯算子的形式不同的方法。

膜(3、nx - 1、8、8);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

另请参阅

功能