역삼각함수란 삼각함수의 역함수를 의미하고,

역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.

수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데,

 C 언어나 C++ 언어에서는 asin 함수로 구현되어 있다.

<gsl/gsl_math.h> 를 인클루드하면 gsl_math.h 가 자체적으로 <math.h> 를 또 인클루드하므로, <math.h> 를 별도로 인크루드할 필요가 없다.

sinh 와 cosh 의 역함수로 그냥 C 언어의 <math.h> 에서 정의된 asinhacosh 를 써도 되지만. 여기서는 <gsl/gsl_math.h> 에서 정의된 gsl_asinhgsl_acosh 를 써 보았다.

참고로 gsl 이라 함은 GNU Scientific Library 의 줄임글이다.

아래의 소스는 Visual C++ 또는 gcc 로 컴파일되는 소스이다. 실행 결과는 같다.

/*
 * Filename: testArcSineWithGSL.c
 *
 *    Require gsl 1.13 above and Visual C 2010
 *
 *     Or
 *
 *    Require gsl 1.13 above and Cygwin
 *
 * Compile: cl testArcSineWithGSL.c gsl.lib /MD
 * Execute: testArcSineWithGSL
 *
 *  Or
 *
 * Compile: gcc -Wall -I/usr/local/include -c testArcSineWithGSL.c
 *     Link: gcc -o testArcSineGSL -L/usr/local/lib testArcSineWithGSL.o -lgsl
 * Execute: ./testArcSineGSL
 *
 *
 * Date: 2013. 1. 10.
 * Copyright (c) pkim _AT_ scripts.pe.kr
 */

#include <stdio.h>
#include <gsl/gsl_math.h>   // This includes <math.h>


int main(void) {
    double x, y, u, v;

    x = -0.9;
    y = asin(x);
    printf("x = %g\n", x);
    printf("y = asin(%g) = %.9f\n", x, y);
    printf("sin(%.9f) = %g\n", y, sin(y));
    printf("\n");

    x = 1.1;
    u = gsl_acosh(x);
    v = gsl_asinh(x);
    printf("x = %g\n", x);
    printf("u = gsl_acosh(%g) = %.10f\n", x, u);
    printf("v = gsl_asinh(%g) = %.10f\n", x, v);
    printf("\n");

    printf("cosh(u) = cosh(%.10f) = %g\n", u, cosh(u));
    printf("sinh(v) = sinh(%.10f) = %g\n", v, sinh(v));

    return 0;
}

/*
Output:
x = -0.9
y = asin(-0.9) = -1.119769515
sin(-1.119769515) = -0.9

x = 1.1
u = gsl_acosh(1.1) = 0.4435682544
v = gsl_asinh(1.1) = 0.9503469298

cosh(u) = cosh(0.4435682544) = 1.1
sinh(v) = sinh(0.9503469298) = 1.1

*/

 

 

Posted by Scripter

댓글을 달아 주세요

역삼각함수란 삼각함수의 역함수를 의미하고,

역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.

수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데,

Python 언어에서는 math.asin() 함수로 이미 구현되어 있다.

이를 사용하기 위해서는 import 구문

import math

가 있으면 된다. 그러나 scipy 나 numpy 모듈을 사용할 때는 얘기가 달라진다.

sin 함수의 역함수가 scipy 모듈에서는 scipy.arcsin 으로, numpy 모듈에서는 numpy.arcsin 으로 구현되어 있다. (asin 이 아니라 arcsin 임에 주의하자.) 한편 mpmath 모듈에서는 mpmath.asin 으로 구현되어 았다. 이들 이용하기 위해서는 import 구문

import scipy

또는

import numpy

또는

import mpmath

가 각각 필요하다.

다음의 첫 두 개 소스는 scipy 와 numpy 의 차이 이외에는  똑 같다.

 

[ scipy 모듈을 이용하는 Python 소스 ]

#!/usr/bin/env python
# -*- encoding: utf-8 -*-

# Filename: testArcSineWithScipy.py
#
#            Approximate square roots, cubic roots and n-th roots of a given number.
#
# Execute: python testArcSineWithScipy.py
#
# Date: 2013. 1. 9.
# Copyright (c) 2013 PH Kim  (pkim __AT__ scripts.pe.kr)

import scipy as sp

