円と曲線の交点 #3

導関数を与えて微分係数を算出する方法。

      PROGRAM INTERS
      IMPLICIT NONE
      DOUBLE PRECISION Y,YD,Y1,Y2,X,XN,E,X0
      PARAMETER(E=1.0D-12,X0=0.9)
      Y1(X)=X*TAN(X)
      Y2(X)=SQRT(1-X**2)
      Y(X)=Y1(X)-Y2(X)
      YD(X)=(TAN(X)+X/COS(X)**2)-(-X/Y2(X))
      X=X0
      DO
      XN=X-Y(X)/YD(X)
      IF(ABS(Y(XN)).LT.E)THEN
      WRITE(UNIT=*,FMT=*)'X=',XN
      WRITE(UNIT=*,FMT=*)'X*TAN(X)=',Y1(XN)
      WRITE(UNIT=*,FMT=*)'SQRT(1-X**2)=',Y2(XN)
      STOP
      END IF
      X=XN
      END DO
      END

C     INTERSECTION POINT = (0.739085133,0.673612029)