PHP 언어로 역삼각함수, 역쌍곡선함수 값을 구하는 예제
역삼각함수란 삼각함수의 역함수를 의미하고,
역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.
수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, PHP 언어에서는 asin 함수로 구현되어 있다.
또한 PHP 언어에는 쌍곡선함수 sinh 와 cosh 의 역함수로 각각 asinh 와 acosh 가 구현되어 있지만, 아래의 소스에서 arcsinh 와 arccosh 라는 이름의 함수로 자체 구현하였다.
/*
* 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
*/
?>