• 締切済み

4次元データを射影により3次元に縮小する方法

以下のような 3本の位置ベクトルによって示される3次元空間に、4次元 データを射影し、次元縮小する方法を教えてください。  A = [a1 a2 a3 a4]、 B = [b1 b2 b3 b4]、 C = [c1 c2 c3 c4] 射影行列を求め、各データ点との積を求めるのだと思いますが、やり方 が分かりません。 仕事で次元縮小のプログラムを作らなければならないので、大変困っています。どなたか、助けてください。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

4次元空間上の 3点 A(a), B(b), C(c) と O が作る平面上に点 P(p) が存在する条件は det(a b c p) = 0. 正射影なら, これから法線ベクトルがわかるのでなんとかなるんじゃない?

  • arrysthmia
  • ベストアンサー率38% (442/1154)
回答No.2

どの補空間に沿って射影するのでしょう? 正射影(直交補空間に沿う射影)ならば、 平面ABCの法線ベクトルを、外積 ↑AB×↑AC などで求め、 単位法線ベクトル ↑n を使って、 点 ↑p を ↑p - ↑p・↑n + ↑OA・↑n へ写像すればよい。 定数項 ↑OA・↑n が付くので、一次変換ではありません。 「次元縮小」という言葉が判らないのと、 「プログラムを作らなければならないので」の件が気になります。 ひょっとして、CGでよく使われる 同次座標の「投影変換」のことを言っているのでしょうか? 線型代数で言う「射影」とは違うので、「射影変換」と呼ぶと 紛らわしいのですが。

参考URL:
http://homepage2.nifty.com/skimp-studio/htm/crawl/1_9_transform4.htm
noriko_m
質問者

補足

分かっていなくて申し訳ありません。正射影ではないかと思います。 データは、X, Y, Z , Energy の4軸に、強度をもっています。 見せられた外国のソフトの画面キャプチャーでは、 A = [1 0 0 0]、 B = [0 1 0 0]、 C = [0 0 0 1] と入力し、 Projections を実行するとZ軸が無くなり、X, Y, Energy の3軸データに変換されていました。 A, B, C のキャプションに、Orthogonal Viewing Axis とあるので、 A B Cには、直交ベクトルを入力させるものと思います。 3次元データを平面に射影すると2次元データになるので、4次元データ を任意の空間に射影すれば3次元データになるのではないでしょうか。 線形代数の本を買ってきて読み始めたのですが、時間ばかりが・・・ あと、4次元ベクトルの外積を求める方法がわかりません。教えて頂けませんか。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「ABC (と原点 O) を通る超平面上に射影する」ということでしょうか. 3次元のときの方法をベタに拡張すればできるんだけどねぇ. もっときれいな方法はあるかなぁ.

