EXP2(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)