ニュートン法を用いて方程式 2x*x - 1 = 0 の解を求めたく以下のプログラムを作りましたが
解が出てきません。どのような改良が必要なのでしょうか?
ご回答宜しくお願いします。
#include <stdio.h> #include <math.h> #define EPS pow(10.0,-8) #define KMAX 10 double f(double x); double df(double x); int main(void) { int k=0; double x,d; printf("初期値x0は\n"); scanf("%lf",&x); for( k = 0; k < KMAX; k++ ){ d = -f(x) / df(x); x = x*x + d; if( fabs(d) < EPS ){ break; } } if(k==KMAX){ printf("解なし\n"); } else{ printf("答えはx=%f\n",x); } return 0; } double f(double x){ return(2*x*x-1); } double df(double x){ return(4*x); }
回答1件
あなたの回答
tips
プレビュー