x = -0.9
y = sp.arcsin(x)
print "x = %g" % x
print "y = sp.arcsin(x) = sp.arcsin(%g) = %.9f" % (x, y)
print "sp.sin(y) = sp.sin(%.9f) = %g" % (y, sp.sin(y))
print

x = 1.1
u = sp.arccosh(x)
v = sp.arcsinh(x)
print "x = %g" % x
print "u = sp.arccosh(x) = sp.arccosh(%g) = %.10f" % (x, u)
print "v = sp.arcsinh(x) = sp.arcsinh(%g) = %.10f" % (x, v)
print

print "sp.cosh(u) = sp.cosh(%.10f) = %g" % (u, sp.cosh(u))
print "sp.sinh(v) = sp.sinh(%.10f) = %g" % (v, sp.sinh(v))

"""
Output:
x = -0.9
y = sp.arcsin(x) = sp.arcsin(-0.9) = -1.119769515
sp.sin(y) = sp.sin(-1.119769515) = -0.9

x = 1.1
u = sp.arccosh(x) = sp.arccosh(1.1) = 0.4435682544
v = sp.arcsinh(x) = sp.arcsinh(1.1) = 0.9503469298

sp.cosh(u) = sp.cosh(0.4435682544) = 1.1
sp.sinh(v) = sp.sinh(0.9503469298) = 1.1
"""

 

[ numpy 모듈을 이용하는 Python 소스 ]

#!/usr/bin/env python
# -*- encoding: utf-8 -*-

# Filename: testArcSineWithNumpy.py
#
#            Approximate square roots, cubic roots and n-th roots of a given number.
#
# Execute: python testArcSineWithNumpy.py
#
# Date: 2013. 1. 9.
# Copyright (c) 2013 PH Kim  (pkim __AT__ scripts.pe.kr)

import numpy as np

x = -0.9
y = np.arcsin(x)
print "x = %g" % x
print "y = np.arcsin(x) = np.arcsin(%g) = %.9f" % (x, y)
print "np.sin(y) = np.sin(%.9f) = %g" % (y, np.sin(y))
print

x = 1.1
u = np.arccosh(x)
v = np.arcsinh(x)
print "x = %g" % x
print "u = np.arccosh(x) = np.arccosh(%g) = %.10f" % (x, u)
print "v = np.arcsinh(x) = np.arcsinh(%g) = %.10f" % (x, v)
print

print "np.cosh(u) = np.cosh(%.10f) = %g" % (u, np.cosh(u))
print "np.sinh(v) = np.sinh(%.10f) = %g" % (v, np.sinh(v))

"""
Output:
x = -0.9
y = np.arcsin(x) = np.arcsin(-0.9) = -1.119769515
np.sin(y) = np.sin(-1.119769515) = -0.9

x = 1.1
u = np.arccosh(x) = np.arccosh(1.1) = 0.4435682544
v = np.arcsinh(x) = np.arcsinh(1.1) = 0.9503469298

np.cosh(u) = np.cosh(0.4435682544) = 1.1
np.sinh(v) = np.sinh(0.9503469298) = 1.1
"""

 

 

[ mpmath 모듈을 이용하는 Python 소스 ]

#!/usr/bin/env python
# -*- encoding: utf-8 -*-

# Filename: testArcSineWithMpmath.py
#
#            Approximate square roots, cubic roots and n-th roots of a given number.
#
# Execute: python testArcSineMpmath.py
#
# Date: 2013. 1. 9.
# Copyright (c) 2013 PH Kim  (pkim __AT__ scripts.pe.kr)

import mpmath as mp

x = -0.9
y = mp.asin(x)
print "x = %g" % x
print "y = mp.asin(%g) = %.9f" % (x, y)
print "mp.sin(y) = mp.sin(%.9f) = %g" % (y, mp.sin(y))
print

x = 1.1
u = mp.acosh(x)
v = mp.asinh(x)
print "x = %g" % x
print "u = mp.acosh(%g) = %.9f" % (x, u)
print "v = mp.asinh(%g) = %.9f" % (x, v)
print

print "mp.cosh(u) = mp.cosh(%.9f) = %g" % (u, mp.cosh(u))
print "mp.sinh(v) = mp.sinh(%.9f) = %g" % (u, mp.sinh(v))

 

 

 

Posted by Scripter

댓글을 달아 주세요

