非線形方程式を2分法または3分法(分割数を3にした場合)
を用いて、プログラムを作成して、25の3乗根を求めよ。(x^3-25=0)
という問題で、2分法はできましたが、3分法の求め方が分かりません。
2分法は以下の通りです。
#include<stdio.h> #include<math.h> #define f(x) ((x)*(x)*(x)-25) int main(void){ float a=2.0,b=3.0,c; do{ c=(a+b)/2.0; if(fabs(f(c))<=1.0e-7)break; if(f(a)*f(c)<0)b=c; if(f(b)*f(c)<0)a=c; }while((b-a)>=1.0e-6); printf("方程式x^3-25=0の解は%fです\n",c); return 0; }実行結果は 方程式x^3-25=0の解は2.924108です。
という風になり、3分法も、これに近い値で実行できる。
よろしくお願いします。