역삼각함수란 삼각함수의 역함수를 의미하고,
역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.
수학에서 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
*/
?>
'프로그래밍 > PHP' 카테고리의 다른 글
PHP 8 정식 릴리즈 출시 (2020년 11월 26일) (0) | 2020.12.03 |
---|---|
이진 파일을 읽어서 16진수로 보여주는 HexView 소스 with PHP (0) | 2013.08.06 |
PHP 언어로 평방근, 입방근, n제곱근 구하는 함수를 구현하고 테스트하기 (0) | 2013.01.12 |