困難な方程式系を数値的に解く


10

数値的に解きたいの非線形方程式のシステムがあります。n

f = f 1f n

f(x)=a
f=(f1,,fn)x=(x1,,xn)

このシステムには、取り扱いを特に困難にする多くの特性があります。より効率的にシステムに対処する方法についてのアイデアを探しています。

なぜシステムが難しいのですか?

  • 関数はこれに似ています(もちろん多次元です):

    Mathematicaグラフィック

    彼らは滑らかな変化の領域で区切られた平らな台地を持っています。2Dでは、1つのに対して次のようなものを想像できます。fi

    Mathematicaグラフィック

    一般に、各は、次元超平面の周りの滑らかな変化によって分離された2つのプラトーがあります。 n 1fin1

    このような関数は、導関数がプラトーで実質的にゼロになるため、ニュートンのような方法で処理することが困難です。多次元では、いずれにもfi n=1プラトーがない領域を簡単に見つけることができません。問題を解決できるとしたら。二分法は場合にうまく機能しますが、複数の次元にうまく一般化できません。n=1

  • 関数の計算は非常に遅いです。可能な限り少ない反復で根の妥当な近似を得ることができる方法を探しています。

  • 関数はモンテカルロ法で計算されます。これは、それらが計算されるたびに、わずかに異なるランダム値を取得することを意味します。デリバティブは推定が困難です。ルートに十分近づくと、ノイズが支配的になり始め、精度を上げるために平均化を使用する必要があります。理想的には、この方法を同等の確率近似バージョン(たとえば、ニュートン→ロビンスモンロ)に一般化できるはずです。

  • システムは高次元です。は10〜20の大きさにすることができます。場合、効果的な方法は、おそらく次のようになります。トライによって定義された輪郭追従するととどこが交差参照します。これがどのように高次元に一般化されるかは明らかではありません。n = 2 f 1x 1x 2= 0 f 2x 1x 2= 0nn=2f1(x1,x2)=0f2(x1,x2)=0

システムについて他に何を知っていますか?

  • (理論的な結果から)正確に1つのルートがあります。

  • 高原のの値を知っています(どのでも0と1だとしましょう)。 Ifii

  • xは私をfはI... X I... )は、X I - X J Ifiは特別な関係にあります  は、がからするにつれて、1から0に単調に変化します。これは、他の固定値にも当てはまります。xifi(,xi,)xixji


解が存在しなければならないすべての変数の下限と上限を知っていますか?これらの境界が狭いほど良いです。プラトーと困難を示す、必要なだけ高次元の決定論的な例を示すことができますが、モンテカルロシミュレーションを必要とせず、関数にランダムエラーがありません(導関数を計算できる場合のボーナスポイント)。このような決定論的な例の目的は、問題の難しさを理解することであり、モンテカルロ評価が実際の問題の最終的な解決に使用されないことは言うまでもありません。
マークL.ストーン

@ MarkL.Stone Bounds:私はそれらを知りません。しかし、私は推測することができます。推測は、それらが正しいことを確信するためにかなり広範囲である必要があります。例:例を考え、明日質問を編集します。私がここで説明したものよりもの真の形式について明確な説明はありません。そのため、私の最初の例は、実際の問題を正確に表していない可能性があります。しかし、私はフェルミ関数(シグモイド)でできたものをまとめて、できる限り多くの本当の問題の困難さを持たせるようにします。f
Szabolcs 2017年

私はそれを見るのを楽しみにしています
マークL.ストーン

回答:


1

単一の根があり、制約がないので、それを最適化の問題として提起できるかもしれません。元の関数の二乗の(各次元に沿った)合計を最小化します。

古典的な最適化手法は失敗する可能性がありますが、遺伝的アルゴリズムやCME-ES(共変などの行列適応-進化的戦略)などのヒューリスティック手法が機能する可能性があります。


それは確かに行くためのアプローチです。特に、あなたの目的のために特別に開発され、非常に堅牢なSPSAアルゴリズムに注目します。
Wolfgang Bangerth 2017年

2
OPは、関数の評価には非常にコストがかかると述べています(関数評価にモンテカルロシミュレーションを適用しています)。それは遺伝的アルゴリズムや他の進化的アルゴリズムに非常に大きな問題を引き起こしていませんか?それらは「自明な並列」であり(通常はMCでもあり)、大規模な並列コンピューティングが可能になる可能性がありますが、ここに行くのに最適な方法ですか?
GertVdE 2017年

@WolfgangBangerthありがとうございます。正しいソリューションのように聞こえます。SPSAを見てみましょう。
Szabolcs 2017年

1
高価な関数評価について:遺伝的アルゴリズムと関連するヒューリスティック手法は、従来の方法よりも多数の関数評価を必要とする傾向があることは事実です。利点は、ヒューリスティックな方法が1)問題固有の方法を必要とするか、2)数値問題のために失敗する問題を解決できることが多いことです。この例では、目的関数の確率的性質と一部の次元に沿った小さな勾配のために、従来の方法では問題が発生する可能性があります。SPSAは、この問題の有力な候補手法のように見えます。
MattKelly 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.