関連するQ&A

  • 一次元の射影

    一次元の射影が分からなくて困っています。 下のようにa0とb0からなる直線(?)をa1からb1に射影する方法がわかりません。  a0________________c0___________________b0          ↓ a1_______________________________________________b1 a1=-1,b1=1のとき、c1={(b0-a0)*c0+(b0+a0)}*0.5になると聞いたような記憶があるのですが、 c0=b0とすると、b1にならずうまくいきません。 わかりにくい書き方かもしれませんが、宜しくお願します。

  • 4次元空間の4つのベクトルが張る空間が1次元、2次元、3次元、4次元である条件

    4次元空間にゼロベクトルでない4つのベクトルを考えます。 a↑=(a[1],a[2],a[3],a[4]) b↑=(b[1],b[2],b[3],b[4]) c↑=(c[1],c[2],c[3],c[4]) d↑=(d[1],d[2],d[3],d[4]) とします。 これらのベクトルで張られる空間が1次元、2次元、3次元、4次元である条件を求めたいのです。 各ベクトルを並べて行列(a↑ b↑ c↑ d↑)を作り、基本変形で階数を計算するというアルゴリズムではなく、各成分の代数的な関係を求めたいのです。 4つのベクトルで張られる空間が4次元のとき、超体積が0ではないので、行列式 |a↑ b↑ c↑ d↑|≠0 4つのベクトルで張られる空間が1次元のとき、すべて平行なので、 a↑∥b↑∥c↑∥d↑ a[1]:a[2]:a[3]:a[4]=b[1]:b[2]:b[3]:b[4]=c[1]:c[2]:c[3]:c[4]=d[1]:d[2]:d[3]:d[4] (a[1]/a[4],a[2]/a[4],a[3]/a[4])=(b[1]/b[4],b[2]/b[4],b[3]/b[4]) =(c[1]/c[4],c[2]/c[4],c[3]/c[4])=(d[1]/d[4],d[2]/d[4],d[3]/d[4]) このあと、一つの式にする、つまり、イコールを一つだけにしてきたいのですが、複雑そうです。行列式またはシグマ記号を使って、表記できないでしょうか? 4つのベクトルで張られる空間が2次元、3次元のとき、それぞれの各成分にはどういった関係式があるのでしょうか?

  • 射影変換について

    射影変換について 以前射影変換について質問させて頂きました。 以前の質問内容:http://okwave.jp/qa/q6018544.html 射影変換については大凡理解できました。 正射影とは射影変換の代表的なものであるという認識なのですが、 間違いでしょうか? 以前ご回答頂きました内容において、 「正射影の例としてa+bx+cx^2を(a,b,c)と書けば、(a,b,c)を(a,b,0)に写すことになり、 三次元空間の点をXY平面(2次元)に写す」 という点から正射影は射影変換とはならないのでしょうか? 以上、ご回答よろしくお願い致します。

  • 4次元空間の3つのベクトルが互いに直交する条件

    以前、 4次元空間の4つのベクトルが張る空間が1次元、2次元、3次元、4次元である条件 http://oshiete1.goo.ne.jp/qa3519203.html において、いろいろ教えていただけました。 同様にすれば、4次元空間の3つのベクトルが張る空間が1次元、2次元、3次元である条件、が成分を用いて書けることになります。 ところで、いくつかのベクトルが張る空間が1次元というのは、すべてのベクトルが平行ということです。 今回、それとは逆に「すべてのベクトルが互いに直交する」という条件を考えてみたいと思います。 4次元空間にゼロベクトルでない4つのベクトルを考えます。 a↑=(a[1],a[2],a[3],a[4]) b↑=(b[1],b[2],b[3],b[4]) c↑=(c[1],c[2],c[3],c[4]) d↑=(d[1],d[2],d[3],d[4]) とします。 a↑、b↑、c↑、d↑の4つのベクトルが互いに直交する条件は、 4つのベクトルでできる立体=超立方体 なので、行列式の絶対値は、各辺の積と等しく、 |a↑ b↑ c↑ d↑|^2=|a↑|^2* |b↑|^2* |c↑|^2*| d↑|^2 とかけます。成分でも書けます。 a↑、b↑の2つのベクトルが互いに直交する条件は、 内積を用いて、 a↑・b↑=0 とかけます。成分でも書けます。 最後に、a↑、b↑、c↑の3つのベクトルが互いに直交する条件を、できるだけ簡素に書きたいとき、どういった書き方になるのでしょうか? すべての組の内積が0というのより、なんらかの行列式を用いて書きたいのですが。

  • ベクトル空間

    a = (2,2,3) b = (2,0,-4) c = (1,-2,1) でベクトルaが生成する1次元ベクトル空間を考え この空間へ上記ベクトルbを射影したベクトルb'を求めよ。 この問題での「ベクトルaが生成する1次元ベクトル空間」とはどういうことですか? 空間ベクトルあたりがいまいちピンとこないので、教えてくださると助かります。

  • 平面に正射影するベクトル

    下の問題が解けません。 同一平面上にない空間ベクトルA,B,Cがある。 CをAとBを含む平面に正射影したベクトルDをA,B,Cであらわせ。 これが問題文の全文です。 考え方だけでも知りたいのでよろしくお願いします。

  • 4次元空間で点と直線・平面の距離の公式の一般化を考えたい

    4次元空間と書いたのは、一般化と単に記述の簡単さが目的です。 さらに記述の簡単さのために、4次元空間の中の点(p,q,r,s)と、n次元ベクトル空間との距離を考えたいと思います。 4次元空間の中の点(p,q,r,s)と、(a[1],a[2],a[3],a[4])で張られる1次元ベクトル空間(原点を通る直線)との距離の公式はどう書けるのでしょうか? 4次元空間の中の点(p,q,r,s)と、(a[1],a[2],a[3],a[4]),(b[1],b[2],b[3],b[4])で張られる2次元ベクトル空間との距離の公式はどう書けるのでしょうか? 4次元空間の中の点(p,q,r,s)と、(a[1],a[2],a[3],a[4]),(b[1],b[2],b[3],b[4]),(c[1],c[2],c[3],c[4])で張られる3次元ベクトル空間との距離の公式はどう書けるのでしょうか? また、垂線の足の座標はどうなるのでしょうか? n次元ベクトル空間上の点をいくつかのパラメータを用いて表し、距離の2乗を偏微分したものが0ということから公式を導こうとしたのですが、うまくいきません。 どうかきれいに計算できた方は教えてくださいませ。

  • 射影空間の定義について

    射影幾何のついて学び始めたのですが、抽象的なためか定義の理解に苦しんでいます。 「複素ベクトル空間Vの射影化P(V)とは、V\0の同値関係~による商である。」とあり、直後の問題で、「このP(V)とVの1次線形部分空間の集合と自然な1体1対応があること示せ。」とあります。私としては、n次元ベクトル空間Vに対する1次元部分ベクトル空間との1体1対応、かと思っていたのですが、違う本を参照してみると、 「Def.ベクトル空間Vの1次元線型部分空間をP(V)とかき、射影空間と呼ぶ。Vがn+1ならばP(V)はn次元であるという。」と、ありました。 質問は次です。 Q,下の定義において、1次元線形部分空間なのに、なぜn次元の話になるのか。 この時、上の問題の回答は、 (x0,x1,…,xn)→(x1/x0,…,xn/x0) と対応付ければ終わりでしょうか。 よろしくお願いします。

  • 行列の積の意味

    まだ学習し始めたばかりなので用語が間違っているかもしれないのですが、 行列の積の意味はn次元空間上の或る点を別の位置に移す事を表現しているとも考えられる、 と会ったのですが、よくわかりません。 ”行列のスカラー倍”の場合はベクトルが移動して拡大という考え方(間違っているかも)で納得したのですが、画像のような場合、a,b,c,dは何を意味するのでしょうか?a=x1,b=x2,c=y1,d=y2 といった感じでしょうか?可視化したものを見てみたいのです。

  • 正射影ベクトルについて

    いつも有難うございますm(__)m 確認したいことがありますので、どなたか教えて頂けないでしょうか(>_<。)HelpMe!! 「xyz空間内にA(1,2,3),B(2,3,2),C(1,4,-1)を取る。点Cの直線ABに関する対称点Dの座標を求めよ。」 との問題の解説には、 正射影ベクトルを使った解法が載っていました。 同じような問題を、違う問題集で見かけましたが、 それも正射影ベクトルの解法になっていました。 そこで質問なのですが、 平面と同じような考え(CDの中点がAB上にあり、CDとABが直交)で 解いてもいいものでしょうか。 回答の「D(5,4,3)」はこの解法でも出たのですが・・・ もし、正射影を使わないといけなければ、頑張ってこの式を覚え、解けるようにならきゃ!と思ったのですが、私の方法でもいいのでしょうか? 京大(文系)の似た問題も正射影の解法(応用編として載っていました)でしたので、ちょっと不安になりまして・・・ どなたかよろしくお願いします(>_<。)HelpMe!!