• 締切済み

この連立方程式の解き方を教えて下さい

いつもお世話になっております. 下図の式を解きたいのですが解き方が分からなくて困っております. これは,下図に記載されている行列Aを求める問題です. (式1)を変形すると(式2)と(式3)が得られ,さらに変形すると(式4)と(式5)が得られます. 既知の条件として,(xs, ys)と(Xw, Yw, Zw)の組が6組以上分かっているとします. このときに,行列Aを求めたいのですが,どうすれば解けるのでしょうか? (式4)と(式5)に既知の条件を与えて,Ax=bのようにして逆行列を使って解きたかったのですが, 今回の場合,b=0となってしまい,この方法では解くことができません.(ここでの,A, b, xは下図の記号とは関係ありません.) (式4)と(式5)において,a~lを変数として,最小二乗法を使ったりするのでしょうか? 数学にお詳しい方,解き方を教えて下さい. ヒントや参考サイトでも構いませんので,宜しくお願い致します. 最終的には,この式を解くためのプログラムを組むことを考えています. それでは,どうぞ宜しくお願い致します.

みんなの回答

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.10

> Zc の推定は不可能なので、不可解 (解けない) なのかも…。 ANo.7 さんのご指摘に従って、C の代わりに  3*1 行列 [xs;ys;1 ] を 4 列並べた 3*4 行列 Co を使って  CoW^(-1) = Bo を求めたあと、たとえば各要素を l (小エル) で normalize し、  3*4 行列 Bo/l =      [ ao bo co do ;       eo fo go fo ;       io jo ko l ]             ↑      これは「小エル」に非ず。数字の「イチ」。 でも勘定しますか…。   

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.9

>与えられる値は, (Xw,Yw,Zw) と (Xc,Yc,Zc ) の組ではなく (Xw,Yw,Zw) と (xs,ys) の組です だとすれば、Zc の推定は不可能なので、不可解 (解けない) なのかも…。    

  • hrsmmhr
  • ベストアンサー率36% (173/477)
回答No.8

問題にあっているのかどうか分かりませんが 計算出求まるセンサー値のデータ(回転・平行)はなんらかの座標系に従った値になるはずなのですが この問題では入力からは、どの原点とどういう計測系で測った値として求めるのかが分からないので 比しか出てこないのではと思います。 少なくとも2点位での計測系での値(カメラで写されている物の実測とかを換算した結果)を定数項として用いれば定数項が出るはずです。どういう実測値を用いるかは、この計算を何に用いるかということによると思います これが、何かの課題で、実測もできないのなら、適当な値を使えば値は出ますが、それがカメラのときに 何の意味があるのかが分からなくなります。課題の内容から推測できれば一番いいと思いますが。

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.7

#2です。 #3さん、#6さんの方法が有効でしょう。 Zcが分からないと・・・とありますが、 #2の始めに書いたように、a~lは一意に決まるのではなく、比が決まるだけです。 なので、Xc=xs、Yc=ys、Zc=1としても問題ありません。 B=CW^(-1) からa~lが求まりますが、その定数倍もまた解になります。

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.6

ANo.3 さんのアプローチが有望らしい。少しばかりパラフレーズを…。  3*4 行列 B =      [ a b c d ;       e f g f ;       i j k l ]  4*1 行列 [Xw;Yw;Zw;1 ] の一次独立な 4 組 を 4 列並べた 4*4 行列 W  対応する 3*1 行列 [Xc;Yc;Zc ] を 4 列並べた 3*4 行列 C などの形式にして (式 1) を拡げてみると、  C = BW   …(6) ですね。 (6) の右から W の逆行列 W^(-1) を掛けたら、B が求まりませんか?  CW^(-1) = B    

Cross999
質問者

お礼

178-tall様 解説ありがとうございます. おかげ,No.3 さんの言ってることは (条件)d=h=l=0以外はなんとなく分かりました. ただ,与えられる値は, (Xw,Yw,Zw) と (Xc,Yc,Zc ) の組ではなく (Xw,Yw,Zw) と (xs,ys) の組ですので, (xs,ys)から(Xc,Yc,Zc )に変換する必要があるかと思います. (式2)よりXc=xs*Zc (式3)よりYc=ys*Zc であり,教えて頂いた解法の前にZcを求める必要があります. Zcは(式1)から分かる Zc=iXw+jYw+kZw+lで求まりますが,この時点でi,j,k,lは未知です. 何か抜けていることがあるのでしょうか? 回答よろしくお願い致します.

  • hrsmmhr
  • ベストアンサー率36% (173/477)
回答No.5

最後の条件式は思い違いです 解ける気がしたんですが… No.2さんのやり方でいいと思います

Cross999
質問者

お礼

hrsmmhr様 回答ありがとうございます. そうでしたか. また何か分かることがありましたら宜しくお願い致します.

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.4

