#include #include #include /******* 表3.1のガウス・ルジャンドル積分公式の誤差を求めるプログラム ****** ・下記Nをルジャンドル多項式の次数として誤差を求めます. ・Nを変更する場合はコンパイルしなおしてください. ・多項式の0点を求めるのに,4.2節の二分法を用います. ****************************************************************************/ #define N 12 //ルジャンドル多項式の次数 #define delta pow(10,-10) //δ(二分法条件式(4.10)) #define epsilon pow(10,-10) //ε(二分法条件式(4.10)) #define kmax 1000 //収束判定条件との比較回数の上限 #define Pi acos(-1.) //πの値 #define hPi Pi/2. //π/2の値 double f(double x){ double y; y = sqrt(1-pow(x,2)); return y; } double P_k(int k, double x){ //式(2.87) int n; double p0, p1, p2; p0 = 1; p1 = x; if( k==0 ){ return p0; }else{ for(n=1; n