2012-01-24 5 views
2

Вот моя проблема:оценки значения Pi с серией

Вычисляется значение π с помощью следующей серии:

((π^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, когда цикл прерывается, но это не правильный ответ. Я пытался выяснить, что не так с моим кодом, что он не делает то, что мне нужно.

Я долго смотрел на код и не мог видеть, где я совершил ошибку.

+0

umm .. разве вы не хотите смотреть на z, когда вы выходите из цикла? На самом деле я могу распечатать разницу между z и pi. –

+1

> но это неправильный ответ Почему бы и нет? Все выглядит правильно. Mathematica дает тот же результат – Cheery

+0

Я считаю, что это правильный ответ, но мне говорят, что это не означает, что я ошибаюсь. –

ответ

2

Я нашел проблему. Предполагается, что ошибка будет меньше 10^-8 не 10е-8. Каким-то образом числа были изменены при копировании.

+0

Вы имеете в виду, что^был изменен на e? Черт, эти маленькие цифры ... –

+0

@Jav_Rock Да ... lol –

Смежные вопросы