>i,l,j,kが未知数なので,i,l,j,kでわるような操作はできないと思うのですが, 実際に割る計算をするのではなく、 Xw(a/l)+Yw(b/l)+Zw(c/l)+(d/l)-xsXw(i/l)-xsYw(j/l)-xsZw(k/l)-xs=0 とし、 (a/l)、(b/l)などを未知数とみなして解くということです。

Cross999
質問者

お礼

nag0720様 回答ありがとうございます. そういうことだったんですね. nag0720様の方法で解ける気がしてきました 先の補足からl=tzといことになります. なのでtz=0が成立してしまうと,カメラと撮影対象が同一平面上に存在することになる気がするので・・・ 先の補足から何か分かることがあれば,追加で教えて頂けると幸いです. 宜しくお願い致します.

Cross999
質問者

補足

nag0720様 教えて頂いた方法ですと,lはどうやって計算するのでしょうか? (xs, ys)と(Xw, Yw, Zw)の組が6組あれば,式を12本立てることができ, このうち11本使い,教えて頂いた方法を使えば,AX=bの形で, l≠0と仮定した場合に a/l,b/l,・・・・,k/lは求めることができますが,lを計算することができません. また,余った式からでは,上手く,変形することができません. 回答よろしくお願い致します.

  • muturajcp
  • ベストアンサー率78% (505/644)
回答No.3

(Xw,Yw,Zw)の組の中の一次独立な3組を (xw1,yw1,zw1) (xw2,yw2,zw2) (xw3,yw3,zw3) としてそれぞれに対応する(xs,ys)の組を (xs1,ys1) (xs2,ys2) (xs3,ys3) W= (xw1,xw2,xw3) (yw1,yw2,yw3) (zw1,zw2,zw3) C= (xs1,xs2,xs3) (ys1,ys2,ys3) (1..,1..,1..) とするとWの列ベクトルは一次独立だから 行列式|W|≠0だから Wの逆行列W^{-1}が存在するからそれを求めて B=CW^{-1} を求めて、 B= (a,b,c) (e,f,g) (i,j,k) d=h=l=0 とすると (xs1,xs2,xs3)=(a,b,c,d)(xw1,xw2,xw3) (ys1,ys2,ys3).(e,f,g,h)(yw1,yw2,yw3) (1..,1..,1..).(i,j,k,l)(zw1,zw2,zw3) (1..,1..,1..).(0,0,0,1)(1..,1..,1..)

Cross999
質問者

お礼

muturajcp様 回答ありがとうございます. muturajcp様の説明のうち, 「Wの逆行列W^{-1}が存在するからそれを求めて」というところまでは分かりました. それ以降が,私では理解することができません. 宜しければ,ご教授ください. (1つ目) B=CW^{-1} B= (a,b,c) (e,f,g) (i,j,k) の2つの式はどういった条件で出したのでしょうか? (2つ目) d=h=l=0とすると どういった条件で出したのでしょうか? (3つ目) (xs1,xs2,xs3)=(a,b,c,d)(xw1,xw2,xw3) (ys1,ys2,ys3).(e,f,g,h)(yw1,yw2,yw3) (1..,1..,1..).(i,j,k,l)(zw1,zw2,zw3) (1..,1..,1..).(0,0,0,1)(1..,1..,1..) の表記が何を示しているのかがわかりません. 回答よろしくお願いします.

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

もしa~lが定数倍になったとしたら、Xc,Yc,Zcも定数倍になるだけだから、xs,ysの値は変化しません。 つまり、(xs, ys)と(Xw, Yw, Zw)だけではa~lは一意には決まりません。 決まるのは比です。 また、xs,ysが存在するということは、Zc≠0、よってi,j,k,lのうちどれかが0ではありません。 例えば、l≠0とした場合、 (式4)(式5)をlで割れば、Ax=bの形式にできるので解くことができます。 ただし、i,j,k,lのうちどれが0でないかは、与えられる条件によって変わってきます。 プログラムを組むとしたら、l≠0でうまくいかなかったら、k≠0の場合、j≠0の場合、i≠0の場合、とすべての場合を考慮しなければならないでしょう。

Cross999
質問者

お礼

nag0720様 回答ありがとうございます. xs,ysが存在するので,Zc≠0が成り立つということには気が付きませんでした. たしかに,そうです. ただ,今のところ,i,l,j,kが未知数なので,i,l,j,kでわるような操作はできないと思うのですが, できるのでしょうか?

Cross999
質問者

補足

