#include #include #include /****************** 表2.2の誤差を出力するプログラム ************************* ・表2.2のN一行のみの出力を行います. ・実行すると,1,2,3のいずれかのデータの入力を求めます. ・補間点を0点とするなら1,(2.78)とするなら2,(2.80)とする なら3を入力してください. ・コマンドラインの第一引数に1,2,3のいずれかを与えることでも 即時に誤差を出力することができます. 例) >cheby 1 ・ただし,下記のNを変更する場合はコンパイルしなおしてください. ・L_2ノルムの2乗の計算には積分の台形公式(式(3.4))を用います. ・N元連立一次方程式の解法には, ガウスの単純消去法(前進消去,後退代入)と ピボット選択法を用います(5.2節). ・N元連立一次方程式の枢軸要素(ピボット)の絶対値を最大となるように 選択して誤差が広がるのを防ぎます.この処理がなければ, Nを大きくするにつれて,誤差が目に見えて広がります. ****************************************************************************/ #define N 49 //連立方程式の元数(textのNに対応) #define Pi acos(-1.) //πの値 #define n 1000 #define h 2./n //台形公式(式(3.4))のh #define eps pow(10, -15) //ピボットの許容最小値,0除算の判定に使用 double f(double x){ return (1./(1.+25.*pow(x,2))); } double fTN(double x, double ck[]){ //式(2.77) int k; double fN=0.; for(k=0; k0){ for(k=i-1; kcheby 2 > data.csv などと コマンドライン上でファイルにリダイレクトしてください. *************************************************************/ for(i=0; i