dポイントプレゼントキャンペーン実施中!

http://oshiete.goo.ne.jp/qa/8011470.html
より、
L^2=(x2+sv2x-x1+tv1x)^2+(y2+sv2y-y1+tv1y)^2+(z2+sv2z-z1+tv1z)^2
(簡単のため)
L^2=(x2+s*a2-x1+t*a1)^2+(y2+s*b2-y1+t*b1)^2+(z2+s*c2-z1+t*c1)^2

(各方向ベクトルをa,b,cと変えました。)
について、

「まず、右辺の括弧を展開して、s の二次式として
平方完成しましょう。
そのとき、t も係数の一部と考えます。
すると、定数項が t の二次式になるので、
今度はそれを t の式として平方完成します。」

という回答が来たのですが、現在、展開すら出来ない状態です。
また、この後の計算もよく分からないです。
申し訳ありませんが、
至急、回答お願いします。

A 回答 (8件)

#3,#6,#7です。



A#7の訂正と補足の質問について

>=m(t-n(s))^2+ps^2+p1s+p2
>=m(t-n(s))^2+p(s^2+p1s/p)+p2
以下訂正
=m(t-n(s))^2+p(s^2+p1s/p+(p1/2p)^2-(p1/2p)^2)+p2
=m(t-n(s))^2+p(s-q)^2+r
ここで
q=-p1/(2p),r=p2-(p1^2/4p)

>L^2
>=m(t-n(s))^2+p(s^2+p1s/p+(p1/p)^2-(p1/p)^2)+p2
訂正:=m(t-n(s))^2+p(s^2+p1s/p+(p1/2p)^2-(p1/2p)^2)+p2

>=m(t-n(s))^2+p(s^2+p1s/p+(p1/p)^2 )-(p1)^2/p+p2
訂正:=m(t-n(s))^2+p(s^2+p1s/p+(p1/2p)^2)
-(p1^2/(4p))+p2

>と計算できたのですが、
>q=-p1/(2p)
>が導出できないです。どうやって導出すればよいですか
=m(t-n(s))^2+p(s+p1/(2p))^2 +p2-(p1^2/(4p))
=m(t-n(s))^2+p(s-q)^2 +r
で導出できます。

#即席で途中計算を挿入したのでミスりました。
最終的な計算結果は合ってると思います。
    • good
    • 0
この回答へのお礼

長い間、丁寧な回答を書いて頂き、ありがとうございました。
おかげさまで助かりました。

お礼日時:2013/04/07 18:25

No.3,No.6です。



ANo.6の補足の質問について

> この部分だけを考えると、
> m{(t^2)-2t+((n(s))^2)-((n(s))^2)}
tの係数にn(s)が抜けたね。
正:m{(t^2)-2tn(s)+((n(s))^2)-((n(s))^2)}

> =m{(t-n(s))^2-(n(s))^2}
=m(t-n(s))^2 -m(n(s))^2

L^2=m(t-n(s))^2 -m(n(s))^2
+(a2^2+b2^2+c2^2){(s^2)+2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}/{(a2^2+b2^2+c2^2)}}+{(x2-x1)^2}+{(y2-y1)^2}+{(z2-z1)^2}
=m(t-n(s))^2
-(a1^2+b1^2+c1^2){(c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s)/(a1^2+b1^2+c1^2)}^2
+(a2^2+b2^2+c2^2){(s^2)+2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}/{(a2^2+b2^2+c2^2)}}+{(x2-x1)^2}+{(y2-y1)^2}+{(z2-z1)^2}
=m(t-n(s))^2
-{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}^2/(a1^2+b1^2+c1^2)
+(a2^2+b2^2+c2^2){(s^2)+2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}/{(a2^2+b2^2+c2^2)}}+{(x2-x1)^2}+{(y2-y1)^2}+{(z2-z1)^2}
=m(t-n(s))^2+ps^2+p1s+p2
残りの式をsの2乗の係数p,sの係数p1,定数項のp2の形に整理します。
続いて以下のように式をsの平方を完成させるよう変形していきます。
=m(t-n(s))^2+p(s^2+p1s/p)+p2
=m(t-n(s))^2+p(s^2+p1s/p+(p1/p)^2-(p1/p)^2)+p2
=m(t-n(s))^2+p(s-q)^2+r
そうすれば
q=-p1/(2p),r=p2-(p1^2/p)
が導出できます。

L^2が最小になるのは m>0,p>0であることから
2つの二乗項が共にゼロになる
 s=q,t=n(s)=n(q)
