6

与えられた(おそらく非線形の)関数fが常に正であるかどうかをチェックするアルゴリズムはありますか?

私が現在持っているアイデアは、関数の根を見つけ(ニュートンラプソンアルゴリズムまたは同様の手法を使用して、http://en.wikipedia.org/wiki/Root-finding_algorithmを参照)、導関数をチェックするか、最小値を見つけることです。 fの、しかし、それらはこの問題に対する最良の解決策ではないようです。また、求根アルゴリズムには多くの収束の問題があります。

たとえば、Mapleでは、関数verifyでこれを実行できますが、自分のプログラムで実装する必要があります。検証に関するMapleヘルプ:http://www.maplesoft.com/support/help/Maple/view.aspx? path = verify / function_shells Mapleの例:assume(x、'real'); verify(x ^ 2 + 1,0、'greater_than'); ->trueを返します。すべてのxに対してx^2 +1>0があるためです。

[編集]質問の背景:関数$ f $は、回路の右側の微分非線形モデルです。非線形回路は、修正節点解析(MNA)を適用することにより、常微分方程式のセットとしてモデル化できます。簡単にするために、1次元のシステムのみを考えてみましょう。したがって、$ x'= f(x)$ここで、$ f $は、回路、たとえば$ f$は$f(x)= 10x-100x ^ 2 + 200x ^ 3-300x ^ 4 + 100x ^ 5 $(非線形トンネルダイオードのモデル)または$ f =10-2sinになります。 (4x)+ 3x $(ジョセフソンジャンクションのモデル)。

$ x $は有界であり、$ f$は区間$[a、b] \ inR$でのみ定義されます。$f$は連続です。$ f $がリプシッツ定数L>0のリプシッツであると仮定することもできますが、必要がない限り、そうしたくありません。

4

1 に答える 1

3

私があなたの問題を正しく理解しているなら、それは必ずしもそれらを特定することなく、間隔内の(実際の)根の数を数えることになります。実際、ゼロに等しいかどうかに関係なく、正確な数を取得する必要はありません。

関数が多項式の場合、スツルムの定理が当てはまると思います。ウィキペディアの記事では、他に2つの手順が推奨されると主張しているため、それらも確認することをお勧めします。デカルトの符号則が区間で機能するかどうかはわかりませんが、ブダンの定理は機能しているように見えます。

于 2012-05-17T00:51:49.743 に答える