0

通常のLSM(最小二乗法)を使用した連立方程式(多項式10次)の解決に数値的な問題があります。巨大な値と非常に小さな値のパラメーターを取得しました。したがって、この方法で作成された逆行列はできません。拡張変数でも精度が低くなります。私はこれをC++、Matlab、Delphiで試してみました。誰かが、十分な精度でこれを行うことができるアプリケーション機器を知っているか、数値のヒントが良い結果を得ることができますか?行列の標準的な計算は、残念ながらとらえどころのないです。

4

1 に答える 1

1

あなたの問題は、10次多項式を使用しているという事実から来ていると思います。これは、数値の問題につながることがよくあります。

  • まず第一に、それらは大きな振動のために不適切である可能性があります。単純な関数を補間する場合でも、これらの振動が存在する可能性があります。有名なRungeの例を参照してください。
  • 第2に、高次多項式の近似は、丘の条件付き線形システムにつながる可能性があります。そのため、行列を反転できませんでした(とにかく実行しないでください)。簡単な実験を行いました。11個の等距離の点([0,1]の間隔)を取り、線形システムの行列を組み立てて解きました。Matlabは約1e8の条件数を与えるので、最小二乗行列の条件数は1e16です。したがって、行列は「特異に近い」ため、これはすべての数値精度が失われることを意味します。

したがって、問題を取り除く最良の方法は、10次多項式を取り除くことです。低次の多項式、スプライン、または区分的多項式近似を検討する必要があります。

本当に10次の多項式が必要な場合(たとえば、データがそのような多項式によって生成されていることがわかっている場合)、行列を反転しないでください。良い前処理行列と反復法を使用して、行列を反転せずにシステムを解きます。

于 2013-01-31T09:29:25.253 に答える