非線形方程式を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分法も、これに近い値で実行できる。
よろしくお願いします。