問題タブ [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.
matlab - MATLAB スプラインを使用して Y から X を取得する
MATLAB に X と Y の 2 つのベクトル
があります。Y は X の関数ですが、X は Y の関数ではありません。
指定された Y 値のスプライン (X,Y) から X 値を取得したいと思います。
これどうやってするの?スプラインから pp を使用してみましたが、あまりうまくいきませんでした。
r - R の 3 次スプライン補間
R で 3 次スプラインの実装を試みています。R ライブラリで利用可能な spline、smooth.spline、smooth.Pspline 関数を既に使用していますが、結果に満足していないので、自分自身を納得させたいと思っています。 「自家製」のスプライン関数による結果の一貫性。3 次多項式の係数は既に計算しましたが、結果をプロットする方法がわかりません..ランダムな点のようです。以下のソースコードを見つけることができます。どんな助けでも大歓迎です。
ありがとうございました
c++ - C++ プログラムで max からエクスポートされた 3D スプラインを評価する
私の C++ プログラムでは、3ds Max (2011) で作成された 3D スプラインにアクセスする必要があります。これらのスプラインを XML ファイルとしてエクスポートする単純な maxscriptを見つけました。以下に例を示します。
私の質問は、C++ プログラムでこのスプラインにアクセスして評価するための最も簡単な (そして最も軽量な) アプローチは何でしょうか? データの XML を解析する方法は知っていますが、それ以降は現在迷っています。a)この 3D スプラインに沿った点を評価し、b)この点での接線を表すベクトルを計算できる必要があります(可能であれば)。この種のものに利用できるライブラリがあることは理解していますが、特に上記の形式(ノット、それぞれに invec と outvec がある)に関して、どれが最も適切かはわかりません。
r - 累積和プロットの定期的な時点で補間の勾配を取得するにはどうすればよいですか?
Cross Validated で、日付ごとにデータを分析することについて質問しましたが、月ごとにデータをビニングすることによって誤ったスパイクと谷を生成したくありませんでした。たとえば、毎月の最終日に請求書を支払い、ある場合には数日遅れて支払う場合、その月は費用がゼロになり、翌月は通常の費用の 2 倍になります。すべて偽のがらくた。
私の質問に対する回答の 1 つは、ビニングでの問題を克服するために、累積合計に対して線形スプライン スムージングを使用した補間の概念を説明していました。私はそれに興味をそそられ、Rで実装したいと思っていますが、オンラインで例を見つけることができません. プロットを印刷したいだけではありません。あらゆる時点 (おそらく毎日) で瞬時の勾配を取得したいのですが、その勾配は、数日前 (またはおそらく数週間または数か月) から数日前のポイントを入力するスプラインから導出する必要があります。時点の後。言い換えれば、一日の終わりに、1 列が 1 日あたりのお金であるデータ フレームなどを取得したいのです。または週あたりの患者ですが、それは、私が数日遅れて支払ったかどうか、または月にたまたま手術日が5日あったかどうかなどの気まぐれの影響を受けません(通常の4日とは対照的に).
これは、私が何に直面しているかを示すための単純化されたシミュレーションとプロットです。
したがって、単純なプロットの場合、変数 interpolate.daily は、年間を通じて 1 日あたり約 $50/30.4 = $1.64 になります。毎月支払われる金額が 2 年目に毎月増加し始める 2 番目のプロットでは、最初の年は毎日 $1.64 の日率が表示され、2 年目の日付では日率が表示されます。 1 日あたり 1.64 ドルから 1 日あたり約 3.12 ドルまで徐々に上昇しています。
最後までお読みいただき、誠にありがとうございました。あなたも私と同じくらい興味をそそられたに違いありません!
geometry - スプライン曲線上の点を見つける
ベジェ曲線が、ベジェセグメントを使用して描画された基本スプライン曲線であると想像してください。これは、1つの実際のポイントと2つのコントロールポイントをとる区分的曲線セグメントです。スプライン曲線があります。しかし、私の要件は、曲線上のポイントを取得することです。
私はそれを達成するために以下の方法に従いました。
式:P(t)= s(-t3 + 2t2 – t)P1 + s(-t3 + t2)P2 +(2t3 – 3t2 + 1)P2 + s(t3 – 2t2 + t)P3 +(-2t3 + 3t2)P3 + s(t3 – t2)P4
ここで、Pは曲線上の点、P1、P2、P3、P4は実際の点、sは接線であり、tに反比例します。tは張力です。0から1まで変化するtのP(t)xおよびP(t)y座標を計算します。
ただし、これらの点は概算です。正確ではありません。カーブ上の正確な位置を取得する必要があります。
誰かが私に曲線上の点を見つけることができる方法を提案できますか?
または、実際のポイントとコントロールポイントを使用してポイントをどのように描画しますか?
よろしく、シャルミラ
c++ - C++ 3 次スプライン軌跡
ポイントのセットの 3 次スプライン軌跡を生成する C++ プログラムを作成しています。これらのポイントは、x 軸に沿って並べ替える必要はありません。たとえば、円などです。
Web でいくつかのライブラリを見つけました。たとえば、ALGLIB ライブラリやここのクラスですhttps://www.marcusbannerman.co.uk/index.php/home/42-articles/96-cubic-spline-class.htmlですが、これらのライブラリはすべてデータ ポイントを並べ替えます。生成したいのは円のようなものなので、これは必要ありません。これを達成する方法はありますか?
scipy - interp1dの代わりに、「大きな」データセットの正気の3次補間?
私はオーディオデータを扱っているので、私のデータセットは通常約40000から120000ポイント(1から3秒)です。現在、いくつかのタスクに線形補間を使用していますが、いくつかの結果を改善するために3次補間を使用したいと思います。
補間関数を生成するためにinterp1d
withを使用しています。kind='linear'
これはうまく機能し、非常に直感的です。
ただし、に切り替えるとkind='cubic'
、コンピュータがおかしくなります---メモリがスラッシングし始め、Emacsウィンドウが暗くなり、マウスポインタが非常にゆっくりと動き始め、ハードドライブが非常にアクティブになります。これは、大量のメモリを使用しているためだと思います。私は(非常にゆっくりと)新しいターミナルウィンドウを開き、実行htop
して、Pythonプロセスを強制終了することを余儀なくされています。(私はLinuxを使用していると言っておくべきでした。)
三次内挿についての私の理解は、一度にデータセットの5つのポイントを調べるだけでよいということですが、これは間違っている可能性があります。
いずれにせよ、メモリ使用量のこの明らかなレンガの壁にぶつかることなく、線形補間から3次補間に最も簡単に切り替えるにはどうすればよいですか?すべての例でinterp1d
使用されているデータポイントはごくわずかであり、高次の注文ではうまく機能しないことがドキュメントのどこにも記載されていないため、次に何を試すべきかわかりません。
編集:私はちょうど試しUnivariateSpline
ました、そしてそれはほとんど私が探しているものです。問題は、補間がすべてのデータポイントに影響を与えないことです。すべてのデータポイントを通過する滑らかな曲線を生成するものを探しています。
Edit2:多分InterpolatedUnivariateSpline
私が探していたもののようです。
math - スプラインに沿って「自然なパス」を生成する
スプラインに沿った任意の点で方向(ローカルx / y / z軸)を取得する方法が必要です...ここで、z軸は常にスプラインの接線であり、x/yは互いに垂直です。
一般的な手法の1つは、接線の変化率として1つの軸ベクトルを計算することです。つまりx(t) = z(t) X z(t+dt)
、yは単純にx X z
です。
しかし、これが私が「自然な」方向付けパスと呼ぶものを与えるかどうかはわかりません。つまり、私がいくつかのカールのセットに曲げられている堅い鋼の棒を持っていると想像してください、そして次に私はこの棒に沿って柔軟なホースを進めます。摩擦が無視できる場合、「自然な」経路は、ホースがどの時点でも最小トルクで終わることを意味します。これは、ホース自体が「ねじれを解いて」低エネルギー状態になるためです。
これを行う方法はありますか?それは、スプラインの長さを0-tからトラバースして、指定された点tで変換を見つけることを意味しませんか?
graphics - ベジエ スプラインに沿って交差する Y 値を見つける方法は?
この種の数学*をやったのは久しぶりなので、誰かが私に答えてくれるかもしれません. 正確な x 値の交点を見つけようとしているので、この質問はまさに私が望んでいるものではないと思います。
そのため、X、Y から XX、YY までのスプラインがあり、両端に制御点があります。二次曲線になると言うのは正しいと思います(曲線はそれ自体を交差しません)。指定されたグラフィックス ライブラリ (現在考えている HTML5 キャンバス) のパス ルーチンを使用してこの線を描画する予定であるため、自分で描画することはありません。
X + n で表されるいくつかのポイントがあり、その交点の Y 値を見つけたいと考えています。パスに沿った特定のポイントの位置を求めているのではなく、線 X と交差するパス上の位置を求めています。
私はそれに合うように垂直線を描くことを計画しているので、可能であれば、ポイントが説得力のある方法で曲線と一致するのに十分正確であると素晴らしいでしょう(数ピクセルずれていない).
ルーチンは、自分で線を引くのは難しくないように見えるので、線を引くのは難しくなく、プロットに沿って X 値を (許容範囲で) テストすることができます。
*算数