역삼각함수란 삼각함수의 역함수를 의미하고,

역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.

수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, Maxima 언어에서는 asin 함수로 구현되어 있다. 또한 Maxima 언어에는 쌍곡선함수 sinhcosh 의 역함수가 각각 asinhacosh 라는 이름으로 구현되어 있다.

첨고로 Maxima 의 Input 에서  ; 로 끝나는 명령은 명령의 수행 결과가 Output 으로 출력되고, $ 로 끝나는 줄은 Output 으로의 출력을 보류한다. 이 때는 disp() 나 printf() 등에 의한 명시적인 출력만 출력된다.

아래는 wxMaxima 를 이용하여 역삼각함수와 역쌍곡함수의 값을 계산하고 검증한 것이다.

Maxima 에서 다음 몇 줄만 입력하여 각 cell 마다 Ctrl + Enter 키를 눌러 실행하면 된다. 아니면 메뉴의 Cell -> Evaluate All Cells 를 택하면 한꺼번에 실행된다.

 

Posted by Scripter

댓글을 달아 주세요

역삼각함수란 삼각함수의 역함수를 의미하고,

역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.

수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, Mathematica 언어에서는 ArcSin 함수로 구현되어 있다. 또한 Mathematica 언어에는 쌍곡선함수 sinhcosh 의 역함수로 각각 ArcSinhArcCosh 가 구현되어 있다.

Mathematica Notebook 에서 다음 몇 줄만 입력하여 각 cell 마다 Shift + Enter 키를 눌러 실행하면 된다. SetPrecision 은 계산 과정과 출력에서 정확도의 유효수자 개수릉 지정하기 위해 사용되었다.

x = -0.9
y = SetPrecision[ArcSin[x], 10]

Sin[y]

x = 1.1
u = SetPrecision[ArcCosh[x], 10]
v = SetPrecision[ArcSinh[x], 10]

Cosh[u]
Sinh[v]

 

 

                     <* Notebook 의 각 cell 에 입력한 모습 *>

 

          <* Notebook 의 각 cell 마다 Shift + Enter 키를 눌러 결과를 확인한 모습 *>

 

 

 

Posted by Scripter

댓글을 달아 주세요

역삼각함수란 삼각함수의 역함수를 의미하고,

역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.

수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, Octave 언어에서는 asin 함수로 구현되어 있다.

또한 Gnuplot 언어에는 쌍곡선함수 sinhcosh 의 역함수로 각각 asinhacosh 가 구현되어 있지만, 비교를 위해 arcsinharccosh 라는 이름의 함수로 아래의 소스에 구현해 보았다.

소스 파일을 저장할 때 확장명을 plt 로 해도 되고 dem 으로 해도 된다. Gnuplot 에서 저정된 소스 파일을 load 하면 실행결과가 출력된다.

# Filename: estArcSine.plt
#
# Execute: load '저장경로/testArcSine.plt'
#
# Date: 2013. 1. 8.
# Copyright (c) PKim (pkim __AT__ scripts.pe.kr)

arccosh(x) = log(x + sqrt(x*x - 1))
arcsinh(x) = log(x + sqrt(x*x + 1))

x = -0.9
y = asin(x)
print "y = asin(", x, ") = ", y
print "sin(", y, ") = ", sin(y)
print ""

x = 1.1
u = acosh(x)
print "u = acosh(", x, ") = ", u
print "cosh(", u, ") = ", cosh(u)
print ""

v = asinh(x)
print "v = asinh(", x, ") = ", v
print "sinh(", v, ") = ", sinh(v)
print ""

print "arccosh(", x, ") = ", arccosh(x)
print "arcsinh(", x, ") = ", arcsinh(x)
print ""

##################################
# Output:
# -------------------------------------
# y = asin(-0.9) = -1.11976951499863
# sin(-1.11976951499863) = -0.9
#
# u = acosh(1.1) = 0.443568254385115
# cosh(0.443568254385115) = 1.1
#
# v = asinh(1.1) = 0.950346929821134
# sinh(0.950346929821134) = 1.1
#
# arccosh(1.1) = 0.443568254385115
# arcsinh(1.1) = 0.950346929821134  
##################################

 

 

        <* 저장된 Gnuplot 에서 소스 파일 testArcSine.plt 를 load 하여 실행한 화면 *>

 

 

 

 

