問題タブ [data-fitting]

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 に答える
1280 参照

c - nlinfit Matlab 関数と同等の関数 c コード

私は曲線フィッティングに問題があり、この方程式a + bx ^ 2.5 + cx ^ 3.5を使用してポイントのセット(xおよびy)に適合する必要があります。すでにnlinfit関数を使用してmatlab曲線フィッティングツールボックスから取得しようとしました.今私c/c++ に変換したいのですが、matlab から変換する方法はありますか、c/c++ で実行するライブラリはありますか。

前もって感謝します。

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

3d - 一連の方向に適合する最もタイトなコーン

3D d_1, ..., d_nの一連の単位方向が与えられた場合、

それらの周りで最もタイトなコーンを見つける方法は?

たとえば、次のような別の単位ベクトルmと、角度を表すスカラー値alphaを見つけるにはどうすればよいですか。

foreach i, AngleBetween( m , d_i ) <アルファ

そしてアルファは最小です。

注が追加されました: 方向は半分以上のスペースにまたがることができます。このような「円錐」の場合、円錐の頂点から始まり、円錐の軸から所定の角度内にある半直線のセットを意味します。

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

plot - gnuplotの頻度で作成されたヒストグラムに関数を当てはめる

イントロ

gnuplotには、いいねという名前のファイルからヒストグラムを作成するソリューションがありhist.datます

コマンドを使用して

これは、他のSOページからこのようなヒストグラムを生成します。

質問

関数をこのヒストグラムに合わせるにはどうすればよいですか?ガウス関数を定義し、その値を次のように初期化しました。

出力では、関数はヒストグラムによく従っています。

残念ながら、コマンドを使用してこのヒストグラムに適合させることはできません

では、ビン化された値を含む新しいファイルを作成せずに、関数をどのように適合させることができますか?

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

python - python vs gnuplotでデータを方程式に当てはめる

Python でいくつかのデータを方程式に当てはめようとしていますが、問題があります。私は方程式を持っています:

ここでa、 、tibおよびkはフィッティング パラメータであり、tおよびdispはそれぞれ時間と変位を表す配列変数です。方程式は gnuplot にうまく収まりますが、python に当てはめると次のエラーが発生します:-

完全なスタック トレースは次のとおりです。

周りで修正したti場合にフィッティングが機能するという問題を引き起こしている用語であることがわかりました。私はスプレッドシートを使用しました.ti35.5tti#VALUE

基本的に、Pythonをgnuplotのように曲線に合わせる方法はありますか(無効な結果を無視すると思います)? プログラムのフィッティング部分に使用したコードは次のとおりです。

ありがとうございました!!

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

matlab - Matlabで「基本的なフィッティング」GUIから「評価」機能をプログラムで再現

「基本的なフィッティング」ツールを使用する場合、「フィッティング」が行われると、特定のポイントで値を評価/推定する機会があります。作図部分までしか再現できませんでした。「評価」関数をプログラムで再現して、特定のポイントの値を見積もり、コードで使用できるようにする方法がわかりません。今のところこれを実現できる唯一の方法は、GUIを使用することです。つまり、Figureウィンドウのメインメニューから「ツール>>基本的なフィッティング」を実行します。

スクリーンショット

自分自身を十分に明確にしているのかどうかはわかりませんが、さらに情報が必要な場合は遠慮なく質問してください。

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

python - scipy.optimize.leastsq で事前に割り当てられたバッファー メモリを使用して関数を適合させる

scipy.optimize.leastsq事前に割り当てられたメモリを使用して残差を格納するフィット関数を使用しようとしています。何百万もの非線形フィットがあり、時間が重要です。で fit 関数をコーディングしましたが、fit 関数が、入力として取得されたバッファ メモリへの参照を返すだけの場合、正しく動作しないCことに気付きました。scipy.optimize.leastsq問題がPy_INCREF純粋なPython. この問題を示すモックアップ コードを次に示します (実際の問題にはさまざまな適合関数があり、はるかに複雑です)。

正しく動作させるには、コピーを作成する関数に fit 関数をラップする必要があります。

...しかし、そもそもコピーを作成することは明らかにバッファ メモリの使用に不利です! 補足として、次のopt.fminようにバッファメモリでも動作します(ただし、実際には私のアプリケーションには遅すぎます):

