こんな感じでしょうか?
10桁精度で求まりました。
プログラムの答え
1.259921049902914
Wolframe Alpha の答え
x = 2^(1/3) = 1.259921049894873164767210607278228350570251464701507980081
c
1 # include <math.h>
2 # include <stdio.h>
3
4 # define EPS 1.0e-10 // 閾値
5 # define K_MAX 100 // 最大反復回数
6
7 void input ( double * pa , double * pb ) ;
8 double f ( double x ) ;
9 double bisection ( double a , double b ) ;
10 void show_each_step ( double a , double b , double c , int i ) ;
11
12 int main ( void )
13 {
14 double a , b , ans ;
15
16 input ( & a , & b ) ; // 初期値を得る。
17 ans = bisection ( a , b ) ; // 2分法を実行する。
18 printf ( "result: f(%.2f) = %.2f\n" , ans , f ( ans ) ) ;
19 }
20
21 // 次を満たす初期値 x1、x2 をとる。
22 // (f(x1) と f(x2) の符号が異なり、かつ x1 < x2)
23 void input ( double * x1 , double * x2 )
24 {
25 do {
26 printf ( "input a: " ) ;
27 scanf ( "%lf" , x1 ) ;
28 printf ( "input b: " ) ;
29 scanf ( "%lf" , x2 ) ;
30 } while ( f ( * x1 ) * f ( * x2 ) > 0.0 ) ;
31 // f(x1) と f(x2) の符号が異なるように初期値をとる。
32
33 // 初期値は x1 < x2 となるようにする。
34 if ( * x1 > * x2 ) {
35 double tmp = * x1 ;
36 * x1 = * x2 ;
37 * x2 = tmp ;
38 }
39 }
40
41 double f ( double x )
42 {
43 return pow ( x , 3 ) - 2 ; // x^3 - 2
44 }
45
46 double bisection ( double a , double b )
47 {
48 double c ;
49 for ( int i = 0 ; i < K_MAX ; i ++ )
50 {
51 c = ( a + b ) / 2. ;
52
53 if ( fabs ( f ( c ) ) < EPS )
54 break ; // 解が見つかった
55 else if ( f ( a ) * f ( c ) < 0 )
56 b = c ; // 解は c より右側にある
57 else
58 a = c ; // 解は c より左側にある
59
60 show_each_step ( a , b , c , i ) ;
61 }
62
63 return c ;
64 }
65
66 void show_each_step ( double a , double b , double c , int i )
67 {
68 printf ( "%d: [%.2f, %.2f], " , i , a , b ) ;
69 printf ( "f(%.2f) = %.2f\n" , c , f ( c ) ) ;
70 }
input a: 0
input b: 2
0: [1.000000000000000, 2.000000000000000], f(1.000000000000000) = -1.000000000000000
1: [1.000000000000000, 1.500000000000000], f(1.500000000000000) = 1.375000000000000
2: [1.250000000000000, 1.500000000000000], f(1.250000000000000) = -0.046875000000000
3: [1.250000000000000, 1.375000000000000], f(1.375000000000000) = 0.599609375000000
4: [1.250000000000000, 1.312500000000000], f(1.312500000000000) = 0.260986328125000
5: [1.250000000000000, 1.281250000000000], f(1.281250000000000) = 0.103302001953125
6: [1.250000000000000, 1.265625000000000], f(1.265625000000000) = 0.027286529541016
7: [1.257812500000000, 1.265625000000000], f(1.257812500000000) = -0.010024547576904
8: [1.257812500000000, 1.261718750000000], f(1.261718750000000) = 0.008573234081268
9: [1.259765625000000, 1.261718750000000], f(1.259765625000000) = -0.000740073621273
10: [1.259765625000000, 1.260742187500000], f(1.260742187500000) = 0.003912973217666
11: [1.259765625000000, 1.260253906250000], f(1.260253906250000) = 0.001585548394360
12: [1.259765625000000, 1.260009765625000], f(1.260009765625000) = 0.000422512079240
13: [1.259887695312500, 1.260009765625000], f(1.259887695312500) = -0.000158837092386
14: [1.259887695312500, 1.259948730468750], f(1.259948730468750) = 0.000131823412403
15: [1.259918212890625, 1.259948730468750], f(1.259918212890625) = -0.000013510360162
16: [1.259918212890625, 1.259933471679688], f(1.259933471679688) = 0.000059155646067
17: [1.259918212890625, 1.259925842285156], f(1.259925842285156) = 0.000022822422940
18: [1.259918212890625, 1.259922027587891], f(1.259922027587891) = 0.000004655976386
19: [1.259920120239258, 1.259922027587891], f(1.259920120239258) = -0.000004427205639
20: [1.259920120239258, 1.259921073913574], f(1.259921073913574) = 0.000000114381936
21: [1.259920597076416, 1.259921073913574], f(1.259920597076416) = -0.000002156412711
22: [1.259920835494995, 1.259921073913574], f(1.259920835494995) = -0.000001021015602
23: [1.259920954704285, 1.259921073913574], f(1.259920954704285) = -0.000000453316887
24: [1.259921014308929, 1.259921073913574], f(1.259921014308929) = -0.000000169467489
25: [1.259921044111252, 1.259921073913574], f(1.259921044111252) = -0.000000027542780
26: [1.259921044111252, 1.259921059012413], f(1.259921059012413) = 0.000000043419577
27: [1.259921044111252, 1.259921051561832], f(1.259921051561832) = 0.000000007938399
28: [1.259921047836542, 1.259921051561832], f(1.259921047836542) = -0.000000009802191
29: [1.259921049699187, 1.259921051561832], f(1.259921049699187) = -0.000000000931896
30: [1.259921049699187, 1.259921050630510], f(1.259921050630510) = 0.000000003503251
31: [1.259921049699187, 1.259921050164849], f(1.259921050164849) = 0.000000001285678
32: [1.259921049699187, 1.259921049932018], f(1.259921049932018) = 0.000000000176891
33: [1.259921049815603, 1.259921049932018], f(1.259921049815603) = -0.000000000377502
34: [1.259921049873810, 1.259921049932018], f(1.259921049873810) = -0.000000000100306
result: f(1.259921049902914) = 0.000000000038292