此示例显示了如何解决LAPPAlt操作员在L形区域上的特征值问题。
考虑一个固定在边界的膜 一个地区 在飞机上。它的流离失所 由特征值问题描述 , 在哪里 是拉普拉斯州的运营商和 是标量参数。边界条件是 对所有人 。
拉普拉斯操作员是自伴和负面的,即只有真正的消极特征值 存在。存在最大(负)离散的特征值,相应的特征函数 被称为基地。在这个例子中, 是L形区域,与该区域相关的地位是L形膜,其是MATLAB®标识。
最简单的特征值问题的方法是近似拉普拉斯人
通过有限差分近似(a模版)在带距离的点的平方网格上HX.
在
方向和距离HY.
在
方向。在这个例子中,近似
总和S_H.
中点周围的九个常规网格点
。未知数是重量
。
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.
和衍生物的你
关于
和
。自从S_H.
代表
,所有其他衍生物的系数你
必须是零。通过替换所有衍生物来提取系数你
, 除了
和
,换0。更换
和
到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 =.
参数
参数=
使用subs
通过计算值替换权重。
c =简化(潜艇(c));
表达式C(7)
那C(6)
, 和C(4)
包含0th,第1和第3衍生物你
消失。
[C(7),C(6),C(4)]
ans =.
表达方式C(5)
是拉普拉斯人你
。
C(5)
ans =.
因此,在上面计算的权重的值,模板S_H.
近似拉普拉斯人达到订单HX ^ 2
那hy ^ 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)=
挑选不同的衍生品你
在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 =.
子(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 =.
子(C(3),[差异(u,x,x,x,x),diff(u,x,x,y,y),diff(u,y,y,y,y)],[0,0,1])== d
ans =.
因此,你可以选择D = HX ^ 2/12 = hy ^ 2/12
和z = 2 * d /(hx ^ 2 * hy ^ 2)
,暗示hx = hy.
和Z = 1 /(6 * HX * HY)
。因此,模板S_H.
在方形网格上近似改进的拉普拉斯hx = hy = h
。
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)=
现在,考虑第三顺序HX.
那HY.
。
简化(C(2))
ans =.
由于在模板的扩展中没有存在这些条款,因此术语 在(1)中实际上是顺序 。考虑模板的第四顺序。
因子(简化(C(1))))
ans =.
检查这些术语是否可以用LaPlace运算符的另一个电源识别。但是,比较
拉普拉斯(拉普拉斯(拉普拉斯(U)))
ans(x,y)=
表明订单的表达式 不能被识别为拉普拉斯算子的第三个电源的一些倍数,因为系数不能匹配。
对于具有距离的方形网格H
邻近网格点与上述权重的选择之间,您得到:
使用此扩展为特征值问题的数字方法 。添加一些倍数 到特征值方程。
该等式的左侧由模板近似地近似 。因此,使用(2),数字特征值 模板令人满意 必须是特征值的近似值 拉普拉斯运营商的
给予 ,解决 获得Laplace特征值的更好近似。注意,在二次方程的解决方案中 方形的正确迹象是由要求提供的 为了 。
考虑一个L形区域 由三个单位正方形组成。
定义该区域角的坐标值。
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]);
界限 对应以下索引:
左边界对应于(i = 1:ny,j = 1)
。
下边界对应于(i = 1,j = 1:nx)
。
正确的边界对应于(i = 1:ny,j = nx)
和(i = ny:ny,j = nx)
。
上边界对应于(i = ny,j = 1:nx)
和(i = ny,j = nx: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;%上边界,右侧部分
该地区有
和
不属于
。设置相应的矩阵条目(i = ny + 1:ny,j = nx + 1:nx)
零。他们没有发挥其他作用,将被忽略。
U(NY + 1:NY,NX + 1:NX)= 0;
问题的未知是以下矩阵条目:
你
你=
该地区的内部点
对应于索引
包含未知值
问题。在向量中收集这些未知数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 =.
由于对于此近似来,您使用具有少量点的网格,因此只有特征值的前导数字是正确的。
LAPLACE操作员在L形区域上的第三位最高特征值 究竟知道。拉普拉斯算子的确切特征功能是功能 与(确切)特征值相关联 。实际上,使用上面的等式(3),您可以获得Laplace特征值的更好近似值 从模具特征值 :
mu = d(3,3)
穆=
lambda = 2 * mu /(Sqrt(1 + mu * hx ^ 2/3)+ 1)
lambda =
绘制与第三最高特征值相关的特征。
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)
近似于精确的特征值
。使用上面的等式(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);