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

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

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

use Math::Trig;

가 필요하다.

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

#!/usr/bin/env perl
# Filename: testArcSine.pl
#
# Execute: perl testARcSine.pl
#
#   Or
#
# Execute: ./testARcSine.pl
#
# Date: 2013. 1. 4.
# Copyright (c) pkim _AT_ scripts.pe.kr

use Math::Trig;

sub  arccosh
{
  local($a) = @_;

  return log($a + sqrt($a*$a - 1.0));
}

sub  arcsinh
{
  local($a) = @_;

  return log($a + sqrt($a*$a + 1.0));
}

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

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

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

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

=pod
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
=cut

 

 

 

Posted by Scripter
,