ショートリーウェラー有限差分法


8

Shortley-Weller有限差分法の簡単でわかりやすい説明へのリンクを教えてもらえますか?私はそれをグーグルにしようとしました、しかし私が得るすべては(アクセスできない)学術出版物です。ヴォルフガングハックブッシュの本「楕円微分方程式」の専用の章(4.8)も読んでみましたが、かなり難しいと思いました。ありがとうございました

クリスチャンクラソンへ:答えてくれてありがとう。しかし、まだ理解できていないことがあります。この方法を任意の境界に適用するために何をしなければならないのですか(たとえば、流れの非対称翼など)。


1
答えを編集して、このスキームを実際に実装する基本的な手順を含めました。特に困ったことがあったら、お気軽にコメントしてください。
クリスチャンクラソン2013年

ちなみに、アカウントが2つあるようです。つまり、元の投稿を編集したり、コメントを残したりすることはできません。StackExchangeのスタッフは、それらを一緒にマージできます
クリスチャンクラソン2013年

回答:


8

私の知る限り、このスキームは、境界近くの均一有限ステンシルを非均一ステンシル(少なくとも1つの点が境界上にあるようにシフトされている)に置き換えるだけです。基本的には、任意の形状のドメインを取得し、それをボックスに入れ、ボックスを均一なグリッドで離散化し、ドメイン内に少なくとも1つのネイバーがないグリッドポイントをすべて破棄し、残りのグリッドポイントをドメイン外にシフトします。水平または垂直(どちらか短い方)で境界に配置します。(もちろん、実際の実装ははるかに退屈です。)

境界ノードの隣にあるノードの1つで非均一ステンシルを取得するには、均一ステンシルの導出(の1つ)と同様に進めます。ノードの2次多項式によって(不明)関数を補間し、2番目の派生物。ノードx 1の1次元の場合を考えるだけで十分です。です。その後x1=xh1,x2=x,x3=xh2

Dh2u(x)u(xh1)1(x)+u(x)2(x)+u(x+h2)3(x),

ここで、は、ノードに対応するラグランジュ多項式です。導関数の計算j=Πij(xxi)/(xjxi)

Dh2u(x)=2h1(h1+h2)u(xh1)2h1h2u(x)+2h2(h1+h2)u(x+h2)

主張どおり。(補間多項式のニュートン形式を使用することもできます。これにより、特に高次の微分を簡単に計算できます。)で同じことを行い、ステンシルを合計すると、式(4.8.7)が得られます。y

より詳細な例は、Randy LeVequeの常微分方程式と偏微分方程式有限差分法(たとえば、9ページ)またはこのブログ投稿(任意のおよび場合の係数を計算するためのNumPyコードも含まれています)にあります。これは、モートンとメイヤーズ、偏微分方程式の数値解、セクション3.4 でも詳細に扱われています。時間2h1h2

境界ノードの扱い方は、境界条件によって異なります。ディリクレ条件の場合は、均一メッシュの場合と同様に進めます。ノイマン条件の場合は、上記のアプローチ(不均一補間-現在はと同時に-および微分)を使用して、境界ノードでの正規微分を近似してローカルステンシルを取得します。モートンとメイヤーズの75ページ以降を参照してください。yxy


をだけに置き換えると、、H D H = Δ 時間Δ Hh1,h2hDh=Δhます。ただし、は有限差分、つまりテイラー級数を使用して導出されます。ラグランジュ補間がテイラー級数/有限差分とどのように一致するかを明確にしていただけませんか?Δh
シーケンス

2
@sequence、ステンシルのノードを使用して構築された補間多項式の導関数として有限差分近似を導き出すことができます。したがって、使用したいステンシルのポイントを取り、ラグランジュ多項式を作成して微分し、必要な導関数の近似式を導き出します。
VorKir

@VorKirそれにもかかわらず、これらの近似がテイラー級数近似と一致することは注目に値します。
シーケンス

1
@sequence実際にはありません。テイラー近似は、ある点での関数への線形(二次など)多項式近似であり、補間多項式も同様です。代数の基本定理により、これらは同じでなければなりません。(まだ
疑い深い

@ChristianClason明確にしていただきありがとうございます。確かに、私は両方の近似が一意でなければならない多項式であるという事実、したがって代数の基本定理の適用可能性についてはそれほど注意を払っていませんでした。
シーケンス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.