muturajcp様,nag0720様,hrsmmhr様,また,その他の閲覧者の皆様 色々と考えて頂きありがとうございます. 問題を補足します. この問題は, 世界座標系中の点(Xw,Yw,Zw)をカメラで撮影し,それの画像平面上での点を(xs,ys)としたときに, その間に成り立つ変換式を求める問題です. 下図のAについて,もう少し詳しく説明すると A=C[R|T]と表現できます. Cはカメラの内部パラメータと呼ばれるもので 私が調べた限りでは, C= (fmx, s , mxPx, 0) (0 , fmy, myPy, 0) (0 , 0 , 1, 0) (0 , 0 , 1, 1) となり,この行列の要素は全て既知です. (mx,my,Px,Pyについているx,yは添え字です.) また,[R|T]はカメラの外部パラメータと呼ばれるものであり, Rは回転行列,Tは並行行列であり,世界座標系からカメラ座標系に変換するための行列です (r1,r2,r3,tx) (r4,r5,r6,ty) (r7,r8,r9,tz) ( 0, 0, 0, 1) と表記することができ,この行列の要素は全て未知です. (上記同様にrについた数字とtについたx,yは添え字です.) 結論をいうと, この問題は,(Xw,Yw,Zw)と(xs,ys)の組が複数既知である場合に[R|T]を求める問題となります. 補足は以上です. 引き続きご教授して下さいますよう宜しくお願い致します.

  • hrsmmhr
  • ベストアンサー率36% (173/477)
回答No.1

例えば全部の条件式をlで割って、11次のAx=bの逆行列を計算して、 最後の条件式でlを決めるように計算できないでしょうか?

Cross999
質問者

お礼

hrsmmhr様 回答ありがとうございます. >最後の条件式 というのは,lでとりあえず割ってみて出てきた式ということでしょうか? たしかに,lで割ることができれば,逆行列の計算で解くことができます. ただ・・・,いまのところlが未知数です. 他にも条件が無いかを探してみます. ありがとうございました.

