2

これが私の問題です:

次の級数を使用してπの値を計算します。

((π^2)-8)/16=[sum from 1 to pos. infinity] 1/(((2n−1)^2)*((2n+1)^2))

•10e-8より小さいπの誤差の絶対値を取得するために必要な項の最小数を見つけます。

これが私のコードです:

x=0;
for i=1:1000

    x=x+(1/((((2*i)-1)^2)*(((2*i)+1)^2)));
    z=sqrt((x*16)+8);
    error=abs(z-pi);
    if (error < 10e-8)
        i
        break
    end
end

私が得る答えは、ループが壊れたときに81ですが、それは正しい答えではありません。私は自分のコードの何が悪いのかを理解しようとしていて、それが必要なことをしていないのです。

私はかなり長い間コードを見つめていましたが、どこで間違いを犯したのかわかりません。

4

1 に答える 1

2

問題が見つかりました。エラーは、10e-8 ではなく 10^-8 未満であると想定されています。コピーするとなぜか数字が入れ替わってしまいました。

于 2012-01-24T16:26:43.570 に答える