2つの放物線の最短距離

 投稿者:山中和義  投稿日:2014年 7月 7日(月)10時58分55秒
  問題
2つの放物線 y=x^2 と y=-(x+8)^2-1 の最短距離を求めよ。


答え
ラグランジュの未定乗数法より、
F=x^2-y=0、G=-(X+8)^2-1-Y=0、D=(x-X)^2+(y-Y)^2 として、H=D+αF+βG
偏微分して、
 Hx=Dx+αFx=0 ∴2(x-X)+α(2x)=0 ∴(α+1)x-X=0 ←①
 Hy=Dy+αFy=0 ∴2(y-Y)+α(-1)=0 ∴y-Y=α/2 ←②
 HX=DX+βGX=0 ∴-2(x-X)+β(-2(X+8))=0 ∴x+(β-1)X=-8β ←③
 HY=DY+βGY=0 ∴-2(y-Y)+β(-1)=0 ∴y-Y=-β/2 ←④
 Hα=F=0 ←⑤
 Hβ=G=0 ←⑥
となる。
②と④より、β=-α
これを③に代入して、 x-(α+1)X=8α ←③'
①と③'を連立させて、(行列で表記して、逆行列から)
 ┌ α+1  -1      ┐┌ x ┐=┌  0  ┐
 └ 1     -(α+1) ┘└ X ┘ └ 8α ┘
 ┌ x ┐= 1/{-(α+1)^2+1)} ┌ -(α+1)  1    ┐┌  0  ┐
 └ X ┘                   └ -1       α+1 ┘└ 8α ┘
x=-8/(α+2)、X=-8(α+1)/(α+2)
⑥-⑤より、-(X+8)^2-1-x^2+(y-Y)=0
これにx,X,y-Yを代入して、αで表すと、
α^3+2α^2-4α-264=(α-6)(α^2+8α+44)=(α-6){(α+4)^2+28}=0
を得る。これを満たす実数解αは、α=6
これより、x=-1、X=-7 ∴y=x^2=1、Y=-(X+8)^2-1=-2
したがって、点(-1,1)、点(-7,-2)を結ぶ線分が最短となる。
最短距離は、√D = 3√5
(終り)


ところで、

問題
点(p,q) と放物線 y=Ax^2+Bx+C の最短距離を求めよ。

答え
ラグランジュの未定乗数法より、
F=(Ax^2+Bx+C)-y=0、D=(x-p)^2+(y-q)^2 として、H=D+λF
Hx=Dx+λFx=0 ∴(2x-2p)+λ(2Ax+B)=0 ∴x=(-Bλ+2p)/(2Aλ+2) ←①
Hy=Dy+λFy=0 ∴(2y-2q)+λ(-1)=0 ∴y=(λ+2q)/2 ←②
Hλ=F=0 ←③
①と②を③に代入して、
 ( A{(-Bλ+2p)/(2Aλ+2)}^2 +B{(-Bλ+2p)/(2Aλ+2)} +C ) -(λ+2q)/2 = 0
∴( A(-Bλ+2p)^2 +2B(Aλ+1)(-Bλ+2p) +4C(Aλ+1)^2 ) -2(λ+2q)(Aλ+1)^2 = 0
整理すると、
(2A^2) λ^3
+ A(4 +4Aq +B^2 -4AC) λ^2
+ 2(1 +4Aq +B^2 -4AC) λ
+ 4(q -Ap^2 -Bp -C)
= 0
実数解λを求めて、x,yを求める。
(終り)

と、同様な流れで求めることができる。


先の問題に戻って、この解法を利用する。
すなわち、点(p,q)を相似の中心点とする。
そして、放物線がy=Ax^2なら、計算がかなり容易になる。

答え
相似の中心は、頂点(-8,-1)と頂点(0,0)を結ぶ線分を1:1に内分する点だから、(-4.-1/2)
ラグランジュの未定乗数法より、F=x^2-y=0、D=(x+4)^2+(y+1/2)^2として、H=D+λF
Hx=2(x+4)+2xλ=0 ∴x=-4/(λ+1)
Hy=2(y+1/2)-λ=0 ∴y=(λ-1)/2
これをx^2-y=0に代入して、{-4/(λ+1)}^2-(λ-1)/2=0
∴λ^3+λ^2-λ-33=(λ-3)(λ^2+4λ+11)=(λ-3){(λ+2)^2+7}=0
これを満たす実数解λは、λ=3
これより、x=-1, y=1
よって、最短距離は、2√D = 2 √{ ((-1)+4)^2 + (1+1/2)^2 } = 3√5
また、放物線 y=-(x+8)^2-1 上の点は、
点(-1,1)と点(-4,-1/2)を結ぶ線分を2:(-1)に外分する点なので、(-7,-2)となる。
(終り)



