1 Poisson方程式に対するRitz-Galerkin法

「有限要素法への入門」
https://m-katsurada.sakura.ne.jp/ana2026/nonopen/fem.pdf
に従い講義する (パスワードはシラバスの補足に書いてあります)。

前回 (2026/4/28) は、 問題( $ \widehat{\text{V}}$) を書いたところまで (§§3.1 までは解説終了)。

問題 (W)
Find $ u\in X_{g_1}$ s.t.

$\displaystyle \langle u,v\rangle=(f,v)+[g_2,v]$   ($ v\in X$)

における弱形式そのものが見えるサンプル・プログラムを紹介した。
curl -O https://m-katsurada.sakura.ne.jp/program/fem/poisson-kikuchi.edp
cat poisson-kikuchi.edp
FreeFem++ poisson-kikuchi.edp
[
l]poisson-kikuchi.edp
// poisson-kikuchi.edp
// https://m-katsurada.sakura.ne.jp/program/fem/poisson-kikuchi.edp
// 菊地文雄, 有限要素法概説, サイエンス社

int Gamma1=1, Gamma2=2;
border Gamma10(t=0,1) { x=0;   y=1-t; label=Gamma1; }
border Gamma11(t=0,1) { x=t;   y=0;   label=Gamma1; }
border Gamma20(t=0,1) { x=1;   y=t;   label=Gamma2; }
border Gamma21(t=0,1) { x=1-t; y=1;   label=Gamma2; }
int m=10;
mesh Th = buildmesh(Gamma10(m)+Gamma11(m)+Gamma20(m)+Gamma21(m));
plot(Th,wait=true,ps="Th.eps");
savemesh(Th,"Th.msh");
fespace Vh(Th,P1);
Vh u,v;
func f=1;
func g1=0;
func g2=0;
solve Poisson(u,v)=
  int2d(Th)(dx(u)*dx(v)+dy(u)*dy(v))
 -int2d(Th)(f*v)
 -int1d(Th,Gamma2)(g2*v)
 +on(Gamma1,u=g1); // on(Gamma10,Gamma11,u=g1) とも書ける。
plot(u,wait=1,ps="poisson-kikuchi.eps");

//3次元鳥瞰図
//real [int] levels =0.0:0.01:1.0;
//plot(u,dim=3,viso=levels,fill=true,wait=true);

また、“有限要素空間” が、 三角形分割 Th 上の区分的一次多項式 (P1) であることが 垣間見える。

(2026/5/19 加筆) 本日 (No. 5) の講義で以下を補足する。

次のように少し書き直すと、プログラムとの対応が良くなるかもしれない。

$\displaystyle \Omega\kinji\widehat{\Omega}=\bigcup_{k=1}^m e_k.
$

$\displaystyle \widetilde{X}:=\left\{w\relmiddle\vert
\text{$w$\ は$\widehat{\Omega}$\ で連続、各三角形$e_k$\ で1次関数に一致}\right\}
$

とおくと

$\displaystyle \widehat{X}_{g_1}=\left\{\widehat{g_1}+\sum_{j=1}^m\relmiddle\ver...
...\widetilde{X}\relmiddle\vert w=\widehat{g}_1\quad\text{on $\Gamma_1$}\right\},
$

$\displaystyle \widehat{X}=\left\{\sum_{j=1}^m\relmiddle\vert (a_1,\cdots,a_m)\i...
...=\left\{w\in\widetilde{X}\relmiddle\vert w=0\quad\text{on $\Gamma_1$}\right\}.
$

$ \widehat{\Omega}$Th に、 $ \widetilde{X}$Vh に対応する。

$ u$ $ \widehat{X}_{g_1}$ で探すことは、 on(Gamma1,u=g1) で表している。

2026/5/12 は §§3.5 の途中まで。



桂田 祐史