の時であり、L^2の最小値はrとなります。つまり、Lの最小値は√rです。また、s=q,t=n(q)をY1,Y2の式に代入してやれば
最短の時の点A1,B1の座標が得られます。

この回答への補足

L^2
=m(t-n(s))^2+p(s^2+p1s/p+(p1/p)^2-(p1/p)^2)+p2

=m(t-n(s))^2+p(s^2+p1s/p+(p1/p)^2 )-(p1)^2/p+p2
と計算できたのですが、
q=-p1/(2p)
が導出できないです。どうやって導出すればよいですか?
(rは導出できました)

補足日時:2013/04/04 23:11
    • good
    • 0

No.3です。



ANo.3の補足の質問について

>ちなみにこの式を展開してみたのですが、
>L^2=(t^2)(a1^2+b1^2+c1^2)-2t{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}
+(s^2)(a2^2+b2^2+c2^2)-2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}+{(x2-x1)^2}+{(y2-y1)^2}+{(z2-z1)^2}
>となったのですが・・・

-2sの項の符号が間違っていませんか?
以下のようになるかと…。
L^2=(t^2)(a1^2+b1^2+c1^2)-2t{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}
+(s^2)(a2^2+b2^2+c2^2)+2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}+{(x2-x1)^2}+{(y2-y1)^2}+{(z2-z1)^2}

この先も、計算して
p,q,n(q)とL^2
および
s=q,t=n(q)の時のL^2の最小値(Lの最小値)と
最短距離の時の
直線 Y1 上の点A1:(x1,y1,z1)+n(q)(v1x,v1y,v1z)
直線 Y2 上の点B1:(x2,y2,z2)+q(v2x,v2y,v2z)
も求めて見て下さい。

分からなければ、途中計算式を補足に書いてくれればチェックできるかと…。

やることは単純で簡単ですが、文字定数が多いので計算式が長大になるので、計算式をわかりやすいようにまとめながら、根気良く計算ミスしないよう根気良く計算をすることに尽きます。

この回答への補足

L^2=(t^2)(a1^2+b1^2+c1^2)-2t{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}
+(s^2)(a2^2+b2^2+c2^2)+2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}+{(x2-x1)^2}+{(y2-y1)^2}+{(z2-z1)^2}
の途中式について、

分かりにくいですが、
L^2=(a1^2+b1^2+c1^2){(t^2)-2t{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}/(a1^2+b1^2+c1^2)} +(a2^2+b2^2+c2^2){(s^2)+2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}/{(a2^2+b2^2+c2^2)}}+{(x2-x1)^2}+{(y2-y1)^2}+{(z2-z1)^2}

ここで、
(a1^2+b1^2+c1^2)=m
{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}/(a1^2+b1^2+c1^2)=n(s)
となりました。

