#include #include #include /************** ルジャンドル補間の誤差を出力するプログラム ***************** ・下記Nをルジャンドル多項式の次数として y=1/(1+25x^2) のL_2ノルムの2乗を計算します. ・Nを変更する場合はコンパイルしなおしてください. ・多項式の0点を求めるのに,4.2節の二分法を用います. ・L_2ノルムの2乗の計算には積分の台形公式(式(3.4))を用います. ****************************************************************************/ #define N 20 //ルジャンドル多項式の次数 #define delta pow(10,-10) //δ(二分法条件式(4.10)) #define epsilon pow(10,-10) //ε(二分法条件式(4.10)) #define kmax 1000 //収束判定条件との比較回数の上限 #define Pi acos(-1.) //πの値 #define nn 1000 //L2nの精度に関わる[-1,1]のきざみ数 #define h 2./nn //台形公式(式(3.4))のh double f(double x){ return (1./(1.+25.*pow(x,2))); } 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; nlegendre > data.csv などと コマンドライン上でファイルにリダイレクトしてください. *************************************************************/ for(i=0; i