。
平等内の领域 の境界 にに固定されている膜について考え考えその変位考え は,固有値问题 によってによって表されここここ, はラプラスラプラス子, はスカラーパラメーターです。すべてすべて における境界条件は, です。
ラプラス演算子は自己かつかつ负定値です。つまり,负负実数没有値 のみが现出者。(负の)最大离散固有关が,対応する含有相关数 は“基极状态”と呼ばれます。この例では, はl型领域であり,この领域に关键词られられ基于た状态状态(つまりmatlab®ロゴ)ににます。
固有値问题を解く単简な方法は,ラプラシアン
を,
方向の距离HX.
と
方向の距离HY.
の点から成る正方格子において,有限又分近似(“ステンシル”)により近似することです。このこの例で,
を,中点
周辺にある9个のの一定间隔の格子点の和S_H.
を使使し近似します。重重
はは数です。
Syms.U(x,y)eps.A11A10A1_1A01A00A0_1A_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でなければなりん。
と
を除く你
ののの关关数を0に置き换えててを抽出しし。
と
を1に置き换えます。これこれ,テイラーテイラー开が计算するに简介され,以下の6つの线路方程式が导かます。
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.
には9つの未知の重みがあるためためため,你
ののの3〕关关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;
9つの未知の重み,得られた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,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));
你
の0次,1次および3次の相关数值含む式C(7)
那C(6)
およびC(4)
ははます。
[C(7),C(6),C(4)]
ans =.
式C(5)
は你
のラプラシアンになります。
C(5)
ans =.
したがって,上部で计算れれの値値を使使使使,ステンシルS_H.
は,任意のパラメーターZ.
のどの値についても最大大数HX ^ 2.
那hy ^ 2
ののラプラシアンを近似ししただし,Z.
には数O(1 / hx ^ 2,1 / hy ^ 2)
が选ばれているいる合并限制ます。
解に自由パラメーターZ.
がが含まれてています,你
の4次导关键を含むC(3)
は,Z.
の适切なによって0にすることができません。别の选択肢て,ラプラス演算子の2乘ののにににににありありあり
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.
の3次の项についてますます。
简化(C(2))
ans =.
ステンシルの展开にはこの项项ががががががためため,(1)の项 は事実上,参数 になります。ステンシルの4次の项について考えます。
因子(简化(C(1))))
ans =.
しかし,以しますますますもますますますますますもますますますししししししもももさらにさらにさらにしししもしししししし
拉普拉斯(拉普拉斯(拉普拉斯(U)))
ans(x,y)=
次 の式が一致し,ラプラス演算子の3乘ののとしてとしてできががいいできががていい
邻接する格子空间の距离がH
の正方格子で,上记のようにををしたたた合,以下が得ます。
この展开を,固有値问题 に対する数据的なアプローチとして利用します。 の驰数量没有値方向程进程し。
この方程式式の左辺,ステンシル でていいいいていいいいいていいいててていいい使使使使使使と, を満たすステンシルの数据的没有値 は,以下により,ラプラスラプラス子の固固 のの近似でなけれなければなりませませ
特价の に対して, を解き,より适切なラプラス固値の近似をます。 の2次方程式式解に, の结合に になるになるの要件によって正式牌号のの平方英定められます。
3つの単位正方形で成されるl型领域 ををます。
领域の角の座标値を定义します。
Xmin = -1;xmax = 1;ymin = -1;Ymax = 1;
X
方向の位数(nx = 2 * nx-1
)の格子点とy
方向の位数(ny = 2 * ny-1
)の格子点でで成さ正方グリッドグリッド考えます。
nx = 6;nx = 2 * nx-1;hx =(xmax-xmin)/(nx-1);纽约= 6;ny = 2 * ny-1;hy =(ymax-ymin)/(ny-1);
纽约
行NX.
列のシンボリック行列
を作物しし。そのその你(我,j)
は,固有値问题
の解U(x,y)
の値U(Xmin +(J-1)* HX,YMIN +(I - 1)* HY)
ををます。
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)
を0に设定します。これらこれらの影响はない,无视します。
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));
3つの最固ははられられます与え与えられます。
[D(1,1),D(2,2),D(3,3)]
ans =.
この近似では,点码が少ない格子を使しため,固しためです。
l型型. で3番目に高度ラプラスラプラス子の固値は,厳密にわかっています。ラプラス演算子の厳密なな固有关は,(厳密な)固有値 に关键词付けた关联 です。実际実际,上行方程式(3)をを使する,ステンシルの没有値 からより适切なラプラスラプラスのの固 の近似を导出できます。
mu = d(3,3)
穆=
lambda = 2 * mu /(Sqrt(1 + mu * hx ^ 2/3)+ 1)
lambda =
3番目に高度没有値に关键词付けられられ固有关。
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型领域
を设定します。シンボリックシンボリックな未知でで内侧の点を表す,格子の値你
を1で初初,境界点と外侧の点0に设定して
を定义します。内侧内侧の各点のシンボリック式を定义してステンシルをヤコビアンとしてするのではなくのではなくのではなくのではなくのではなくのではなくのではなくのではなくのではなくのではなくのではなくのではなくのではなくしするするする列列を直接计算するする列列直接直接计算する列列を直接
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.
をを用して3つの最大全无于値を计算します。
[v,d] = eigs(s_h,3,'la');
3つの最大固有値はdの最初の対角要素です。
[D(1,1),D(2,2),D(3,3)]
ans =.1×3-9.6493 -15.1742 -19.7006
D(3,3)
は厳密な没有値
に近い値です。上行方程式(3)を使用すると,ステンシルの别无値
からより正确なラプラスののの値
の近似を导出できます。
mu = d(3,3)
mu = -19.7006.
lambda = 2 * mu /(Sqrt(1 + mu * hx ^ 2/3)+ 1)
lambda = -19.7393.
3番目に高度没有値に关键词付けられられ固有关。
v = v(:,3);为了k = 1:n u(i(k),j(k))= v(k);结尾冲浪(Xmin:HX:Xmax,Ymin:Hy:Ymax,U');查看(125,30);
matlab关节膜
は,〖suals〗。でうことをを注意してててのうことを别のててててううことにに注意てて
膜(3,NX - 1,8,8);