いくつかのPDE問題を数値的に解決する場合、変数のスケーリングは不可欠ですか?


14

半導体シミュレーションでは、方程式が正規化された値になるようにスケーリングされるのが一般的です。たとえば、極端な場合、半導体の電子密度は18桁以上変動する可能性があり、電界は6桁(またはそれ以上)規模で変化する可能性があります。

しかし、論文はこれを行う理由を実際に示していない。個人的には、実際の単位で方程式を扱って満足していますが、これを行う数値的な利点はありますか、そうでなければ不可能ですか?倍精度では、これらの変動に対処するのに十分な桁があると思いました。


両方の答えは非常に便利です、どうもありがとう!


1
「18桁以上変化する可能性があります」-倍精度で保持される桁数を考慮すると、「倍精度では、これらの変動に対処するのに十分な桁がある」かどうかがわかります...
JM

1
...広場を取り、そして突然あなたが大きさの差の36件の受注を持っていますし、本当の問題は、あなたが、数値アルゴリズムにこれらの番号を供給する場合を開始
クリスチャンClason

回答:


9

(線形)PDEを解くには、方程式を離散化して線形システムを生成し、それを線形ソルバーで解きます。線形ソルバーの収束(速度)は行列の条件数に依存します。変数をスケーリングすると、多くの場合、この条件数が減少し、収束が改善されます。(これは基本的に、対角前提条件を適用することになります。ニコラス・ハイアムの精度と数値アルゴリズムの安定性を参照してください。)

さらに非線形PDEを解くには、スケーリングが収束にも影響する可能性があるニュートン法などの非線形方程式を解く方法が必要です。

通常、すべてを正規化することはほとんど労力を必要としないため、ほとんどの場合、良いアイデアです。


@ArnoldNeumaierがこのトピックについてもっと言いたいことがあると思います。
クリスチャンクラソン

私は(スケーリングされていない変数)を使用しています行列の条件数がある〜1.25。これは合理的ですか?これは、2ノルム法(docs.scipy.org/doc/numpy/reference/generated/…)を使用して計算されます。
-boyfarrell

他に1.25を乗じ何もありません場合@boy、その後、あなたはユニタリ行列を持っていることを思い出している場合は特に、いい条件数だとκ2=1
JM

1
@boyfarrell:私は日常的に10 ^ 7もの条件数で作業し、許容できる結果を得ています。ただし、10 ^ 9よりもはるかに高い条件数は受け入れません。
-jvriesem

9

解が鋭い境界をもつPDEは、解を浮動小数点で表すことができないという問題を引き起こします。これは、ソリューションが特定の物理的意味、たとえば密度(それ自体が0より小さくてはならない)を持っている場合に特に当てはまります。例えば、考えてみましょう、 正確な解は点ごとに正ですが、有限要素で離散化する場合、それはもはや真実ではないかもしれません。同様の質問が最近思いつきました。

εあなたは+あなたは=0 オン Ωあなたは=1 オン Ω

とはいえ、この困難を取り除く変数やドメインのスケーリングはありません。

あなたはα

α2あなたは=fα オン αΩ
αあなたは1
あなたは=f オン Ω
あなたはαバツ:=あなたは1バツ/ααα

4
そして、残りのパラメーターは、ソリューションの定性的挙動を決定するために不可欠でなければなりません。これが、流体力学においてレイノルズ数が非常に重要な理由です。このプロセスは非次元化と呼ばれます。
クリスチャンクラソン

もちろん、このようなパラメーターの等価性を見つけることは、本質的にPDEの対称グループを見つける問題であり、一般に難しい問題です
ラーシャー

2

浮動小数点数を扱うことは、他の多くの側面と同様に、大きな数から小さな数を減算することに関してトリックになる可能性があります。次のようなJohn D. Cooksのブログ記事を読むことをお勧めします

浮動小数点数の構造

オラクルの

すべてのコンピューター科学者が浮動小数点演算について知っておくべきこと

また、最小化または最大化のための特定の数値アルゴリズムでは、数値の安定性のために正規化が必要です。

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