質問: 0; for(i=0; i
回答: 1.0 / 1.0 + sin(x/2.0); は 1.0 /( 1.0 + sin(x/2.0) ); の間違いでは? (∫ dx (1.0 + sin(x/2.0)) from x = 0 to a ) = 2 だとしても a≒1.487らしいので 他にも間違っているんでしょうが。 二分法も間違えてます。 比較すべきは`Kansu(a)*Kansu(b)`ではなく`Kansu(c)*Kansu(b)`です。 参考 積分も間違えてます。 これは f(x) = 1 としてSekibun(1)を計算してみれば 明らかにおかしいことに気づけます。 ただ眺めてもバグを見つけるのは難しいです。 プログラムの構成要素を一つ一つに分解して 正しい動作をしているか実際に動かして確かめましょう。 今回であれば、 * 適当な簡単な関数に対して、定積分が正しく行えるか。 * 適当な簡単な方程式に対して、二分法で解が正しく求められるか。 ・・・ みたいにです。