#include #include /*************** 表4.2の数値解を求めるプログラム **************** ・(4.14)の式を用いて3次代数方程式の実根を求めます. *****************************************************************/ #define eps pow(10,-10) double f(double x){ double y; y = pow(x,3)+6*pow(x,2)+21*x+32; return y; } int main(void){ int k=0; double x1, x2, ff, fg; x1 = 0; while(fabs(f(x1)) >= eps){ k++; ff = pow(x1,3)+6*pow(x1,2)+21*x1+32; fg = 3*pow(x1,2)+12*x1+21; //式(4.14) x2 = x1-ff/fg; x1 = x2; printf("k=%2d, xk=%13.7lf, f(xk)=%16.9e\n", k, x1, f(x1)); } return 0; }