この部分だけを考えると、
m{(t^2)-2t+((n(s))^2)-((n(s))^2)}
=m{(t-n(s))^2-((n(s))^2}
とまりました。

ところで、この式からp,q,n(q)はどうやって求まるのでしょうか?
導出過程も分かりやすく書いてくれれば幸いです。

補足日時:2013/04/03 21:17
    • good
    • 0

間違いました。

最後の式は...

V1x・t +x1=V2x・s+x2+L・V3x / √(V3x^2+V3y^2+V3z^2)
V1y・t +y1=V2y・s+y2+L・V3y / √(V3x^2+V3y^2+V3z^2)
V1z・t +z1=V2z・s+z2+L・V3z / √(V3x^2+V3y^2+V3z^2)
    • good
    • 0

回答2と同じと思いますが、日本語しか知らないので...



直線Y1と直線Y2、両方に垂直なベクトルの一つは(V1y・V2z-V1z・V2y, V1z・V2x-V1x・V2y, V1x・V2y-V2x・V2y)と掛けるから、これを(V3x、V3y、V3z)と書けば
V3x・(XーX1)+V3y(Yーy1)+V3Z(Z-z1)=0という面Fは直線Y1を含み、
V3x・(XーX2)+V3y(Yーy2)+V3Z(Z-z2)=0という面Gは直線Y2を含み、平面Fに平行だから、面Fと面Gの間隔はどこでも同じで、それは、直線Y1とY2の最短距離に等しい。

点A(x1、y1、z1)から平面Gまでの距離Lを公式

http://yosshy.sansu.org/distance1.htm

で、求める。すわなち
L=|V3x・(X1-X2)+V3y・(Y1ーY2)+V3z・(Z1ーZ2)|/√(V3x^2+V3y^2+V3z^2)

これで距離Lがでたら点A1=(V1x・t1+x1、V1y・t1+y1、V1z・t1+z1)は
点A2から(V3x、V3y、V3z)方向に距離Lのばした点と同じだから
V1x・t1+x1=V2x・t2+x2+L・V3x・√(V3x^2+V3y^2+V3z^2)
V1y・t1+y1=V2y・t2+y2+L・V3y・√(V3x^2+V3y^2+V3z^2)
V1z・t1+z1=V2z・t2+z2+L・V3z・√(V3x^2+V3y^2+V3z^2)
t1、t2の未知数2つに式3つですが、矛盾した結果にはならないと思いますが..

しかし、鬼のような問題ですね...
間違っていたらごめんなさい。
    • good
    • 0
この回答へのお礼

難しい問題について、丁寧な回答ありがとうございます。
おかげさまで参考になりました。

お礼日時:2013/04/07 18:27

単に使ってる文字定数の個数が多いことが計算式を長大かつ複雑にしているだけです。

一般化するため、文字定数の数を多くしたことが、質問者さんの計算能力の限界を超えただけでしょう。

>各方向ベクトルをa,b,cと変えました。
小細工しても、文字定数の個数が減るわけではありませんから、計算式の長大化は防げません。

式の長大化を避けるには、一般化のための文字定数の個数を減らす工夫しか無いでしょう。つまり、例えば、点Aを原点にとり、直線Y1をx軸にとるといった座標軸をとれば、文字変数の個数が半分程度に減らせるでしょう。

どうせ直すなら
>L^2=(x2+s*a2-x1+t*a1)^2+(y2+s*b2-y1+t*b1)^2+(z2+s*c2-z1+t*c1)^2

ではなく

L^2=(x2+s*a2-x1-t*a1)^2+(y2+s*b2-y1-t*b1)^2+(z2+s*c2-z1-t*c1)^2

とした方が良いでしょう。

L^2=m(t-n(s))^2+p(s-q)^2+r
の形に平方完成すれば良いです。

ここで
m=a1^2+b1^2+c1^2>0,

n(s)={c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}
/(a1^2+b1^2+c1^2),

p={(c1^2)(c1c2^2)^2+2(b1c1c2)^2+2(a1c1c2)^2-(c1c2)^2
+(b1^2)(b1c2)^2+2(a1b1c2)^2+(a1^2)(a1c2)^2-2b1b2c1
c2-2a1a2c1c2+(c1^2)(b2c1)^2+(c1^2)(a2c1)^2
+2(b1b2c1)^2+2(a1b2c1)^2+2(a2b1c1)^2+2(a1a2c1)^2
+b1^2(b1b2)^2+2(a1b1b2)^2-(b1b2)^2+(a1^2)(a1b2)^2
-2a1a2b1b2+(b1^2)(a2b1)^2+2(a1a2b1)^2
+(a1^2)(a1a2)^2-(a1a2)^2}
/(a1^2+b1^2+c1^2)^2 (>0)

q={(a2c1^2+a2b1^2-a1b1b2-a1c1c2)x1
-(a2b1^2+a2c1^2-a1c1c2-a1b1b2)x2
+(b2c1^2+b2a1^2-b1c1c2-a1a2b1)y1
-(b2c1^2+b2a1^2-b1c1c2-a1a2b1)y2
+(c2b1^2+c2a1^2-b1b2c1-a1a2c1)z1
-(c2b1^2+c2a1^2-b1b2c1-a1a2c1)z2}
/{(b1c2)^2+(a1c2)^2-2b1b2c1c2-2a1a2c1c2+(b2c1)^2+(a2c1)^2+(a1b2)^2-2a1a2b1b2+(a2b1)^2}

n(q)=
{(a1c2^2+a1b2^2-a2b1b2-a2c1c2)(x2-x1)
+(b1c2^2-b2c1c2-a1a2b2+b1a2^2)(y2-y1)
+(c1b2^2+c1a2^2-b1b2c2-a1a2c2)(z2-z1)}
/{(b1c2-b2c1)^2+(a1c2-a2c1)^2+(a1b2-a2b1)^2}

以上から
s=q,t=n(q)の時
L^2は最小値r=
{(a1b2-a2b1)(z2-z1)+(a2c1-a1c2)(y2-y1)+(b1c2-b2c1)(x2-x1)}^2
/{(b1c2-b2c1)^2+(a1c2-a2c1)^2+(a1b2-a2b1)^2}
をとります。

#)このように一般化して公式にするには式が長大で複雑すぎる気がします。

この回答への補足

これは、
L^2=(x2+s*a2-x1-t*a1)^2+(y2+s*b2-y1-t*b1)^2+(z2+s*c2-z1-t*c1)^2
を展開してから平方完成をしているのですよね?

ちなみにこの式を展開してみたのですが、
L^2=(t^2)(a1^2+b1^2+c1^2)-2t{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}
+(s^2)(a2^2+b2^2+c2^2)-2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}+{(x2-x1)^2}+{(y2-y1)^2}+{(z2-z1)^2}
となったのですが・・・

