#include #include #include /*** 表3.3のガウス・ルジャンドル積分公式の補間点と重みを求めるプログラム *** ・下記Nをルジャンドル多項式の次数として補間点と重みを求めます. ・Nを変更する場合はコンパイルしなおしてください. ・多項式の0点を求めるのに,4.2節の二分法を用います. ****************************************************************************/ #define N 4 //ルジャンドル多項式の次数 #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