0

以下は、正の根を求める数値 (変数 r) をユーザーに要求し、次に開始間隔 [a,b] を要求するプログラムです。これは、いくつかの HTML コードで行われます。その下の JavaScript には、while ループ内の線形補間のコードがあります。

function everything() {

r= document.getElementById('ri').value*1;
a= document.getElementById('ai').value*1;
b= document.getElementById('bi').value*1;

bisect(function(x){return x*x-r;},a,b);
}   

function bisect(f,a,b) {
var avg,fa,fb;

avg = NaN;
while (Math.abs(a-b)>1e-10) {
    fa=f(a);
    fb=f(b);
    if(fa*fb<0) {
            grad=(fb-fa)/(b-a);
        avg=a-(fa/grad);
        favg=f(avg);
    } else {
        alert('There has been an error. Redifine the interval A to B');
        break;
        }

    if (fa*favg<0) {
        b=avg;
     } else {
        a=avg;
    }
}
alert(avg);
}

このコードの問題は、エラー テキストが返され、最後に avg の最終値が返されることです。これは問題です。

4

1 に答える 1