Posted by Scripter

댓글을 달아 주세요

역삼각함수란 삼각함수의 역함수를 의미하고,

역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.

수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, Octave 언어에서는 asin 함수로 구현되어 있다.

또한 Octave 언어에는 쌍곡선함수 sinhcosh 의 역함수로 각각 asinhacosh 가 구현되어 있지만, 비교를 위해 arcsinharccosh 라는 이름의 함수로 아래의 소스에 구현해 보았다.

%{
% Filename: testArcSine.m
%
% Execute: octave -qf testArcSine.m
%
% Date: 2013. 1. 8.
% Copyright (c) pkim _AT_ scripts.pe.kr
%}


function y = arcsinh(x)
    y = log(x + sqrt(x*x + 1));
endfunction


function y = arccosh(x)
    y = log(x + sqrt(x*x - 1));
endfunction


x = -0.9;
y = asin(x);

printf("y = asin(%g) = %.9f\n", x,  y);
printf("sin(y) = sin(%.9f) = %g\n", y, sin(y));
printf("\n");

x = 1.1;
u = acosh(x);
printf("u = acosh(%g) = %.10f\n", x,  u);

v = asinh(x);
printf("v = asinh(%g) = %.10f\n", x, v);

printf("cosh(u) = cosh(%.10f) = %g\n", u, cosh(u));
printf("sinh(v) = sinh(%.10f) = %g\n", v, sinh(v));
printf("\n");

printf("arccosh(%g) = %.10f\n", x, arccosh(x));
printf("arcsinh(%g) = %.10f\n", x, arcsinh(x));

#{
Output:
y = asin(-0.9) = -1.119769515
sin(y) = sin(-1.119769515) = -0.9

u = acosh(1.1) = 0.4435682544
v = asinh(1.1) = 0.9503469298
cosh(u) = cosh(0.4435682544) = 1.1
sinh(v) = sinh(0.9503469298) = 1.1

arccosh(1.1) = 0.4435682544
arcsinh(1.1) = 0.9503469298

#}

 

 

 

Posted by Scripter

댓글을 달아 주세요

역삼각함수란 삼각함수의 역함수를 의미하고,

역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.

수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데,

Boo 언어에서는 닷넷에서 사용하는  Math.Asin() 함수를 쓰면 된다.

이를 사용하기 위해서는 import 구문

import System

이 필요하다.

 

Boo 언어는 Pytyhon 언어와 비슷하며, 닷넷 용이라는 점에서는 IronPython 과 더더욱 비슷하다.

다음 소스는 Boo 인타프리터 booi 로 실행해도 되고, Boo 컴파일러 booc 로 컴파일하여 생성된 실행 파일을 실행해도 된다. booc 로 컴파일이 성공적으로 끝나면 *.exe 파일과 *.pdb 파일이 생성된다.

#  Filename: testArcSine.boo
#
#   Execute: booi testArcSine.boo
#
#    Or
#
#   Compile: booc testArcSine.boo
#   Execute: testArcSine.boo
#
# Date: 2013. 1. 6.
# Copyright (c) pkim _AT_ scripts.pe.kr

import System

def asinh(x as double) as double:
    y = Math.Log(x + Math.Sqrt(x*x + 1))
    return y

def acosh(x as double) as double:
    y = Math.Log(x + Math.Sqrt(x*x - 1))
    return y


# 실행 시작 지점
x = -0.9
y = Math.Asin(x)
print string.Format("y = asin({0}) = {1:F9}", x,  y)
print string.Format("sin(y) = sin({0:F9}) = {1}", y, Math.Sin(y))
print

x = 1.1
u = acosh(x)
print string.Format("u = acosh({0}) = {1:F10}", x,  u)

v = asinh(x)
print string.Format("v = asinh({0}) = {1:F10}", x,  v)

print string.Format("cosh(u) = cosh({0:F10}) = {1}", u,  Math.Cosh(u))
print string.Format("sinh(v) = sinh({0:F10}) = {1}", v,  Math.Sinh(v))

/*
Output:
y = asin(-0.9) = -1.119769515
sin(y) = sin(-1.119769515) = -0.9

u = acosh(1.1) = 0.4435682544
v = asinh(1.1) = 0.9503469298
cosh(u) = cosh(0.4435682544) = 1.1
sinh(v) = sinh(0.9503469298) = 1.1
*/

 

 

