数学用ライブラリ More...
#include "mt.h"
Go to the source code of this file.
Defines | |
#define | MAX_ITRTN_NEWTON_METHOD 30 |
ニュートン法で解を求める際の,最大繰り返し回数. | |
Functions | |
double | power (double x, double y) |
double | fact (int n) |
double | perm (int n, int m) |
double | comb (int n, int m) |
int | newton_method (PTR_DFFUNC func, PTR_DFFUNC dfunc, double *t0, double eps) |
ニュートン法で解を求める | |
Variables | |
double | EPS = 1.0e-6 |
Definition in file mt.c.
#define MAX_ITRTN_NEWTON_METHOD 30 |
Definition at line 93 of file mt.c.
Referenced by newton_method().
double comb | ( | int | n, | |
int | m | |||
) |
double comb(int n, int m)
コンビネーション nCm を計算する.
double fact | ( | int | n | ) |
double fact(int n)
nの階乗 n! を計算する.n>0 でない場合は 1.0 を返す.
int newton_method | ( | PTR_DFFUNC | func, | |
PTR_DFFUNC | dfunc, | |||
double * | t0, | |||
double | eps | |||
) |
int newton_method(PTR_DFFUNC func, PTR_DFFUNC dfunc, double* t0, double eps)
ニュートン法で func()==0 の点を求める.
関数の形は double func(double)
func | double func(double) 型の関数へのポインタ | |
dfunc | func()の導関数へのポインタ. | |
[in,out] | t0 | in: 探索開始点(xの初期値), out: 解. |
eps | 誤差.1に対して 1.0e-8 など. |
Definition at line 109 of file mt.c.
References MAX_ITRTN_NEWTON_METHOD, and Xabs.
00110 { 00111 double tt = *t0; 00112 double ff = (*func)(tt); 00113 00114 int n = 1; 00115 while (n<MAX_ITRTN_NEWTON_METHOD && Xabs(ff)>eps) { 00116 // 00117 double df = (*dfunc)(tt); 00118 if (Xabs(df)<eps) return 0; 00119 00120 tt = tt - ff/df; 00121 ff = (*func)(tt); 00122 n++; 00123 } 00124 00125 if (n==MAX_ITRTN_NEWTON_METHOD) return 0; 00126 *t0 = tt; 00127 return n; 00128 }
double perm | ( | int | n, | |
int | m | |||
) |
double perm(int n, int m)
パームテーション nPm を計算する.
double power | ( | double | x, | |
double | y | |||
) |
double power(double x, double y)
xの y乗 x^yを計算する.
double EPS = 1.0e-6 |
Definition at line 14 of file mt.c.
Referenced by topola(), unit_ivector(), and unit_vector().