• ベストアンサー

スプライン補間

スプライン補間 空間座標において,各点の座標( x(t),y(t),z(t) ) ( t:時間 )と速度ベクトル( u(t),v(t),w(t) )( u,v,w,はそれぞれx,y,z軸方向の速さ )がわかっている時,スプライン補間して各点の間の座標を知りたいのですが,スプライン補間には複数のスプライン関数があるようでどれを用いるのがベストなのかがわかりません.各関数の特徴,使用条件などを教えていただきたいです,

質問者が選んだベストアンサー

  • ベストアンサー
noname#196225
noname#196225
回答No.1

スプライン補間は大まかに、 ・各点(各条件)を必ず通過するかどうか? ・何次の曲線を使って補間を行うか? で大別されます。 次数は3次あたりが普通使われると思います。また、今回では必ず通過する条件を使うとします。 上記条件を満たすスプライン補間は、単純化すると以下の問題の解になります。 「(点,速度,時間)=(x1,u1,t1),(x2,u2,t2)を通る、tに関する3次曲線を求めよ」yも同様。 この解をx=f(t)、y=g(t)としたとき、(f(t),g(t))がt1からt2の区間での補間となります。 定式化すれば、a,b,c,dに関する次の4元連立方程式になります。 ・f(t)=at^3+bt^2+ct+d→at1^3+bt1^2+ct1+d=x1,at2^3+bt2^2+ct2+d=x2 f'(t)=3at^2+2bt+c→3at1^2+2bt1+c=u1,3at2^2+2bt2+c=u2 余談ですが、速度ベクトルが分からずに各点だけを補間する場合には 「速度が隣接区間で連続する」という条件だけで求めることになります。 この場合、2点区間の関係だけでは曲線を決めることができないため隣接区間の条件も使うことになります。その結果、帰納的にN元連立方程式になってしまうのです。 今回の場合は速度が既知のため、隣接区間を使わずに曲線を決定できるため簡単になります。

