問題タブ [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.
python - LMFIT の不確実性を使用した誤差加重フィット
LMFIT を使用してモデルを適合させようとしています。次の操作を簡単に実行できます。
そして、非常に合理的な結果を得る
ここで、measured
変数に関連する不確実性 (測定誤差など) もあるため、それに関連する標準誤差によって残差のポイントに重みを付けたいと思います (常に測定値の 20% であると仮定します)。コードは次のようになります。
問題は、まったく信頼できないフィッティング結果が得られることです。なんで?どうすればこれを修正できますか?
python - lmfitで既知のローカルパラメータをグローバルパラメータと区別する方法は?
私は lmfit python パッケージhttps://lmfit.github.io/lmfit-py/を使用して、一部のパラメーターの特定の許容変動範囲内で指定された非線形関数にデータを適合させています (これが主に、lmfit が魅力的であると感じた理由です) )。
一般に、lmfit の重要なコードは次の 2 行です。
私のアプリケーションは、36 のデータ グラフにわたってグローバル フィットを実行することです。問題は、いくつかのパラメーターが適合していない (vary=None) ことであり、それらは既知の量であり、36 のグラフすべてで変化しますが、それぞれのグラフ内では同じままです。現在、これらの既知のパラメーターを関連する x_data および y_data ポイントに渡すために、次の構文を実装しようとしています。
ここで、x_data、y_data、および known_params は同じ長さの配列です。x_data と y_data は 36 個のグラフすべての 1 つの配列で構成され、known_params は各グラフで固定されているパラメーターの繰り返しエントリを含む 3 列の配列です。
現在、プログラムの実行速度はかなり遅いです (実行が完了するまで 30 分)。また、現時点では、適合曲線はすべてのグラフで同じですが、各ローカル グラフを既知のパラメーターに適合させ、グローバル パラメーターのみに適合させたいと考えています。
私はこれを適切に行っているかどうかを尋ねたいと思いますか?y_data への参照が必要な理由はわかりましたが、なぜ fcn2min() は入力として y_data を必要とするのでしょうか? フィッティング プログラムが y_data または known_params 配列のどちらをフィッティングするかで混乱する可能性はありますか? lmfit を使用してこれを行うより良い方法はありますか、それとも別の数値パッケージを探す必要がありますか?
python - フィッティング後に lmfit パラメータを取得するにはどうすればよいですか?
いくつかのラマン スペクトル ピークに適合するプログラムを作成しました。適合パラメータ (位置、振幅、HWHM) を返す必要があります。
modul lmfit を使用して、制約付きのローレンツ ピークを作成しました。
Figure プロットによると、適合したピークと生データはよく一致しています。しかし、フィッティング後にパラメーターを抽出する場合、問題が発生します。プログラムは初期値のみを返します。
「report_fit モジュール」を関連付けて、初期パラメーターを変更しても成功しませんでした。パラメータ値は変化しません。
気になるのは、このプログラムが同僚の PC では動作するのに、私の PC では動作しないことです。したがって、問題は私のpythonバージョンに起因する可能性があります。
私はspyder 2.3.9を使用しており、Windows 10でanacondaとともにインストールされたpython 3.4を使用しています.lmfitモジュール0.9.3は、適切な合意を得ることができるため、部分的に機能しているようです(図plt.plotから)。しかし、フィッティング後にパラメータ値を返すことはできません。
これが私のコードです:
助けてくれてありがとう:)
実用的なフィットの例
deniz.cakir@etu.umontpellier.fr に返信してください。
python - ValueError: 入力に nan 値が含まれています - 入力に NaN が含まれていないにもかかわらず、lmfit モデルから
lmfit (ドキュメントへのリンク) を使用してモデルを構築しようとしていますが、モデルを適合させようとするとが得られる理由がわかりませんValueError: The input contains nan values
。
次のエラーが発生します。
ただし、次の NaN のチェックの結果は、データに NaN 値がないことを確認しています。
これまでのところ、 1 および/またはリストのdata
との両方 を に変換し、0 番目の時間ステップを削除して (0 で除算するエラーがあった場合)、 を独立していると明示的に指定し、すべての変数を変化させようとしました。ただし、これらはすべて同じエラーをスローします。time
numpy ndarrays
t
このエラーがスローされる原因を知っている人はいますか? ありがとう。
python - 共有パラメーターと非共有パラメーターの組み合わせを持つ複数のデータセットを適合させる方法
データセット間で共有される変数とそうでない変数が必要な複数のデータセットを適合させようとしています。ただし、これを行うために必要な手順がわかりません。以下に、私が使用しようとしているアプローチを示しました (「ここから問題を開始する」からは機能せず、説明目的のためだけです)。
この回答では、誰かがパラメーターを共有することができますarcossデータセットは、共有されていないパラメーターをいくつか持つことができるように、これを適応させる方法はありますか?
どうすればこれを達成できるか、誰かが同じ結果を達成するためのより良いアプローチを提案できますか? ありがとう。
python - LMFIT Python による三辺測量
三辺測量の目的で、非線形最小二乗フィッティング LMFIT を実行しようとしています。
- LMFIT
- ビーコンにはビーコン位置 x、y、z が含まれます
Parameters()
Xinit
推定する場所を 含めます。tag_distances[i]
測定値を含める (タグから までの距離beacon[i]
)
次のエラーが表示されます。
Raise TypeError('不適切な入力: N=%s は M=%s を超えてはなりません' % (n, m)) TypeError: 不適切な入力: N=3 は M=1 を超えてはなりません
python - カーブ フィッティング パラメーターの制約
二次曲線近似プロセスで境界と制約を課そうとしています。目的は、係数a,b
とを見つけることc
です。b: に制約を課すことdelta-2*a*x
は私の疑問です。x
制約に変数を追加するにはどうすればよいですか。実行可能なコード:
ありがとう !
編集:このプログラムを機能させるために、変数を変更しました。しかし、それが制約を適用する正しい方法であるかどうかはわかりません。
編集 2: 必要な制約が追加されました: c <=0, a>0 および 2*a*x+b >= 0 ;
python - Python、Lmfit、globalfit
1 つの共有パラメーターと 6 つの他のパラメーターを使用してグローバル フィットを実行しようとしています。dataComplete は、テキスト ファイルと線量 = x 値から解析された私のデータです。ここで、bValue は濃度ごとに変化し、他は同じままです。グローバル フィットを適用する前に、パラメーターを使用していくつかの計算が行われます。2つのエラーが発生します
1: nan 値および 2: TypeError: 不適切な入力: N=35 は M=22 を超えてはなりません
個々の要素をチェックしたところ、機能しているように見えますが、グローバル フィットではありません。どんな助けでも大歓迎です。ここで以前に解決した例のコードを使用しようとしましたが、明らかに何かが間違っています。