問題タブ [polynomial-approximations]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
554 参照

python - N 次元の高次多項式補間

4D 空間での補間に関して、私が直面している複雑な問題についていくつかの手がかりを探しています。

3 次元空間の 340 点で構成されるデータセットがあります (3 つの変数 - A、B、C があり、それぞれ 340 要素で定義されています)。各ポイントは、出力変数の特定の値によって識別されます。だから、一般的に私は持っています

f(A、B、C) = D

設計空間の各ポイントの D の値を予測するために、データセットを補間する必要があります。私がしたことは、numpy メソッド linalg.lstsq を介して多項式mの係数を取得するための小さなスクリプトを作成することでした。

次に、評価関数を使用して、設計空間のすべての点で関数の値を取得しました。

私のデザイン スペースは 3 次元なので、デザイン スペースのすべての点 X、Y、Z を含む 3 つの 3D マトリックスを polyval 関数に渡しました。fは、出力 Dの3D 行列です。この行列の各点は、設計空間の各点で polyfit で見つかった多項式を評価して計算された D の値です (トリッキーな文で申し訳ありません)。

次に、この 3D 設計空間のスライスの等高線図をプロットします。Z の 1 つの値を選択し、D の値に基づくコンター レベルを使用して、X、Y によって形成される 2D 平面をプロットします。問題は、結果が期待したものと異なることです。等高線図はほぼ同じ色ですが、1 つの隅に多少の違いがあります。

私はインターネット上のあらゆる場所を検索しました。また、Python wiki では、2D の場合にのみ機能する関数が提案されています。誰もこの種の問題に直面したことがありますか? この N 次元多項式の評価/定義で何かが欠けていますか?

ご清聴ありがとうございました。

フェデリコ

0 投票する
1 に答える
147 参照

matlab - fminunc を使用した次数が 2 を超える多項式の近似

nを使用して次数の多項式の係数を見つけようとしていますfminunc。わかってpolyfitいますが、後でモデルを拡張する必要があるため、fminunc (または lsqnonlin) を使用する必要があります。とにかく、私の目的関数は単純な非線形最小二乗問題であり、で使用されているのと同じセンタリングとスケーリングのアプローチを適用しましたpolyfit

次に、ターゲット測定データ セットから導き出されたいくつかのヒューリスティックに従って、いくつかのテスト データを生成しました。

ここで入手できる有名なrandrawスクリプトを使用します。

これまでのところ、これは次数が 2 までの多項式 (つまり ) でうまく機能しlength(pars) <= 3ます。上記のテストデータを使用するとpolyfit、精度が向上します。ただし、次数が 2 を超える多項式を当てはめようとするとfminunc、最初の反復の直後に停止します。

現在の検索方向では目的関数を減少させることができないため、最適化が停止しました。目的関数の予測された変化、またはライン検索間隔が eps 未満です。

ただし、polyfit誤差は増加しますが、それでも多項式を適合させることができます。高次多項式を に適合させる方法を知っている人はいfminuncますか?

私の感じでは、何らかの数値的な問題がfminuncその仕事を妨げているということです。たぶん、勾配が高すぎて、y 軸のスケーリングも必要ですか?