#include #include #include /******* 表3.2のガウス・ルジャンドル積分公式の誤差を求めるプログラム ******* ・下記Nをルジャンドル多項式の次数として誤差を求めます. ・Nを変更する場合はコンパイルしなおしてください. ・多項式の0点を求めるのに,4.2節の二分法を用います. ****************************************************************************/ #define N 100 //ルジャンドル多項式の次数 #define delta pow(10,-10) //δ(二分法条件式(4.10)) #define epsilon pow(10,-10) //ε(二分法条件式(4.10)) #define kmax 1000 //収束判定条件との比較回数の上限 #define Pi acos(-1.) //πの値 double f(double x){ double y; y = 1/(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