!図形と方程式
OPTION ARITHMETIC COMPLEX !複素数平面

SET WINDOW -11,5,-8,8 !表示領域を設定する ※調整が必要である
DRAW grid !XY座標

!放物線y=Ax^2+Bx+C=A(x+B/(2A))^2-(B^2-4AC)/(4A)

LET A=1 !放物線 y=x^2
LET B=0
LET C=0
CALL gcDRAWFNC2(A,B,C,-11,5)

CALL gcFNC2POINT(A,B,C, X1,Y1) !点P1
SUB gcFNC2POINT(A,B,C, PX,PY) !放物線の頂点を得る
   LET PX=-B/(2*A)
   LET PY=-(B^2-4*A*C)/(4*A)
   DRAW disk WITH SCALE(0.1)*SHIFT(PX,PY)
   PRINT "頂点=";PX;PY
END SUB


LET P=-1 !放物線 y=-(x+8)^2-1
LET Q=-16
LET R=-65
CALL gcDRAWFNC2(P,Q,R,-11,5)

CALL gcFNC2POINT(P,Q,R, X2,Y2) !点P2


!●放物線の相似

CALL gcDIVIDE(X1,Y1,X2,Y2,P,-A, xx,yy) !外分する点
DRAW disk WITH SCALE(0.1)*SHIFT(xx,yy)
PRINT xx;yy


!●相似の中心点と放物線との距離を考える。

LET S=2*A^2 !λ^3の係数
LET T=A*(4 +4*A*yy +B^2 -4*A*C) !λ^2の係数
LET U=2*(1 +4*A*yy +B^2 -4*A*C) !λ^1の係数
LET V=4*(yy -A*xx^2 -B*xx -C) !λ^0の係数
PRINT S;T;U;V !debug

CALL Solve3Equ(T/S,U/S,V/S, L1,L2,L3) !実数解を得る
PRINT "λ="; L1 !debug

LET QX1=(-B*L1+2*xx)/(2+2*A*L1)
LET QY1=(L1+2*yy)/2
DRAW disk WITH SCALE(0.1)*SHIFT(QX1,QY1)


CALL gcDIVIDE(QX1,QY1,xx,yy,ABS(P)+ABS(A),-ABS(A), QX2,QY2) !放物線2は相似性から
DRAW disk WITH SCALE(0.1)*SHIFT(QX2,QY2)

PRINT QX1;QY1; QX2;QY2

PRINT SQR((QX1-QX2)^2+(QY1-QY2)^2); 3*SQR(5) !距離
PLOT LINES: QX1,QY1; QX2,QY2

END


!FV.LIB より抜粋

EXTERNAL SUB gcDRAWFNC2(A,B,C,d1,d2) !2次関数y=Ax^2+Bx+C、x=[d1,d2]を描く
OPTION ARITHMETIC COMPLEX !複素数平面
IF A=0 THEN
   PRINT "A=0なので、2次関数ではありません。"; A;B;C
ELSE
   ASK WINDOW x1,x2,y1,y2
   LET x1=MAX(x1,d1)
   LET x2=MIN(x2,d2)
   FOR x=x1 TO x2 STEP (x2-x1)/2^8 !※折れ線による
      PLOT LINES: x,(A*x+B)*x+C;
   NEXT x
   PLOT LINES
END IF
END SUB

!点A(x1,y1),B(x2,y2)を結ぶ線分ABをm:nに分ける点(内分・外分する点)
EXTERNAL SUB gcDIVIDE(x1,y1,x2,y2,m,n, xx,yy)
OPTION ARITHMETIC COMPLEX !複素数平面
LET xx=(n*x1+m*x2)/(m+n) !※外分m:nは、m:(-n)となる
LET yy=(n*y1+m*y2)/(m+n)
END SUB


!複素数版 EQU.LIB より抜粋

EXTERNAL SUB Solve3Equ(P,Q,R, x1,x2,x3)!代数方程式 x^3+Px^2+Qx+R=0 の解
OPTION ARITHMETIC COMPLEX !複素数を扱う
!カルダノ(Cardano)の方法より
LET a=-P^2/3+Q !x=y-P/3として、2次の項のない3次方程式y^3+a*y+b=0に変形する
LET b=2*P^3/27-P*Q/3+R

