問題タブ [cubic-spline]
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 - Python によるスプライン (コントロール ノットとエンドポイントを使用)
次のようなことをしようとしています(wikipediaから抽出した画像)
コードの最初の部分は、メイン リファレンスから抽出されたコードですが、ポイントをコントロール ノットとして使用する方法については説明されていません。
このコードの結果は次の画像です。
ポイントはサンプルで、青い線はすべてのポイントを考慮したスプラインです。そして、赤い線は私にとってはうまくいかないものです. すべての中間点を制御ノットとして考慮しようとしていますが、できません。使おうとしてもknots=x[1:-1]
、うまくいかない。助けていただければ幸いです。
要するに質問:スプライン関数ですべての中間点を制御ノットとして使用するにはどうすればよいですか?
注: この最後の画像はまさに私が必要としているものであり、私が持っているもの (すべてのポイントを渡すスプライン) と必要なもの (コントロール ノットを持つスプライン) の違いです。何か案は?
javascript - 3 次ベジエの制御点を見つけるアルゴリズム (実装の詳細)
私はたくさんグーグルで調べましたが、私が見つけたすべてのアルゴリズムは、コントロールポイントを見つけるために方程式を使用していました. 私はそれを行うためのより簡単な解決策があると考え、ExtJS ソースコードでいくつかの実装を見つけました:http: //docs-devel.sencha.com/extjs/4.1.2/source/Draw.html#Ext-draw-Draw method-getAnchors . ラインの最も近いポイント間の角度を使用して、コントロール ポイントといくつかのハックを検出します。
これがコントロール ポイントを検索するためのアルゴリズムの種類を誰か定義できますか? 私は、PI と角度の操作で立ち往生しています。問題を解決するこの方法について、より詳細で明確な説明、または一般的なアイデアがあるのではないでしょうか?
java - MPAndroid Chart Cubic LineChart のすべてのポイントのリストを取得する方法
MPAndroid チャートを使用して、いくつかの点を使用して立方体グラフをプロットしています。現在、ライブラリはこれらの点を結合し、滑らかなグラフをプロットします。私が使用しているコードは次のとおりです。
配列内の滑らかな曲線を得るために、ライブラリが私が指定したものの間にプロットするすべての中間点のリストを取得したいと思います。これを達成する方法はありますか?
ありがとう
python - InterpolatedUnivariateSpline が nan 値を返す理由
y
vsというデータがあり、3 次スプラインを使用しx
てより細かい解像度で補間したいと考えています。xx
ここに私のデータセットがあります:
1.9.2
0.15.1
私はInterpolatedUnivariateSpline
、3次スプラインで補間k=3
され、ゼロとして外挿されたscipyメソッドを使用して適合しようとしていext='zeros'
ます:
ただし、この画像でわかるように、Spline は値を返しNaN
ます:( 理由はありますか? x 値がすべて増加していると確信しているので、なぜこれが起こっているのかわかりません。他にも多くのデータセットがあります。この方法を使用してフィッティングし、この特定のデータセットでのみ失敗します。
どんな助けでも大歓迎です。読んでくれてありがとう。
編集!
x
解決策は、異なる値を持つ重複した値があることでしたy
!
matlab - スプライン補間 Matlab
私は次のものを持っています:
I have dataT
は 365 日間のデータでmissing
、データに問題がある日を含むベクトルです。欠落している日の推定値を生成する必要があります。ただし、上記の構文を使用すると、0 のベクトルが返されます。私は何を間違っていますか?
python - 3 次スプライン補間は係数を取得します
Python に 2 つの配列があり、それらのポイント間の 3 次スプライン補間を取得 (および実際に使用) したいとします。(IE: 機能を統合したい)。numpy scipy を使用する方法を強くお勧めします。
私はscipy.interpolate.interp1dについて知っています。ただし、それはポイントを評価することしかできません。たとえば、次の非常に単純な機能です。
これで、次のような簡単なことができます。
しかし、私はこの 3 次スプラインをさらに処理したいと考えています (つまり、統合を取得する必要があります)。手動で行うには、係数を取得する必要があるため、次のようになります。
(n = 要素の数 - これは i 番目の立方体の定義です)
したがって、すべてのスプラインを記述するタプル (または 2 次元配列) のリストが必要です。- または、i 番目の 3 次を取得する方法、そして本当に、現在どのスプラインにいるかを見つけるための便利な「x-to-i」を取得したいと思っています。
(もちろん、この後者の問題は、ソートされたリスト内の参照よりも大きい最初の値の単純な検索ですが、必要に応じて手動で簡単に実行できます)。
curve-fitting - 基底関数の合計が 1 になる場合にのみ B スプラインが定義されるのはなぜですか?
Bスプラインを理解しようとしています。理由は明らかではありません << 曲線は次数基底関数がオーバーラップする場所でのみ定義されます>>。次数は次数 + 1 です (3 次の場合、次数は 4 です)。また、基底関数の次数と同じ数が和と重なったところが1であることがわかり、ここから曲線が始まることに関係しているのかもしれません。
最初のフレーズはhttp://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/ch08.htmlの「Knot Sequence」セクションから来ています。私はあなたのためにそれを貼り付けました:
matlab - MATLAB での区分的多項式の追加
複数のデータセットから派生した区分多項式を追加する必要があります。補間せずに区分多項式を足し合わせる簡単な方法はありますか? つまり、PP1 と PP2 が与えられた場合、PP3 を生成する方法はありますか (PP3 は区分多項式のままです)。例えば..
tnew
しかし、明示的に指定する代わりに、pp3
効果的にpp1
+である新しい区分多項式が必要ですpp2
。
python - scipy.interpolateで3次スプライン補間の最初と最後の勾配を設定するには?
n 個の 2 次元点 (x 0 ,y 0 ),(x 1 ,y 1 ), ... (x n-1 ,y n-1 )を含むデータ セットがあります。ここで x 0 < x 1 < .. . < x n-1 . 明示的な勾配値 S BEGINと S ENDが両方の終点(x 0 ,y 0 ) と (x n-1 ,y n-1 ) に設定された3 次スプラインを使用して、このデータ セットを補間したいと考えています。つまり、生成された n-1 の 3 次関数を f 0 (x)=a 0 x 3 +bとします。0 x 2 +c 0 x+d 0 , f 1 , ... , f n-2 , df 0 /dx(x 0 ) = S BEGIN , df n-2 /dx(x n-1 ) = S終了。
調べましたが、S BEGINと S ENDを現在のインスタンスscipy.interpolate
に設定する方法がわかりません。
また、すべて構築する必要がある各 3 次スプラインの 4(n-1) 係数 a 0、b 0、c 0、d 0、a 1、...、d n-2を取得する方法を知りたいです。でf
。