タグ付けされた質問 「finite-difference」

有限差分による導関数の離散化、およびその偏微分方程式の数値解への応用について説明します。

2
完全に閉じたノイマン境界条件(境界での反射)を伴う有限差分によって移流方程式を解くときの奇妙な振動
私は移流方程式を解こうとしていますが、境界から波が反射すると、解に奇妙な振動が現れます。私が原因とその回避方法を知りたいと思う前に誰かがこの人工物を見たなら! これはアニメーションGIFで、別のウィンドウで開いてアニメーションを表示します(キャッシュされているのは一度だけ再生されるか、一度に再生されないかです!) 波が最初の境界から反射し始めるまで、伝播は非常に安定しているように見えることに注意してください。ここで何が起こると思いますか?数日かけてコードを再確認しましたが、エラーが見つかりません。奇妙なのは、2つの伝播ソリューションがあるように見えることです。1つはポジティブなソリューションで、もう1つはネガティブなソリューションです。最初の境界からの反射後。ソリューションは、隣接するメッシュポイントに沿って移動しているようです。 実装の詳細は次のとおりです。 移流方程式 ∂あなたは∂t= V ∂あなたは∂バツ∂u∂t=v∂u∂x\frac{\partial u}{\partial t} = \boldsymbol{v}\frac{\partial u}{\partial x} ここで、は伝播速度です。vv\boldsymbol{v} Crank-Nicolsonは、が空間でゆっくりと変化する(フーリエ変換時に低周波数成分のみを含む場合、移流方程式の無条件(pdfリンク)の 安定した離散化です。u (x )u(x)u(x) 私が適用した離散化は、 ϕn + 1j− ϕnjΔ トン= V [ 1 - β2 Δ X(φnj + 1− ϕnj − 1) + β2 Δ X(φn + 1j + 1− ϕn + 1j − 1) …

5
等間隔のポイントの動作が悪いのはなぜですか?
実験の説明: ラグランジュ補間では、正確な方程式がNNNポイント(多項式次数N− 1N−1N - 1)でサンプリングされ、101ポイントで補間されます。ここでNNN各時刻2から64まで変化させL1L1L_1、L2L2L_2及びL∞L∞L_\inftyエラープロットを用意します。関数が等間隔の点でサンプリングされると、エラーが最初に低下し(NNNが約15未満になるまで発生します)、その後がさらに増加するとエラーが増加することがわかりNNNます。 一方、初期サンプリングがルジャンドルガウス(LG)ポイント(ルジャンドル多項式の根)、またはルジャンドルガウスロバット(LGL)点(ロバート多項式の根)で行われた場合、エラーはマシンレベルに低下し、とき増やすNNNさらに増加します。 私の質問は、 等間隔のポイントの場合、正確にはどうなりますか? 多項式の次数を増やすと、特定のポイントの後にエラーが発生するのはなぜですか? これはまた、WENO / ENO再構築にラグランジュ多項式を使用して等間隔の点を使用すると、滑らかな領域でエラーが発生することを意味しますか?(まあ、これらは(私の理解のために)架空の質問にすぎません。WENOスキームに対して15以上の次数の多項式を再構築することは実際には合理的ではありません) さらなる詳細: 近似関数: f(x )= cos(π2 x )f(x)=cos⁡(π2 x)f(x) = \cos(\frac{\pi}{2}~x)、X ∈ [ - 1 、1 ]x∈[−1,1]x \in [-1, 1] N個の等間隔(および以降のLG)ポイントにバツxx分割されます。関数は毎回101ポイントで補間されます。NNN 結果: a)等間隔の点(補間N= 65N=65N = 65): b)等間隔のポイント(エラープロット、ログスケール): a)LGポイント(補間N= 65N=65N = 65): b)LGポイント(エラープロット、ログスケール):