LET t=b^2/4+a^3/27 !(b/2)^2+(a/3)^3(判別式D=27*b^2+4*a^3と同値)
LET z1=-b/2+SQR(t) !3乗根を求める
LET z2=-b/2-SQR(t)
IF t>=0 THEN !1実根と2虚根
   LET u=SGN(z1)*ABS(z1)^(1/3) !実数の範囲
   LET v=SGN(z2)*ABS(z2)^(1/3)
ELSE !3実根(不還元の場合)
   LET u=EXP(LOG(z1)/3) !複素数の範囲
   LET v=EXP(LOG(z2)/3)
END IF
!!!PRINT u*v; -a/3 !debug

LET w=(-1+SQR(-3))/2 !ω=(-1+√(-3))/2は1の原始3乗根の1つ
LET y1=u+v !y^3+a*y+b=0の解
LET y2=w*u+w^2*v
LET y3=w^2*u+w*v

LET x1=y1-P/3 !x=y-P/3
LET x2=y2-P/3
LET x3=y3-P/3
END SUB


 

Re: 2つの放物線の最短距離

 投稿者:山中和義  投稿日:2014年 7月 8日(火)19時25分22秒
  > No.3412[元記事へ]

> 答え
> 相似の中心は、頂点(-8,-1)と頂点(0,0)を結ぶ線分を1:1に内分する点だから、(-4.-1/2)
> ラグランジュの未定乗数法より、F=x^2-y=0、D=(x+4)^2+(y+1/2)^2として、H=D+λF
> Hx=2(x+4)+2xλ=0 ∴x=-4/(λ+1)
> Hy=2(y+1/2)-λ=0 ∴y=(λ-1)/2
> これをx^2-y=0に代入して、{-4/(λ+1)}^2-(λ-1)/2=0
> ∴λ^3+λ^2-λ-33=(λ-3)(λ^2+4λ+11)=(λ-3){(λ+2)^2+7}=0
> これを満たす実数解λは、λ=3
> これより、x=-1, y=1


考察
Hx=Dx+λFx=0
Hy=Dy+λFy=0
より、λを消去すると、
λ=-Dx/Fx=-Dy/Fy ∴FxDy-FyDx=0

行列式で表現すると、
| Fx  Fy | = 0
| Dx  Dy |
(終り)


F=x^2-y=0、D=(x+4)^2+(y+1/2)^2 として、

| 2x      -1       | = 0
| 2(x+4)  2(y+1/2) |

∴x(2y+1)+(x+4)=0 ∴xy+x+2=0

y=x^2を代入して、x^3+x+2=(x+1)(x^2-x+2)=0
実数解xは、x=-1 ∴y=x^2=1



一般的に、

問題
点(p,q) と放物線 y=Ax^2+Bx+C の最短距離を求めよ。

答え
F=Ax^2+Bx+C-y=0、D=(x-p)^2+(y-q)^2 として、関数行列式(ヤコビアン)を考える。

| ∂F/∂x  ∂F/∂y | = 0
| ∂D/∂x  ∂D/∂y |

| 2Ax+B   -1     | = 0
| 2(x-p)  2(y-q) |

∴(2Ax+B){2(y-q)}-(-1){2(x-p)}=0 ∴(2Ax+B)y-2Aqx-Bq+x-p=0

これより、(2A^2)x^3 +(3AB)x^2 +(2AC+B^2-2Aq+1)x +(BC-Bq-p) = 0

これを満たす実数解xを求める。
(終り)


この3次方程式は、次のものと同じである。

高校生向き

●その1
点(p,q)と放物線上の点(x,y)=(x,Ax^2+Bx+C)の距離を考える。
D
=(x-p)^2+(y-q)^2
=x^2-2px+p^2 +y^2-2qy+q^2
=x^2-2px+p^2 +(Ax^2+Bx+C)^2-2q(Ax^2+Bx+C)+q^2
=(A^2)x^4 +(2AB)x^3 +(1+B^2+2CA-2qA)x^2 +2(-p+BC-qB)x +(p^2+C^2-2qC+q^2)

ここで、D'を考える。
(終り)


●その2
点(p,q)と放物線上の点(x,y)=(x,Ax^2+Bx+C)の距離を考える。
点(x,y)における接線の方程式は、Y-y=(2Ax+B)(X-x) なので、
法線の方程式は、Y-y={-1/(2Ax+B)}(X-x)
これが点(p,q)を通るから、q-y={-1/(2Ax+B)}(p-x)
整理すると、(2A^2)x^3 +(3AB)x^2 +(-2Aq+2AC+B^2+1)x +(-Bq+BC-p)=0

上記のD'と同じ3次方程式が現れる。

 

戻る