導出メモ
すぐ忘れるw
これを の二次方程式と見て解くと
但しプラスの解だけを取った。ここで両辺の対数を取ると、
となる。
さて と置き換えることを考えると なので、
が求まる。
check
program arcsine implicit none real :: x complex :: c, ci = (0.0, 1.0) integer :: i do i = 1, 10 call random_number(x) print *, x, ':', asin(x), -ci * log(ci*x+sqrt(1.0-x*x)) end do print * do i = 1, 10 c = cmplx(i*i*i, i*i) * 1.0e-2 print *, c, ':', asin(c), -ci * log(ci*c+sqrt(1.0-c*c)) end do end program arcsine
3.9208680E-07 : 3.9208680E-07 (3.9208680E-07,-7.6866031E-14) 2.5480442E-02 : 2.5483200E-02 (2.5483200E-02,-1.2659941E-08) 0.3525161 : 0.3602585 (0.3602585,-5.6824399E-09) 0.6669145 : 0.7300602 (0.7300602,-8.5801748E-09) 0.9630555 : 1.298127 (1.298127,-7.1473925E-09) 0.8382882 : 0.9941360 (0.9941360,-6.4942043E-09) 0.3353550 : 0.3419821 (0.3419821,-3.6983820E-09) 0.9153272 : 1.156320 (1.156320,2.0078712E-09) 0.7958636 : 0.9204326 (0.9204326,-2.7873030E-08) 0.8326931 : 0.9839536 (0.9839535,-2.3087523E-09) (9.9999998E-03,9.9999998E-03) : (9.9996664E-03,1.0000333E-02) (9.9996664E-03,1.0000329E-02) (7.9999998E-02,3.9999999E-02) : (8.0021039E-02,4.0117647E-02) (8.0021039E-02,4.0117655E-02) (0.2700000,8.9999996E-02) : (0.2721770,9.3304269E-02) (0.2721770,9.3304262E-02) (0.6400000,0.1600000) : (0.6775884,0.2039517) (0.6775884,0.2039518) (1.250000,0.2500000) : (1.270154,0.7668216) (1.270154,0.7668217) (2.160000,0.3600000) : (1.385768,1.424145) (1.385768,1.424145) (3.430000,0.4900000) : (1.422694,1.915248) (1.422694,1.915249) (5.120000,0.6400000) : (1.444065,2.324834) (1.444065,2.324834) (7.290000,0.8100000) : (1.459105,2.681223) (1.459105,2.681221) (10.00000,1.000000) : (1.470634,2.998273) (1.470634,2.998266)