問題タブ [lmfit]

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 投票する
1 に答える
1510 参照

python - lmfit 最小二乗法にヤコビアンを渡す

非線形最適化に lmfit python パッケージを使用しています (url: http://lmfit.github.io/lmfit-py/ )。最小二乗法を使用する場合、ヤコビ関数を渡すことが可能かどうかを知りたいですか? はいの場合、最小限の例を提供していただけますか?

ありがとうございました!カブラルプ

PS: コードは次のとおりです。

PPS: github でこの貴重な例を見つけました: https://github.com/lmfit/lmfit-py/blob/master/examples/example_derivfunc.py

注意: ヤコビ関数を lmft.leastsq に渡すことができた後、私のテスト ケースでは、lmfit によって返された最適化された解が真の解に収束していないことに気付きました。ただし、実際の scipy.optimize.leastq 関数 (lmfit によって呼び出される) を使用すると、すべて正常に機能しました。つまり、返された解は、ヤコビアンも含めて収束しました。ヤコビ関数を指定すると lmfit.leastsq が適切に機能しないと言っているわけではありませんが、この場合は注意して扱うことをお勧めします。これまでのところ、この原因を詳しく調べる時間はありませんでした。

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

python - パラメータの最適化に配列を使用する lmfit -py

状況:
十分に確立された方程式に従って、ガスが一定の速度で脱ガスまたはガスを吸入する自然の小川のパラメータを最適化しようとしています。下流の特定の距離で測定された濃度があり、最適化手法を使用して、モデル内のいくつかの未知のパラメーターの値を決定したいと考えています。

以下に貼り付けたコードを使用して、 lmfit lmfit-py (github)を使用してパラメーターを最適化しようとして います。

  • 未知のパラメーターのいくつかが、ストリームに沿った異なるサンプル ポイントごとに異なる値を持つことができるようにしたいと考えています (これは実際の状況を反映しています)。スクリプトでは、これらは「ローカル パラメータ」と呼ばれます。そのため、これらのパラメーターの結果は、ストリームに沿った各場所のリストになるはずです。

  • 他のパラメーターは、「グローバル パラメーター」と呼ばれる、ストリームに沿ったすべての場所で同じ値になるように最適化する必要があります。そのため、これらのパラメーターの最適化結果は単一の値になるはずです。

Python 3.2 を使用しています。

問題:

  1. 現時点では、すべてのパラメーターに対して単一の値の結果しか得られません。
  2. lmfit最適化されたアレイの作成に使用できますか?
  3. 私は本当にスクリプトを正しく設定していないと思います.おそらく境界と初期推測を正しく呼び出していませんか???

私が使用しているスクリプト:

私が使用しているデータ:

ありがとうございます!

関連する背景情報:
http://lmfit.github.io/lmfit-py/

https://pypi.python.org/pypi/lmfit/

https://github.com/lmfit/lmfit-py

http://cars9.uchicago.edu/software/python/lmfit/

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

python - Pythonでlmfitを使用してデータを2D関数に適合させる

lmfit パッケージを使用してパラメーター (a) と (b) を抽出するために、2D 関数でデータをフィッティングしたいと考えています。基本的に 1D 関数フィッティングとして、すべてのデータ ポイントを同じ座標 (x,y) で 2D 関数にフィッティングしようとしています。これは、各データが異なる座標 (x,y) を持っているため、すべてのデータ ポイントが別のデータ ポイントとは異なる初期推定値を持つことを意味します。これは私のコードです:

ただし、次のエラー メッセージが表示されました。

明らかに、x と y の次元はデータと同じではありませんが、data[0] が (x1,y1) を取り、data[1] が (x1,y2) を取り、data[ 5] (x2,y1) などを取ります。誰でもこの問題を解決するのを手伝ってくれるか、何か提案をしてください。事前に感謝します。

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

python - pythonでモデルを最小化するlmfitによる2つのローレンツのフィッティング

多分誰かが私を助けることができます。何日も費やしましたが、問題を解決できませんでした。前もって感謝します。

実験データに 2 つのローレンツを当てはめたいと思います。方程式を 2 つのローレンツ行列lorentz1lorentz2関数の単純な形に分解しました。次に、他の 2 つの関数を定義L1L2、定数を乗算するだけcnstにしました。適合する 4 つのパラメータがすべてあります: cnst1cnst2tau1tau2

私が使用するものlmfit: モデルと最小化 (おそらく両方とも同じ方法を使用します)。

初期の適合パラメータは、視覚的に微適合に近づくように設定されています。ただし、lmfit を使用した最小化は失われます (下の最初の画像)。


制約のないパラメーター

これらのパラメータを使用して:

しかし、エラー率は低いです:


一方、パラメーターを初期値に非常に近づける (強制的に初期値に近づける):

ここに画像の説明を入力

パラメータの使用:

フィットは視覚的に優れていますが、エラー値は非常に大きくなります:

総コードは次のとおりです。

0 投票する
2 に答える
4814 参照

python - Python lmfit: 2D モデルのフィッティング

1 つの 2D 配列によって与えられるグレースケール画像データに 2D-Gaussian を当てはめようとしています。lmfit ライブラリは、これを実行できる使いやすい Model クラスを実装しています。残念ながら、ドキュメント ( http://lmfit.github.io/lmfit-py/model.html ) は 1D フィッティングの例しか提供していません。私の場合、2 つの独立変数を使用して lmfit モデルを構築するだけです。

次のコードは私には有効に思えますが、scipy が「minpack.error: 関数呼び出しの結果は浮動小数点数の適切な配列ではありません」をスローします。

トムはそれを要約します: 2D (x1,x2)->(y) データを lmfit のモデルに入力する方法.?

これが私のアプローチです。すべてが GaussianFit2D クラスにパックされていますが、重要な部分は次のとおりです。それがガウス関数です。ドキュメントには、ユーザー定義関数について書かれています

もちろん、モデル関数は、モデル化されているデータと同じサイズの配列を返す必要があります。通常、これは 1 つ以上の独立変数も指定することによって処理されます。

与えられた値 x1,x2 に対して唯一の合理的な結果はスカラー値であるため、これが何を意味するのか実際にはわかりません。

ここでモデルが生成されます。

これは、データを受け取り、モデルとパラメーターを構築し、lmfit fit() を呼び出す関数です。

Anf 最後に、この fit 関数が呼び出されます。

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

python - lmfit のインポートは成功するが、lmfit からのモデルのインポートは成功しない

PIP経由でlmfitをインストールしました

ipythonノートブックにlmfitをインポートするとうまくいくようです。つまり、インポートでエラー メッセージが表示されることはなく、lmfit から一連の関数を呼び出すことができます。

ただし、lmfit からモデルをインポートしようとすると、インポート エラーが発生します。

インポート エラー。

これはインストールの失敗に関係していると思いますが、これをさらに診断する方法や修正する方法がわかりません。誰か提案がありますか?

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

python - lmfit: 最大再帰深度を超えました

「複雑な」モデルを実験データに適合させるために lmfit を使用しています。

モデルのパラメーターを次のように定義します。

spinBoxes を使用して、初期値として使用される値を取得します (私のプログラムは GUI です)。

A1、A2、A3、A4 に問題があります。それらは依存しており、それらの合計は 1 に等しくなければなりません。

コメントしたら

パラメータは 0 から 1 の間で変化しますが (パラメータを定義するときにこの範囲を定義します)、それらの合計が 1 になることはありません。

これらの行がコメント化されていない場合、次の例外があります。

私はそれが何を意味するのかよくわかりません。最大再帰深度を増やそうとしましたが、何も変わりませんでした。

何が問題なのか分かりますか?

0 投票する
2 に答える
2987 参照

python - lmfit pythonによるカーブフィッティング

私はpythonが初めてで、lmfitを使用してデータを適合させようとしています。ここの lmfit チュートリアルに従っています: http://lmfit.github.io/lmfit-py/parameters.html で、これが私のコードです (上記のリンクで説明されているコードに基づく):

問題: line return model-y の構文エラーを返す

正しい方向にさせていただければ幸いです。