関連するQ&A

  • 線形補間について教えてください。

    今手元にx、y、zの座標が140個分あるのですが、それをエクセルの散布図を使いグラフにしました。しかし、明らかにおかしな場所に座標がプロットされていたりするため、スプライン補間などを使いきれいにしたいと考えています。 インターネットなどで、線形補間について調べたのですが、表現が難しくなかなか理解できませんでした。 スプライン補間やラグランジェ補間、ニュートン補間など色々あるようですが、これらの違いは何なのでしょうか。どなたか簡単に教えてください。お願い致します。 また、エクセルを使ったスプライン補間のやり方も教えてくだされば幸いです。 よろしくお願いします。

  • スプライン補間

    x=[-1,0,1,2],y=[0,1,0,0]のデータで 区間x=0~1 をスプライン補間で計算させています。 MuPAD でcubicSplineを用いた場合と C言語によるアルゴリズム辞典から作ったソフトでは計算結果が 微妙に異なります。 どちらが3次スプライン補間として正しいのかお教え願えないでしょうか? あるいはどちらも正しいとして、スプラインの種別が違うのでしょうか? 非常に漠然としていますが、よろしくお願いします。 「自分のツールだとこういう結果だった」というようなアドバイスでも大歓迎です。 X      MuPAD        C言語によるアルゴ 0      1            1 0.125  0.922851563  0.9488281 0.25   0.8203125    0.853125 0.375  0.698242188  0.7246094 0.5    0.5625       0.575 0.625  0.418945313  0.4160156 0.75   0.2734375    0.259375 0.875  0.131835938  0.1167969

  • 3次スプライン補間法について

    x=3,7,4,7,5,8,3,2,3 (秒) Y=4,7,2,3,12,6,13,5,1,24 (cm) として、 速さa(cm/秒)はa=Y/xで出てくるのですが(a=1.7,1,0.5・・・)、 それぞれの点を結ぶと折れ線グラフになりますよね? 3次スプラインという補間関数を使うと、 それぞれの点を通過する滑らかな曲線を引けるらしいのですが、 この場合、x秒における速さaを求める計算式はどのようになるのでしょうか? a=? ご存知の方いらっしゃいましたらご教授・アドバイスよろしくお願い致します。

  • 等高線図を書くための補間のやり方

    等高線図を書きたく,補間のやり方を調べています. 既知の点,P(x1,y1,z1),Q(x2,y2,z2),R(x3,y3,z3),S(x4,y4,z4)が存在したときに,これらの点に囲まれた中の任意の場所のz座標を補間法によって求めたいと考えています. 「補間」で検索をかけてみると,いろいろな補間方法がヒットしますが,x,y座標で,いくつかの点を曲線で結ぶというやり方はヒットするのですが,x,y,z座標については見当たりませんでした. まずは,有用な補間法の名前,複数ある場合は,それぞれ長所,短所などだけでも教えていただけませんでしょうか? よろしくお願いいたします.

  • 内挿補間とPhongシェーディングについて

    javaのアプレットを使って、3次元3角形のそれぞれの頂点にx、y、zの座標値、およびr、g、bのカラー情報を定義し、3角形内部を、内挿補間法を用いて塗りつぶしを行い、3角形内部のカラーは内挿補間された色を用いて表示するにはどうすればいいですか? また、このプログラミングのr、g、bのカラー情報に代わって、3次元3角形のそれぞれの頂点にx、y、zの座標値、および法線Nと光源入射ベクトルLを定義し、3角形内部を、内挿補間法を用いて塗りつぶしを行い、3角形内部のカラーを内挿補間されたベクトルから Phongシェーディングによる輝度を求め表示するにはどうすればいいですか? どなたか教えてください。お願いします。

    • ベストアンサー
    • Java
  • 行列の変換での問題

    [問題文]空間において,x-z平面上の単位ベクトル(u,0,w)を考える。  y軸まわりの回転を表す行列のうち、ベクトル(0,0,1)をベクトル (u,0,w)に変換するものを求めよ。また求めた行列を利用して、(u,0,w) を軸とする角度θの回転を表す行列を求めよ。 3次元空間においての変換だと思うんですが、y軸の周りとなるとどのような変換になるんでしょうか。 わかる人にはわかるという問題だと思います。 お願いします。

  • 直線補間出来る関数

    直線補間できる関数はエクセルに有るのでしょうか? 直線補間とはxy座標において、点A(x1,y1),点B(x2,y2)が有ったときに、x1≦x≦x2における任意のxに対するyの値を点AB間が直線だと仮定して求めるすることです。 今は、VLOOKUP,match,Index関数を使ってやってますが、関数がある非常に楽です。

  • 直交変換と回転は同じものなの?

    座標の回転が直交変換なのは任意の回転がx軸の回転とy軸の回転とz軸の回転の組み合わせであることから理解できます しかしその逆が分からないのです つまり直交変換は座標の回転なのかどうかです 3次元直交座標Aと3次元直交座標Bがある 空間に点Pがある PのAによる座標を(x,y,z)=a^Tとし PのBによる座標を(X,Y,Z)=b^Tとする そこで質問します 「U^T・U=Eかつ|U|=1である3次正方実行列Uがあり任意のPについてa=U・bならばBはAを原点を中心に回転したものである」 は正しいのですか? 正しければどうしてなのですか? 正しくなければどうしてなのですか? よろしくお願いします

  • 3次元曲面補間方法を探しています.

    3次元データの補間方法のアルゴリズムを探しています. 不均等にサンプリングした3次元データ(x,y,z)を基に曲面補間を行いたいと思っています. 最初に,zを一定の基で基準データ(x,y)を取得し,データを基に係数を算出します. システムは係数を用いて実際の取得データ(x,y)からzを補間したします. 現在のシステムは多項式で補間しています しかし,もっとメモリを食わず,精度のよい補間補法がないか探しています. 一応候補として考えたものはスプライン曲面と細分割による処理です. これらでは,問題点としてサンプリングした範囲を超えた(x,y)データでは補間ができないというものがあります.また,計算時間がかかるという問題点もあります. これらに限らず,よい方法はありませんでしょうか.

  • 相対速度 座標系

    一つの座標系Sに対して相対速度v(0)でx軸方向に並進運動をしている座標系S'を考える。 t=0でS系とS'系の原点は重なっており、時刻tにおいて、力の働いていない一つほ質点が、S系のP点で静止しているとする。この質点をS'系から見ると、x軸の負の方向に進むように見える 。点Pの座標をS系で(x,y,z)S'系で(x',y',z')とする。 x'=x-v(0)t,y'=y,z'=z これを時間tで微分すると v'(x)=v(x)-v(0),v'(y)=v(y),v'(z)=v(z)これを三次元に拡張すると v'(↑)=v(↑)-v(0)(↑) ←ベクトルです。 とあるのですが、これを変形すると、v(0)(↑)=v(↑)-v'(↑) です。しかし相対速度となると、 v'(↑)-v(↑)だと思います。 自分の考えと矛盾しているのですが、どこがおかしいのか教えてほしいです。