もし、そうであれば、なぜp,q,n(q)の式がそうなるのかよく分からないです・・・
(n(s)は成り立ちました)

補足日時:2013/04/03 00:31
    • good
    • 0

ちょっと 添数が厄介ですね。

記号を以下のように改めさせてください。
 A(x1,y1,z1)を通る直線Y1の方向ベクトルを ↑v=(v1,v2,v3)
 B(x2,y2,z2)を通る直線Y2の方向ベクトルを ↑u=(u1,u2,u3)
 内積は(,),外積は×で、 行列式は{ { },{ },{ } } 
  それと↑aを↑bに正射影する写像はP↑b(↑a)
 と書きます。すなわちP↑b(↑a)=[(↑a,↑b)/(|↑b|)^2]↑bです。
 問題がすべて記号でやりにくいうえ、場合分けの必要もあり、仕方ないので、方針を述べます。
 直線とその直線外の点との距離は点からその直線に垂線を下ろした点との長さが最小です。
 ねじれの位置にある2つの直線Y1,Y2を(↑v)×(↑u)(←以下()を省略します)の方からみると
  Y1,y2が重なって見えます。
 その点をY1にのっている点をK,Y2にのっている点をHとするとHAの距離が最小値です。
 その値をhとします。
 ↑v×↑uの単位ベクトルすなわち±(↑u×↑v)/|↑u×↑v|のプラスの方の場合について解説します。
  この単位ベクトルを↑aとおきます。↑BA=(x1-x2,y1-y2,z1-z2)ですから、↑BAを↑aに正射影
 した絶対値がhです。
P↑a(↑BA)=[(↑a,↑BA)/(|↑a|^2)]↑aより
  h=|P↑a(↑BA)|=|[(↑a,↑BA)/(|↑a|^2)]↑a|=|(↑a,↑BA)|=|(|(↑u×↑v,↑BA)/|↑u×↑v|)|
 分母は↑u×↑v=(u2v3-v2u3,u3v1-u1v3,u1v2-u2v1)より
|↑u×↑v|=√[(u2v3-v2u3)^2+(u3v1-u1v3)^2+(u1v2-u2v1)^2]めんどうだからlとおく。
 分子は(↑u×↑v,↑BA)が行列式ですから{{u1 v1 x1-x2},{u2 v2 y1-y2},{u3 v3 z1-z2}}
です。すなわち最小距離はh=|{{u1 v1 x1-x2},{u2 v2 y1-y2},{u3 v3 z1-z2}}|/l
です。行列式|{{u1 v1 x1-x2},{u2 v2 y1-y2},{u3 v3 z1-z2}}|の値をkとする。kはサラスの公式で計算できるが、消える文字がないので戦意喪失。
 さてHの座標はY2上にあるからパラメータtを使ってH(x2+tu1,y2+tu2,z2+tu3)とかける。
 この定数tの値を求める。空間座標の原点をOとして、
 ↑OK=↑OH+↑HK=↑OH±h↑a=↑OH+(h(↑u×↑v)/l)
   =(x2+tu1,y2+tu2,z2+tu3)+(k/l^2)(u2v3-v2u3,u3v1-u1v3,u1v2-u2v1)
  (※ ±の+の方を記述しました。)
この右辺をすべて各成分同士を計算してまとめた値が点Kの座標だからY1の直線の方程式
(x-x1)/v1=(y-y1)/v2=(z-z1)/v3に代入すればtが求まると思います。
 ふっ~大変ですね。
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございます。おかげさまで助かりました。

お礼日時:2013/04/07 18:27

平方完成が何だかは、知っているでしょう?


手間を惜しむ者に、ミューズは微笑まない。

この回答への補足

展開について効率の良い展開方法を教えてください。

あと、平方完成は
例えば、((a+b)^2)+c
のような感じで表すことでしょうか?
しかし、問題の式で表すのは難しいのでは・・・

補足日時:2013/04/02 01:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!