Posted by Scripter

댓글을 달아 주세요

역삼각함수란 삼각함수의 역함수를 의미하고,

역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.

수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데,

 Objective-C 언에에서는 C 언어나 C++ 언어에서 처럼 asin 함수로 구현되어 있다.

아래의 소스는 C 언어용 소스를 아두 조금 고친 것으로서, 윈도우용 Dev-CPP IDE 에서 Ctrl+F11 을 클릭하면 캄파일되는 소스이다.

/*
 *  Filename: testArcSine.m 
 *
 *   Compile: Click Ctrl+F11
 *
 *   Execute: testArcSine
 *
 *      Date: 2013. 1. 1.
 *   Copyright (c) pkim _AT_ scripts.pe.kr
 */

#import <Foundation/Foundation.h>   // for exit()
#import <stdio.h>
#import <string.h>
#import <math.h>

double asinh(double x) {
    double y = log(x + sqrt(x*x + 1));
    return y;
}

double acosh(double x) {
    double y = log(x + sqrt(x*x - 1));
    return y;
}

typedef struct _PAIR {
    double x1;
    double x2;
} PAIR;

void printUsing() {
    printf("Using: testGoldenRatio [-h|-help]\n");
    printf("This calculates the value of the golden ratio.\n");
}

// 이차방정식 a x^2 + b x + c  = 0 의 근을 구한다.
PAIR *findQuadraticRoot(double a, double b, double c) {
    static PAIR zeros;
    if (a == 0.0) {
        fprintf(stderr, "Since the highest coefficient is zero, the given equation is not a quadratic equation.\n");
        exit(1);
    }
    else if (b*b - 4*a*c < 0.0) {
        fprintf(stderr, "Since the discriminant %f is negative, the given equation has no real root.\b", b*b - 4*a*c);
    exit(1);
    }

    zeros.x1 = (-b + sqrt(b*b - 4*a*c)) / (2.0 * a);
    zeros.x2 = (-b - sqrt(b*b - 4*a*c)) / (2.0 * a);
    return (PAIR *)&zeros;
}

void main(int argc, const char *argv[]) {
    double u, v;
    double x = -0.9;
    double y = asin(x);

    printf("y = asin(%g) = %.9f\n", x,  y);
    printf("sin(y) = sin(%.9f) = %g\n", y, sin(y));
    printf("\n");

    x = 1.1;
    u = acosh(x);
    printf("u = acosh(%g) = %.10f\n", x,  u);

    v = asinh(x);
    printf("v = asinh(%g) = %.10f\n", x, v);

    printf("cosh(u) = cosh(%.10f) = %g\n", u, cosh(u));
    printf("sinh(v) = sinh(%.10f) = %g\n", v, sinh(v));
}

/*
Output:
y = asin(-0.9) = -1.119769515
sin(y) = sin(-1.119769515) = -0.9

u = acosh(1.1) = 0.4435682544
v = asinh(1.1) = 0.9503469298
cosh(u) = cosh(0.4435682544) = 1.1
sinh(v) = sinh(0.9503469298) = 1.1
*/

 

 

Posted by Scripter

댓글을 달아 주세요

역삼각함수란 삼각함수의 역함수를 의미하고,

역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.

수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, D 언어에서는 asin 함수로 구현되어 있다. D 언어에서 지수함수, 로그함수, 삼각함수, 역삼각함수, 쌍곡선함수, 역쌍곡선함수 등을 이용하려면 import 구문

import std.math;

가 필요하다.

D 언어에 쌍곡선함수 sinhcosh 의 역함수로 각각 asinhacosh 가 이미 구현되어 있지만, 아래의 소스에서 arcsinharccosh 라는 이름의 함수로 자체 구현해 보았다.

삼각함수 sin, cos, tan 값은 cast(double) 로 캐스팅해서 (double 타입으로) 명시적인 타입변환해야 한다. 안 그러면 전혀 다른 값이 되어 버린다. (real 타입과의 충돌 때문에 이런 버그(?)가 있는 것 같은데, 이런 현상은 DMD 1.0 이든 DMD 2,0 이든 마찬가지이다.) 쌍곡선함수 sinh, cosh, tanh 값에는 이런 현상이 없다.

 