上記の例で正しく動作し、scipy.optimize.leastsq正しく動作しdy2()ない理由はありますか?dy()

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

matlab - 追加パラメーターを fmincon に渡す

を使用して方程式に 2 つのパラメーターを当てはめたいと思いますfmincon。でそれを行いましlsqnonlinたが、 の不等式制約を利用したいと思いますfmincon

問題は、測定データの 2 つのベクトルを、たとえばy(x)で行ったのと同じ方法で関数に渡すことができないことですlsqnonlin

どうすればいいですか?

測定されたベクトルをどのように渡すのですか?

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

matlab - Matlab の対数最小二乗法

この関数を使用して、matlab を使用した最小二乗法でこのデータをy=(a*x)./(b+x)近似 するにはどうすればよいですか?x = [1.5 4 5 8 12 16 17]y = [1.6 2.6 2.4 3.2 3.4 3.6 3.4]

対数を使って を得log(y)=log(a*x)-log(b+x)た. 結果は、y = a*x + b必要な形ではありません。a本来あるべきように乗算xされていませんが、加算されているためlog(y)=log(a)+log(x)-log(b)です。だから私は次に何をすべきかわかりません。y=b*x.^aとを実行するコードは知っていますがy=b*exp.(x*a)、これを解決する方法がわかりません。

0 投票する
3 に答える
69479 参照

python - Pythonでoptimize.leastsqメソッドを使用して、適合パラメータの標準誤差を取得する

私は、optimize.leastsq メソッドを使用していくつかの方程式に当てはめた一連のデータ (変位と時間) を持っています。適合パラメータのエラー値を取得しようとしています。ドキュメントを見ると、出力された行列はヤコビアン行列であり、これに残差行列を掛けて値を取得する必要があります。残念ながら、私は統計学者ではないので、専門用語にやや溺れています。

私が理解していることから、必要なのは適合パラメーターに対応する共分散行列だけなので、対角要素を平方根して適合パラメーターの標準誤差を取得できます。とにかく、共分散行列がoptimize.leastsqメソッドから出力されるものであることを読んだ漠然とした記憶があります。これは正しいです?そうでない場合、出力されたヤコビ行列に残差行列を掛けて共分散行列を取得するにはどうすればよいでしょうか?

どんな助けでも大歓迎です。私はPythonに非常に慣れていないため、質問が基本的なものであることが判明した場合はお詫び申し上げます.

フィッティングコードは次のとおりです。

引数 t と disp は、時間と変位の値の配列です (基本的には 2 列のデータのみ)。コードの先頭に必要なものをすべてインポートしました。近似値と出力によって提供される行列は次のとおりです。

とにかく、現時点ではフィット感が少し疑わしいと思います。これは、エラーを取得できるときに確認されます。

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

python - scipy.interpolate.LSQBivariateSplines を使用してギャップのあるノイズ データに 2 次元スプラインを当てはめる

グリッド上に長方形のデータを含む numpy 配列があり、ノイズのすべて/ほとんどを取り除きながら大規模な変動を再現するために 2-D スプラインをそれに適合させたいと考えています。データには、NaN の値で無効としてマークされた領域もいくつかあります。

scipy.interpolate.RectBivariateSpline 関数を使用してみましたが、ギャップが結果を台無しにします。そこで、同じパッケージの LSQBivariateSpline 関数を使用してみました。すべての NaN ピクセルの重みを 0 に設定すると、単純に無視されることを期待しています。ただし、回避方法がわからない次のエラーに遭遇したのはそのときです。

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

コードの出力は、次のエラー メッセージです。

入力する入力行列 (「データ」) はおよそ 1000 x 1000 ピクセルで、スプラインを 100 ノットで制約するには十分すぎるはずです。ノット数を各方向で 100 に増やすと、コードの実行速度がかなり遅くなりますが、不足数を除いて何も変わりません。また、eps 値を 1-e30 から 0.9 の間の値で増減しようとしました (デフォルトは 1e-16 です)

また、エラー コードをググってみましたが、うまくヒットしませんでした。

ここで何が間違っているのでしょうか?または、この問題を解決するための回避策/より良い方法はありますか?

どんな助けでも大歓迎です。

ありがとう