二分法
class Div// クラスの宣言
{
double low,high,x;//フィールドの宣言 low
とhighの間にある解を求める。
void set(double low,double high)//メソッドの宣言 low
とhighをsetする。
{
this.high=high;
this.low=low;
}
double get()//メソッドの宣言
{
for(int i=1;i<50;i++)//この場合50回計算を繰り返す。
{
x=(low+high)/2;//中点を計算する。
if(function(x)>0) high=x;//中点が正のときは、中点をhighにする。
else
low=x;//中点が負のときは、中点をlowにする。
}
return x;//50回計算後にこの値を返す。
}
double function(double x)//メソッドの宣言
{
return x*x-1;//好きな関数を代入する。
}
}
どんな複雑な関数でもこの方法によって、x軸との交点、すなわち解を求めることができる。近似値だけれど。
掛け算と足し算だけで解が求まる
なんて、めからうろこ。上の n は 計算回数。
BACK
>>