Итак, я не понимаю, почему мой код не работает, по сути, функция, которую я пишу, вычисляет оценку для числа Пи с использованием ряда Тейлора, она просто падает всякий раз, когда я пытаюсь запустить программу.
вот мой код
#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;
double get_pi(double accuracy)
{
double estimate_of_pi, latest_term, estimated_error;
int sign = -1;
int n;
estimate_of_pi = 0;
n = 0;
do
{
sign = -sign;
estimated_error = 4 * abs(1.0 / (2*n + 1.0)); //equation for error
latest_term = 4 * (1.0 *(2.0 * n + 1.0)); //calculation for latest term in series
estimate_of_pi = estimate_of_pi + latest_term; //adding latest term to estimate of pi
n = n + 1; //changing value of n for next run of the loop
}
while(abs(latest_term)< estimated_error);
return get_pi(accuracy);
}
int main()
{
cout << get_pi(100);
}
логика кода следующая:
- определить все переменные
- установить оценку числа пи равной 0
- вычислить член из ряда Тейлора и вычислить ошибку в этом члене
- затем он добавляет последний член к оценке pi
- затем программа должна вычислить следующий член ряда и ошибку в нем и добавить его к оценке числа пи до тех пор, пока не будет выполнено условие в операторе while.
Спасибо за любую помощь, которую я могу получить