#!/usr/local/bin/tcc -run #define _USE_MATH_DEFINES //数学関数内で円周率M_PI を参照する際必要 #include #include double func( double x ){ // 曲線f(x) において、x を与えられた場合の解を返す関数 return( x * x - 104.0 );// f(x) = x * x + x ? 6 とする } double dfunc( double x ){ // 曲線f(x) の導関数f'(x) において、x を与えられた場合の //解(接線の傾き)を返す関数 return( 2 * x );// f'(x) = 2 * x + 1 とする } double newton( double x , double e ){ double x_next = x;//接線liのy=0における切片座標 double x_old ; //接線liがf(x)と接する位置のx座標 do{ x_old = x_next; //繰り返し計算の際に、前回の計算で得られた切片座標を新しい交差位置とする x_next = (x_old - func(x_old)/dfunc(x_old)); //次の切片の座標を計算する printf( " old_x = %lf →new_x = %lf \n", x_old , x_next ); }while(abs( x_next - x_old )