2
連続方程式の良い有限差分
次の方程式の優れた差分離散化は何でしょうか: ∂ρ∂t+ ∇ ⋅ (ρ U ) = 0∂ρ∂t+∇⋅(ρu)=0\frac{\partial \rho}{\partial t} + \nabla \cdot \left(\rho u\right)=0? 1Dケースを使用できます。 ∂ρ∂t+ ddバツ(ρ U ) = 0∂ρ∂t+ddx(ρu)=0\frac{\partial \rho}{\partial t} + \frac{d}{dx}\left(\rho u\right)=0 何らかの理由で、私が見つけることができるすべてのスキームは、ラグランジアン座標での定式化です。とりあえずこのスキームを思いつきました(jインデックスは無視してください): ρn + 1私、j- ρn私、jτ+ 1hバツ(ρn + 1i + 1 、j+ ρn + 1私、j2あなたはnバツI + 1 / 2で、J- ρn + 1私、j+ ρn …

5
不均一にサンプリングされた関数を数値的に区別するにはどうすればよいですか?
標準の有限差分式を使用して、等間隔の関数値があるという期待の下で導関数を数値的に計算できるため、は定数です。不等間隔のポイントがある場合、隣接ポイントのペアごとに変化するようになった場合はどうなりますか?もちろん、として一次導関数を計算できますが、高次の数値微分公式はありますグリッドサイズの変動に適応できる精度H ≡ X K + 1 - X k個の時間F '(X )≈ 1f(xk)f(xk)f(x_k)H ≡ Xk + 1− xkh≡xk+1−xkh \equiv x_{k+1} - x_khhhf′(X )≈ 1hk[ f(xk + 1)− f(xk)]f′(x)≈1hk[f(xk+1)−f(xk)]f'(x) \approx \frac{1}{h_k}[f(x_{k+1}) - f(x_k)]

3
Scientific Pythonの有限差分法の推奨事項
私が取り組んでいるプロジェクト(双曲線PDEの場合)では、いくつかの数値を見て、動作の大まかなハンドルを取得したいと思います。しかし、私はあまり良いプログラマーではありません。 Scientific Pythonで有限差分スキームを効果的にコーディングする方法を学習するためのリソースをお勧めできますか(学習曲線が小さい他の言語も歓迎します)? この推奨事項の対象者(私)のアイデアを提供するには: 私は訓練によって純粋な数学者であり、有限差分スキームの理論的な側面にある程度精通しています 私が助けが必要なのは、コンピューターに計算したいものを計算させる方法です。特に、他の人がすでに行った労力をあまり重複させないように(車輪を再発明しないようにパッケージは既に利用可能です)。(私が避けたいもう一つのことは、目的に合ったデータ構造が確立されているときに、何かを手作業でコーディングすることです。) コーディングの経験があります。しかし、Pythonには何もありませんでした(したがって、別の言語を学習するための優れたリソースがあるかどうかは気にしません[たとえば、Octave])。 サンプルコードのコレクションと同様に、書籍とドキュメントの両方が役立ちます。

4
均一グリッドと非均一グリッド
おそらく学生レベルの質問ですが、私はそれを自分自身にはっきりさせることはできません。数値的手法で不均一なグリッドを使用する方が正確なのはなぜですか?の形式のPDEに対する有限差分法のコンテキストで考えています。そして、ポイントソリューションに興味があると仮定します。そのため、たとえば3点近似を使用して均一なグリッドで2次導関数を近似すると、誤差は2次になることがわかります。その後、マッピングを使用して不均一なグリッドを構築し、導関数を近似するために使用される3つのポイントの係数を見つけることができます。テイラー展開を行い、2次になる導関数の境界を再度取得できます。ここで、x ∗ O (h 2)O (h 2)hあなたはt(x 、t )= ux x(x 、t )あなたはt(バツ、t)=あなたはバツバツ(バツ、t)u_t(x,t)=u_{xx}(x,t)バツ∗バツ∗x^{\ast}O (h2)O(h2)O(h^2)O (h2)O(h2)O(h^2)hhhは、不均一グリッドへのマッピングを取得した均一グリッド上の距離です。どちらの推定値にも導関数が含まれており、誤差推定の対応する導関数の大きさに依存するため、解が不均一グリッドでより正確になる理由は明らかではありませんか?

2
ノイマン境界条件でポアソン方程式有限差分行列を書く
有限差分アプローチを使用してポアソン方程式を解くことに興味があります。ノイマン境界条件で行列方程式を書く方法をよりよく理解したいと思います。誰かが以下をレビューしますか、それは正しいですか? 有限差分行列 ポアソン方程式 ∂2u (x )∂バツ2= d( x )∂2あなたは(バツ)∂バツ2=d(バツ) \frac{\partial^2u(x)}{\partial x^2} = d(x) 有限差分行列方程式で近似できます。 1(Δは、xは)2M ∙ u^= d^1(△バツ)2M∙あなたは^=d^ \frac{1}{(\Delta x)^2} \textbf{M}\bullet \hat u = \hat d ここで、は行列で、およびは(列)ベクトルです。 N × N uは dは 1 × NのMM\textbf{M}n × nn×nn \times nあなたは^あなたは^\hat ud^d^\hat d1 × n1×n1 \times n ノイマン境界条件の追加 ノイマン境界条件は、境界で既知のフラックスを強制します(ここでは、境界がである左側に適用します)。x = 0バツ=0x=0 ∂u …

2
移流方程式の陰的有限差分スキーム
移流方程式のための多数のFD制度がありウェブで議論します。例:http: //farside.ph.utexas.edu/teaching/329/lectures/node89.html∂T∂t+u∂T∂x=0∂T∂t+u∂T∂x=0\frac{\partial T}{\partial t}+u\frac{\partial T}{\partial x}=0 しかし、次のような「暗黙の」風上スキームを提案する人はいません。 。Tn+1i−Tniτ+uTn+1i−Tn+1i−1hx=0Tin+1−Tinτ+uTin+1−Ti−1n+1hx=0\frac{T^{n+1}_i-T^{n}_i}{\tau}+u\frac{T^{n+1}_i-T^{n+1}_{i-1}}{h_x}=0 私が見た風上のスキームはすべて、空間微分の前のタイムステップのデータを扱っていました。その理由は何ですか?古典的な風上のスキームは、私が上で書いたものと比較してどうですか?

4
変数を並べ替えて最小帯域幅のバンド行列を生成する方法は?
私は有限差分によって2Dポアソン方程式を解こうとしています。このプロセスでは、各方程式に変数がしかないスパース行列を取得します。たとえば、変数が場合、離散化の結果は次のようになります。555UUU うんi−1,j+Ui+1,j−4Ui,j+Ui,j−1+Ui,j+1=fi,jUi−1,j+Ui+1,j−4Ui,j+Ui,j−1+Ui,j+1=fi,jU_{i-1,j} + U_{i+1,j} -4U_{i,j} + U_{i,j-1} + U_{i,j+1} = f_{i,j} 私はこのシステムを反復法で解くことができることを知っていますが、変数を適切に順序付ければ、直接法(すなわち、ガウス消去法w / oピボット)。これは可能ですか?他の、おそらく構造化されていないスパースシステムでこれを行うための戦略はありますか?

4
有限差分法によって離散化された移流方程式の境界条件
有限差分法を使用してPDEを解くときに境界条件を選択する方法を説明するのに役立つリソースを見つけようとしています。 私が現在アクセスできるすべての本とメモは、同様のことを言っています: 境界が存在する場合の安定性を管理する一般規則は、入門テキストとしては複雑すぎます。彼らは洗練された数学的な機械を必要とします (A.イセル微分方程式の数値解析の最初のコース) たとえば、移流方程式に2段階のリープフロッグ法を実装しようとする場合: あなたはn + 1私= あなたn − 1私+ μ (uni + 1- Uni − 1)あなたは私n+1=あなたは私n−1+μ(あなたは私+1n−あなたは私−1n)u_i^{n+1} = u_i^{n-1} + \mu (u_{i+1}^n - u_{i-1}^n) MATLABを使用して M = 100; N = 100; mu = 0.5; c = [mu 0 -mu]; f = @(x)(exp(-100*(x-0.5).^2)); u = zeros (M, N); x = …

4
模倣有限差分法の実例
インターネットで簡潔な説明を見つけようとする限り、模倣の有限差分の概念や、標準の有限差分との関係を把握することはできません。古典的な線形PDE(双曲線、楕円、および放物線)に対してそれらがどのように実装されるかの簡単な例を見ると、本当に役立ちます。

3
差分法で境界条件を課す方法
高次の中心差分近似を使用したいときに問題があります: (- Ui + 2 、j+ 16 ui + 1 、j− 30 ui 、j+ 16 ui − 1 、j- Ui − 2 、j12)(−あなたは私+2、j+16あなたは私+1、j−30あなたは私、j+16あなたは私−1、j−あなたは私−2、j12)\left(\frac{-u_{i+2,j}+16u_{i+1,j}-30u_{i,j}+16u_{i-1,j}-u_{i-2,j}}{12}\right) ポアソン方程式の (あなたx x+ あなたyy= 0 )(あなたはバツバツ+あなたはyy=0)(u_{xx}+u_{yy}=0)境界条件が次の正方形領域の場合: u(0,y)=u(x,0)=u(x,1)=0,u(1,y)=sinπyu(0,y)=u(x,0)=u(x,1)=0,u(1,y)=罪⁡πyu(0,y)=u(x,0)=u(x,1)=0,u(1,y)=\sin \pi y Δx=Δy=0.1Δx=Δy=0.1\Delta{x}=\Delta{y}=0.1 ドメインの内側のポイントの値を取得する場合、この近似を考慮して、いくつかのポイントは境界の外側のポイントに依存します。たとえば、には、の値が境界の外側にある必要があります。この場合、誰でも助けてくれますか? u1,1u1,1u_{1,1}ui−2,j=u−1,0ui−2,j=u−1,0u_{i-2,j}=u_{-1,0}

3
有限差分法を使用するときに曲線境界条件を処理する方法は?
私は自分でPDEを数値的に解くことについて学ぼうとしています。 FDMはPDEの多くの数値的手法の基礎であると聞いたので、私はしばらくの間、差分法(FDM)から始めました。これまでのところ、FDMの基本的な理解があり、ライブラリとインターネットで見つけた資料を使用して、通常の地域にある簡単なPDEのコードを書くことができましたが、奇妙なことに、これらの資料はほとんど話せませんこのような不規則な、湾曲した、奇妙な境界の処理について。 さらに、曲線の境界に対処する簡単な方法を見たことはありません。たとえば、これまで見てきた最も詳細な議論(主にp71の3.4およびp199の6.4 )を含む書籍「偏微分方程式の数値解法-はじめに(Morton K.、Mayers D)」は、私にとって本当に面倒でイライラする外挿。 それで、タイトルが尋ねたように、湾曲した境界に関して、FDMを使用するとき、通常人々はそれをどのように扱いますか?言い換えれば、最も一般的な治療法は何ですか?それともPDEのタイプに依存しますか? (少なくとも比較的)エレガントで高精度の曲線境界に対処する方法はありますか?または、それは避けられない痛みですか? 私も尋ねたいのですが、人々は実際に湾曲した境界に実際にFDMを使用していますか?そうでない場合、一般的な方法は何ですか? 任意の助けをいただければ幸いです。

3
移動メッシュを生成する背後にある基本原則は何ですか?
移流拡散問題のための移動メッシュの実装に興味があります。アダプティブムービングメッシュメソッドは、有限差分を使用して1Dのバーガー方程式に対してこれを行う方法の良い例です。誰かが、移動するメッシュで有限差分を使用して1D移流拡散方程式を解くための実用的な例を提供できますか? たとえば、保守的な形式では、方程式は ut=(a(x)u+dux)xut=(a(x)u+dux)x u_t = (a(x)u + du_x)_x ここでは速度(空間の関数)です。初期条件u (0 、x )は、(たとえば)左から右へ(たとえば、パイプに沿って)移動するフロー種を指定できます。この場合、初期条件には急勾配があります。a(x)a(x)a(x)u(0,x)u(0,x)u(0,x) 移動メッシュの等分布問題をどのように解決する必要がありますか(おそらくDe Boorのアルゴリズムまたは他のアプローチを使用して)。これを自分でPythonで実装したいので、もしあなたの答えがすぐにコードに変換できればいいのです! バウンティ前の古い質問 システムのプロパティに基づいて適応メッシュを生成するための基本的なアプローチは何ですか?勾配が大きい場所の尺度としてフラックスを使用する必要がありますか? 反復(タイムスイープ)ソリューションを模索しているためです。古いグリッドから新しいグリッドに補間することが重要だと思いますが、通常のアプローチは何ですか? 単純な問題(移流方程式など)の有効な例を確認したいと思います。 問題の詳細についての少しの背景。私は方程式の1D結合システムをシミュレートしています、 ∂あなたは∂t= aあなたは∂2あなたは∂バツ2+ bあなたは∂あなたは∂バツ+ fあなたは(x 、u 、v 、w )∂v∂t= av∂2v∂バツ2+ bv∂v∂バツ+ fv(x 、u 、v 、w )∂w∂t= aあなたは∂あなたは∂バツ+ av∂v∂バツ+ fw(x 、u 、v 、w )∂あなたは∂t=aあなたは∂2あなたは∂バツ2+bあなたは∂あなたは∂バツ+fあなたは(バツ、あなたは、v、w)∂v∂t=av∂2v∂バツ2+bv∂v∂バツ+fv(バツ、あなたは、v、w)∂w∂t=aあなたは∂あなたは∂バツ+av∂v∂バツ+fw(バツ、あなたは、v、w) \frac{\partial u}{\partial t} = a_u\frac{\partial^2 u}{\partial x^2} + b_u\frac{\partial …

2
差分法のフォンノイマン安定性解析の代替
私は、結合された1次元多孔質弾性方程式(biotのモデル)の解決に取り組んでいます。 −(λ+2μ)∂2u∂x2+∂p∂x=0−(λ+2μ)∂2u∂x2+∂p∂x=0-(\lambda+ 2\mu) \frac{\partial^2 u}{\partial x^2} + \frac{\partial p}{\partial x} = 0 ドメイン上でΩ=(0、1)と境界条件: ∂∂t[ γp + ∂あなたは∂バツ] - κη[ ∂2p∂バツ2] =q(x 、t )∂∂t[γp+∂あなたは∂バツ]−κη[∂2p∂バツ2]=q(バツ、t)\frac{\partial}{\partial t} \left[ \gamma p + \frac{\partial u}{\partial x}\right] -\frac{\kappa}{\eta}\left[\frac{\partial^2 p}{\partial x^2}\right] =q(x,t)Ω = (0 、1 )Ω=(0、1)\Omega=(0,1) でのx=0とU=0、∂PP = 0 、(λ + 2 μ )∂あなたは∂バツ= − u0p=0、(λ+2μ)∂あなたは∂バツ=−あなたは0p=0, (\lambda …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.