C言語関係掲示板

過去ログ

No.1158 二分法

[戻る] [ホームページ]
No.15047

二分法
投稿者---kasio(2004/06/29 15:37:08)


高校の授業でsinx-cosx=0の区間[0,1]に存在する解を二分法によって、さらに再帰的関数を使って求めろといわれたのですが、sinxとかにmath.hを使うということがようやくわかった程度なので正直にっちもさっちもいきません。どなたか助けていただけないでしょうか。


No.15061

Re:二分法
投稿者---ぽこ(2004/06/30 02:06:09)


>高校の授業で(略

高校の授業でしたら、ここで何日もかけて受け答えを行うより、
先生もしくは学友に聞かれた方がkasioさんの理解が早いと思います。



No.15062

Re:二分法
投稿者---かずま(2004/06/30 02:24:33)


#include <stdio.h>
#include <math.h>

#define EPS   1e-6

double f(double x) { return sin(x) - cos(x); }

double b(double x0, double x1)
{
    double x2 = (x0 + x1) / 2;
    return x1 - x0 < EPS ? x2 : f(x0) * f(x2) < 0 ? b(x0, x2) : b(x2, x1);
}

int main(void)
{
    printf("%g\n", b(0, 1));
    return 0;
}

このプログラムで出てくる答えが正しいかどうかをどうやって確かめますか?