/*
 * Filename: testArcSine.d
 *
 * Cpmpile: dmd testArcSine.d
 * Execute: ./testArcSine
 *
 * Date: 2013. 1. 4.
 * Copyright (c) pkim _AT_ scripts.pe.kr
 */

import std.c.stdio;    // printf 함수 사용을 위해
import std.stdio;    // writeln 함수 사용을 위해
import std.math;

double arcsinh(double x) {
    double y = log(x + sqrt(x*x + 1));
    return y;
}

double arccosh(double x) {
    double y = log(x + sqrt(x*x - 1));
    return y;
}

int main (string[] args) {
    double x, y, u, v;

    x = -0.9;
    y = asin(x);

    printf("y = asin(%g) = %.9f\n", x, y);
    printf("sin(y) = sin(%.9f) = %g\n", y, cast(double) sin(y));
    writeln("");
   
    x = 1.1;
    u = acosh(x);
    printf("u = acosh(%g) = %.10f\n", x, u);

    v = asinh(x);
    printf("v = asinh(%g) = %.10f\n", x, v);

    printf("cosh(u) = cosh(%.10f) = %g\n", u, cosh(u));
    printf("sinh(v) = sinh(%.10f) = %g\n", v, sinh(v));
    writeln("");

    printf("arccosh(%g) = %.10f\n", x, arccosh(x));
    printf("arcsinh(%g) = %.10f\n", x, arcsinh(x));
    return 0;
}

/*
Output:
y = asin(-0.9) = -1.119769515
sin(y) = sin(-1.119769515) = -0.9

u = acosh(1.1) = 0.4435682544
v = asinh(1.1) = 0.9503469298
cosh(u) = cosh(0.4435682544) = 1.1
sinh(v) = sinh(0.9503469298) = 1.1

arccosh(1.1) = 0.4435682544
arcsinh(1.1) = 0.9503469298
*/

 

 

 

Posted by Scripter

댓글을 달아 주세요

역삼각함수란 삼각함수의 역함수를 의미하고,

역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.

수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, PHP 언어에서는 asin 함수로 구현되어 있다.

또한 PHP 언어에는 쌍곡선함수 sinhcosh 의 역함수로 각각 asinhacosh 가 구현되어 있지만, 아래의 소스에서 arcsinharccosh 라는 이름의 함수로 자체 구현하였다.

<?php
/*
 * Filename: testArcSine.php
 *
 * Execute: php testArcSine.php
 *
 * Date: 2013. 1. 4.
 * Copyright (c) pkim _AT_ scripts.pe.kr
 */

#include <stdio.h>
#include <math.h>

function arcsinh(&$x, &$y) {
    $y = log($x + sqrt($x*$x + 1.0));
    return $y;
}

function arccosh(&$x, &$y) {
    $y = log($x + sqrt($x*$x - 1.0));
    return $y;
}


$x = -0.9;
$y = asin($x);
echo "y = asin($x) = " . sprintf("%.9f", $y) . "\n";
echo "sin(y) = sin(" , sprintf("%.9f", $y) . ") = " . sin($y) . "\n";
echo "\n";

$x = 1.1;
$u = acosh($x);
echo "v = acosh($x) = ". sprintf("%.10f", $u) . "\n";
$v = asinh($x);
echo "v = asinh($x) = ". sprintf("%.10f", $v) . "\n";

echo "cosh(u) = cosh(" . sprintf("%.10f", $u) . ") = ". cosh($u) . "\n";
echo "sinh(v) = sinh(" . sprintf("%.10f", $v) . ") = ". sinh($v) . "\n";
echo "\n";

echo "arccosh($x) = ". sprintf("%.10f", arccosh($x)) . "\n";
echo "arcsinh($x) = ". sprintf("%.10f", arcsinh($x)) . "\n";

/*
Output:
y = asin(-0.9) = -1.119769515
sin(y) = sin(-1.119769515) = -0.9

v = acosh(1.1) = 0.4435682544
v = asinh(1.1) = 0.9503469298
cosh(u) = cosh(0.4435682544) = 1.1
sinh(v) = sinh(0.9503469298) = 1.1

arccosh(1.1) = 0.4435682544
arcsinh(1.1) = 0.9503469298
*/

?>

 

 

 

Posted by Scripter

댓글을 달아 주세요