|
我々は 若き飯高先生の頃の血が逆流した 二重接線を 追体験し 其処に停留状態で 悲嘆中..先に進めず...
●2次関数と円x^2+y^2=r^2との共通接線 を 飯高先生が推奨された @十進BASIC@ を用いて
具現された方に 邂逅しました(2014.3.23) ↓ ;
其れを 味読願います。
(どの位 プログラムを組む愉しみを 味われたか 忖度しつつ)
-------------------------------------------------------------------------------------
!図形と方程式
SET WINDOW -8,8,-8,8 !表示領域を設定する ※調整が必要である
DRAW grid !XY座標
PUBLIC NUMERIC cEps !精度 ※調整が必要である
LET cEPS=1E-8
PUBLIC NUMERIC cINF !∞ ※調整が必要である
LET cINF=999999
PUBLIC NUMERIC gcCOLOR,gcSTYLE,gcLINESTYLE !描画色、線種
LET gcCOLOR=1 !黒色
LET gcLINESTYLE=1 !実線
!------------------------------ ここまでがサブルーチン
!●2次関数と円x^2+y^2=r^2との共通接線
LET A=1/2
LET B=0
LET C=-5
CALL gcDRAWFNC2(A,B,C,-8,8)
LET R=3 !x^2+y^2=r^2
CALL gcDRAWCIRCLE(0,0,-R^2,"",-1)
!2次関数y=Ax^2+Bx+C上の点(a,Aa^2+Ba+C)における接線
!y-f(a)=f'(a)(x-a) ∴y=(2Aa+B)x+(C-Aa^2)
!これが、円x^2+y^2=R^2と接するには、円の中心との距離が半径となる必要がある。
!| C-Aa^2 |/√{(2Aa+B)^2+(-1)^2}=R
!∴A^2a^4 -2(2A^2R^2+AC)a^2 -4ABR^2a -(B^2+1)R^2+C^2=0
!この4次方程式の実数解が2次関数上の接点である。
LET aa=A^2 !x^4の係数
LET bb=0 !x^3
LET cc=-2*(2*A^2*R^2+A*C) !x^2
LET dd=-4*A*B*R^2 !x
LET ee=-(B^2+1)*R^2+C^2 !1
DIM x(4)
CALL Solve4Equ(aa,bb,cc,dd,ee, x,K) !実数解を得る
PRINT K
MAT PRINT x;
FOR i=1 TO K
CALL gcDRAWPOINT(x(i),gcFNC2VAL(x(i),A,B,C),STR$(i))
LET L=2*A*x(i)+B !2次関数上の点における接線
LET M=-1
LET N=C-A*x(i)^2
CALL gcDRAWLINE(L,M,N,"",-1)
NEXT i
END
!考察
!2次関数y=Ax^2+Bx+C上の点(a,Aa^2+Ba+C)における接線
!y-f(a)=f'(a)(x-a) ∴y=(2Aa+B)x+(C-Aa^2)
!これが、円(x-P)^2+(y-Q)^2=R^2と接するには、円の中心との距離が半径となる必要がある。
!| (2Aa+B)P-Q+C-Aa^2 |/√{(2Aa+B)^2+(-1)^2}=R
!((2Aa+B)P-Q+C-Aa^2)^2=R^2{(2Aa+B)^2+(-1)^2}
!{(BP-Q+C)+2APa-Aa^2}^2=R^2{4A^2a^2+4ABa+B^2+1}
!(BP-Q+C)^2+(BP-Q+C)(2APa-Aa^2)+(2APa-Aa^2)^2=R^2{4A^2a^2+4ABa+B^2+1}
!(BP-Q+C)^2+2AP(BP-Q+C)a-A(BP-Q+C)a^2 +4A^2P^2a^2-4A^2Pa^3+A^2a^4=R^2{4A^2a^2+4ABa+B^2+1}
!A^2a^4 -4A^2Pa^3 -{A(BP-Q+C)-4A^2(P^2-R^2)}a^2 +2AP(BP-Q+C-2ABR^2)a +(BP-Q+C)^2-(B^2+1)R^2=0
EXTERNAL SUB Solve4Equ(a4,a3,a2,a1,a0, x(),K) !4次方程式 Ax^4+Bx^3+Cx^2+Dx+E=0、A≠0 の解
!フェラーリ(Ferrari)の方法
!x=y-a3/(4*a4)を代入して、3次の項を消去すると、
!y^4+p*y^2+q*y+r=0
!ただし、
! p=-3*a3^2/(8*a4^2)+a2/a4
! q=a3^3/(8*a4^3)-a2*a3/(2*a4^2)+a1/a4
! r=-3*a3^4/(256*a4^4)+a2*a3^2/(16*a4^3)-a1*a3/(4*a4^2)+a0/a4
LET p=(-3*a3^2/8/a4 + a2)/a4
LET q=((a3^3/(2*a4) - 2*a2*a3)/(2*a4) + 2*a1)/(2*a4)
LET r=(((-3*a3^4/(4*a4) + 4*a2*a3^2)/(4*a4) - 4*a1*a3)/(4*a4) + 4*a0)/(4*a4)
!!!PRINT p;q;r !debug
!q=0のとき、
! 複2次式 (y^2 - (-p-√{p^2-4r})/2)(y^2 - (-p+√{p^2-4r})/2)=0 と因数分解される。
!q≠0のとき、
! y^4=-p*y^2-q*y-rとして、両辺にy^2*z+z^2/4を加えて、変形すると、
! (y^2+z/2)^2=(z-p){y-q/(2*(z-p))}^2 + {1/(4*(z-p))}(z^3-p*z^2-4*r*z+4*p*r-q^2)
! ここで、z^3-p*z^2-4*r*z+4*p*r-q^2=0となるzを1つ求めると、
! 同様に、複2次式
! (y^2+z/2 - √(z-p){y-q/(2*(z-p))})(y^2+z/2 + √(z-p){y-q/(2*(z-p))})=0
! と因数分解できる。
!後は、この2次方程式を解けばよい。
IF q=0 THEN
LET t=p^2-4*r !判別式
IF t>0 THEN
CALL Solve2Equ(1,0,-(-p-SQR(t))/2 ,y1,y2,K1)
CALL Solve2Equ(1,0,-(-p+SQR(t))/2 ,y3,y4,K2)
ELSEIF t=0 THEN !(y^2 + p/2)^2=0の形
CALL Solve2Equ(1,0,p/2 ,y1,y2,K1)
LET K2=0
ELSE !2式とも虚数解
LET K1=0
LET K2=0
END IF
ELSE
CALL Solve3Equ(1,-p,-4*r,4*p*r-q^2, z1,z2,z3,KK)
LET t=SQR(z1-p)
CALL Solve2Equ(1,-t, q/(2*t)+z1/2, y1,y2,K1)
CALL Solve2Equ(1, t,-q/(2*t)+z1/2, y3,y4,K2)
END IF
LET K=0 !実数解の個数
IF K1>0 THEN
LET K=K+1
LET x(K)=y1-a3/(4*a4) !1番目 x=y-a3/(4*a4)
IF K1=2 THEN
LET K=K+1
LET x(K)=y2-a3/(4*a4) !2番目
END IF
END IF
IF K2>0 THEN
LET K=K+1
LET x(K)=y3-a3/(4*a4) !3番目
IF K2=2 THEN
LET K=K+1
LET x(K)=y4-a3/(4*a4) !4番目
END IF
END IF
END SUB
!------------------------------
MERGE "FV.LIB" !関数とグラフ、図形と方程式
MERGE "EQU.LIB" !整式、方程式
=============================================
少女 A は ↑をみた刹那
双方 の ■ 双対曲線を 多様な発想で求め;
c1; x^2 + y^2 - r^2==0 c1^* ;_________________==0
c2; y - (A*x^2 + B*x + C)==0 c2^* ;_________________==0
c1^*∩c2^* を求め瞬時に図示可能と 方針を 述べた。
云うだけ番長なら 誰でも叶う発想ね と カゲの声 が聴こえ 為した;
c1^* ;(r^2 x^2+r^2 y^2-1)=0
c2^* ; (4 A C y^2+4 A y-B^2 y^2-2 B x y-x^2)=0
この交点なら 最高4 で 4本の共通接線ねっ! と 妹の a.
例示の
LET A=1/2
LET B=0
LET C=-5
r=3 は 特殊すぎて 2本ねっと と 妹の a.
4本の共通接線が 欲しい! と 欲求 され 少女 A が 期待にこたえた;
<< Graphics`ImplicitPlot`
{(-5 - 2 x - x^2/2 + y) (-9 + x^2 + y^2) ==
0, (-x^2 + 2 y - 4 x y + 6 y^2) (-1 + 9 x^2 + 9 y^2) == 0,
1.` - 0.3333333333333333` y == 0,
1 + (0.32229741684803903` ) x + (0.08506166118876686` ) y == 0,
1 + (0.2557143513185063` ) x - (0.213825353129292` ) y == 0,
1 - (0.3318579220126996`) x + (0.03132779450462768` ) y == 0};
ImplicitPlot[%, {x, -8, 9}, {y, -5, 48 - 20},
PlotStyle -> {{Thickness[0.012],
RGBColor[1, 0, 0]}, {Thickness[0.00712],
RGBColor[0, 0, 1]}, {Thickness[0.01],
RGBColor[0.3, 0.31, 0.3]}, {Thickness[0.01],
RGBColor[0.3, 0.31, 0.3]}, {Thickness[0.01],
RGBColor[0.3, 0.31, 0.3]}, {Thickness[0.01],
RGBColor[0.3, 0.31, 0.3]},
{Thickness[0.015], RGBColor[0.913, 0.3, 0.961]},
{Thickness[0.015], RGBColor[0.913, 0.3, 0.961]}},
AspectRatio -> Automatic, PlotPoints -> 276 - 100]
グラフは 伊達に描くものではありません と。
薬物 依存症の 少女 A の 両親が 依存した 顛末 の コピペ;
双対が 円 と 双曲線 で 交点を ロハで と 在りがたや
\\\\\\\\\\\\\
行間埋め子さんが 方針はずばり述べているが
上の行間が空き過ぎ 故
必ず 行間を丁寧に埋めて!!!! と 要望した。
要望をシカトしないで 此処に投稿願います;
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
特殊過ぎる
例示の
LET A=1/2
LET B=0
LET C=-5
r=3 を 双対の視座で 具
\\\\\\\\\\\
草の根 民間 レベル での 真の 相互尊重 に 休日フル利用で
感謝致します。
それぞれの お国言葉で その感動 語句を
付記願います.
<----土筆が 恥ずかしげに ...と
の 地方も在り....
|
|