関連するQ&A

  • 逆行列が存在しない連立一次方程式

    Ax = b     Aはm×n行列 m≠n xはn×1 bはm×1 という式があるとき、 x = (At・A)^-1・b      At: Aの転置 と変形すると一般化逆行列を求めなくてもxが求められるように思うのですが、この式変形は間違ってますか?

  • 連立方程式が解けないので教えてください。

    連立方程式が解けないので教えてください。 以下の連立方程式のA、またはBについて解きたいのですが、1つ目の式をAについて解いてから2つ目の式に代入したところから手がつけられません。 テキストによればA=23.62°、B=33.33°となるらしいのですが、数値に落とす前の形まで式変形することができませんでした。 なるべく途中式を示してください。よろしくお願いします。 1-2cos(3A)+2cos(3B)=0 1-2cos(5A)+2cos(5B)=0

  • 連立方程式

    A組とB組のバスケットボールにおいて、前半は、A組がBの 2倍の点数をとり、後半は、B組がA組より14点多くの 得点をとって、A組が53対49で勝ちました。 このとき次の問に答えなさい。 (1)A組の前半の得点をx後半の得点をy点としてx、y を求めるための連立方程式を求めなさい。 答えは理解できるんですが、2本ともA組の式になると 思ってたので納得できないんです。

  • 方程式の解き方を教えてください。

    逆行列を ^(-1) で、転置を ^T で表すことにします。 k:自然数 Δ:既知のスカラー値 A:既知の、kに依存しない10×10行列 y:既知のkに依存するスカラー値 b:未知のkに依存しない10×1ベクトル c:未知のkに依存しない10×1ベクトル E:10×10単位行列 とします。これらが次の式を満たす時のb,cを求めたいのです。  y(kΔ) = c^T A^(-1) (exp(kAΔ)-E)b (k=1,2,3,.....) この制約式を厳密に満たす必要はありません。 2乗誤差が最小になるようなくらいでいいです。

  • 連立一次方程式を消去法で…

    A-B-4C-2D=-1 2A+3B+C+D=-5 3A-5B+2C+D=15 4A-2B+3C+4D=1 この連立1次方程式を消去法を使ってとけという問題なのですがうまく答えに結びつかせることができません。どなたか途中の変形などの過程を表してくれませんか。 ちなみに答えは A=1 B=-2 C=3 D=-4 です。 ついでに行列の変形等のコツがあれば教えてください!お願いします。

  • 連立方程式についてのご質問

    連立方程式についてのご質問です。 X_sは、N*1ベクトル A_ijは、N*N行列 Bは=(1,....,1)'N*1ベクトル |A_11 A_12 ・・・ A_1K |  |X_1|  |B | |A_12 A_22      ・ |*| ・ |=| ・| | ・  ・        ・ |  | ・ | | ・| |A_K1 A_k2 ・・・ A_KK |  |X_k|  |B | (| |は行列を表しています。) 上記式をXについて解きたいのですが、各変数がベクトル・行列表記なのでよく分かりません。 X=~。の形で解を求めることができるのでしょうか? (やはりN>K,N=K,N<Kの場合によって違う・・?) それと、具体的な数値解はどのように求めるのでしょう? A_ij,X_s,Bがスカラーである場合は、ガウスの消去法、吐き出し法などで計算することができます。 上記のように各要素がベクトル・行列表記の場合はどのように計算するのでしょうか。 未熟な質問で申し訳ございませんが、よろしくお願い致します。

  • 連立方程式を解きたい(複素数)

    実際の式よりかなり簡略化してます。 |1-a・X|^2 / |1-y・X|^2 = e   ・・・(1) |1-b・X|^2 / |1-y・X|^2 = f   ・・・(2) |1-c・X|^2 / |1-y・X|^2 = g   ・・・(3) X     →複素数(求めたいパラメータ) a,b,c,y  →既知の複素数(測定値) e,f,g   →既知の実数  (測定値) ||      →絶対値記号 上記の工学系方程式を解きたいのですが、絶対値記号があったり パラメータが複素数だったりでちんぷんかんぷんです。 まず、方程式は3つも必要なんでしょうか? ニュートン法じゃないと解けないのでしょうか? あつかましいお願いですが、文系の私にも分かるように説明をお願いできませんでしょうか。 数学の自由な皆さん、よろしくお願いします。

  • 連立方程式について

    小6です。 カルダノの足して10、掛けて40の2数を求める問題の解、 5±√-15ということですが、この様な問題の2数xとyを求める公式を求めたいという衝動に駆られて、作ろうと思いました。 とりあえず足してa、掛けてbのxとyを求めたいと思いました。 xは(a/2+c)で、yは(a/2-c)にすると足してaという条件は満たします。 次に掛けてbにしたいです。 そしたら、b=(a/2+c)×(a/2-c)はb=(a/2)²-c²に変形できるので、 移項すると、(a/2)²-b=c²になります。 つまり、cは√a²/4-bです。 これでcが求められたので、xは(a/2+√a²/4-b)、yは(a/2-√a²/4-b)に なります。 まとめると、 a=x+y b=xy x=(a/2+√a²/4-b) y=(a/2-√a²/4-b) この公式は合っていますか? 次に、この足してa、掛けてbという3数x,y,zを求める公式を作りたいと思いました。 足して0、掛けて1になる3数o,p,qを求めます。 条件式が2つだと3数が求められないので、 oを1とします。 先程の式が合っていると仮定すると、 代入して pは{(-1)/2+√(-1)²/4、 qは{(-1)/2-√(-1)²/4になります。 計算すると、 pは(-0.5+1.25i)、 qは(-0.5-1.25i)です。 とりあえずxは(a/3-oc)、yは(a/3+pc)、zは(a/3+qc)になります。 次にcを求めます。 cは一旦先程のyとzからoとpとqを取り除いて (a²/9-c²)×(a/3+c)で、 b=a³/27-c³になります。 移項すると、a³/27-b=c³ つまり、c=³√a³/27 まとめると、 a=x+y+z b=xyz x=(a/3-³√a³/27) y=[a/3+{(-0.5+1.25i)(³√a³/27)}] z=[a/3+{(-0.5-1.25i)(³√a³/27)}] この公式は合っていますか? ※³√と表現しているのは三乗根です。

  • 連立1次方程式の解法(階段行列を利用して)

    連立1次方程式  A+2B+ C-3D=-1 2A+5B -5D= 1 -3A-8B+ C+7D= a  A- B+7C-6D= b が解を持つようにa,bを定めて、これを解け。 という問題で、階段行列に変形して解くのですが、a=-3,b=-10まで求まるものの、A,B,C,Dが求まりません。(求まらないというより、a,bを求めるために変形した階段行列が、 1 2 1 -3 -1 0 1 -2 1 3 0 0 0 0 a+3 0 0 0 0 b+10 の形になって、情報不足で、A,B,C,Dが定まりません。)どこか間違っているのでしょうか?

  • 連立方程式の解き方は?

    整数a、b、mと実数kを含む連立方程式 p+2a=-8…(1) 2ap+a^2+b^2=m…(2) p(a^2+b^2)=-60…(3) から、これを満たす組(a,b,p,m)を求めたいのですが、どういう方針で進めたらいいですか? よく文字を減らせ、といいますが、何をどういう順番で消したらいいのでしょうか??(mは消せないのは分かりますが) 問題集の模範回答は、(1)からmを含まない(3)へ代入して、(a+b)(a^2+b^2)=30を作り整数であることからa、bを絞ってます。3式に4文字なのだから、単純に2文字にできるなあとは思いますが。(整数解を絞るところは分かりますがそこまでたどり着くのに戸惑います) ・どんな考え方でこのような順番になるのでしょうか。 ・a^2+b^2を部分的に消しても一般的に意味ないですよね?(a、bがともに残るから) こういう基本の基本を知らないから困ってます