# マニュアルページ compound.3m

## 名前

         exp2, exp10, log2, compound, annuity - 指数関数、対数関 数、
         財務関数

## 形式

         cc [ flag ... ] file ...  -lsunmath -lm [ library ... ]

              flag にはフラグ、 file にはファイル名、 library には ラ
              イブラリ名を指定します。

         #include <sunmath.h>

         double exp2(double x);

         double exp10(double x);

         double log2(double x);

         double compound(double r, double n);

         double annuity(double r, double n);

## 機能説明

         exp2( ) と exp10( ) は、それぞれ 2**x および 10**x を返し ま
         す。

         log2( ) は、2 を底とする x の対数を返します。

         compound() および annuity() は、定期利率を r として、 n 期に
         発生する利息の財務計算において重要な関数です。 compound(r,n)
         は、複利利回り (1+r)**n を計算します。最初の元金を P0, と す
         る と、 n 期後の元金は Pn = P0 *compound(r,n) で求めることが
         できます。 annuity(r,n) は、年賦金利回りの現 在 の 値  (1  -
         (1+r)**-n)/r  を計算します。最初の元金を P0 とすると、同じ期
         間の支払額は p = P0 / annuity(r,n) で求めることができま す。
         compound()  および annuity() では、 r の値が小さいときに根拠
         のない不正確な結果が得られることを避けるために、 log1p()  と
         expm1()  を 使 用しています。 r <= -1 の場合の compound() と
         annuity() は定義されていません。

         たとえば、元金 P0 を四半期複利、年利息 5% で 30 年間預けたと
         きの合計元金は次のようにして求めることができます。

              P30 = P0 * compound(.05/4, 30.0 * 4)

         また、総額 P0 の住宅ローンを、年利 10% の固定利率、返済期 間
         30  年間で組んだ場合、毎月の返済額は次のようにして求めること
         ができます。

              p = P0 / annuity(.10/12, 30.0 * 12)

## 関連項目

         exp(3M)