Вычислить заданную функцию, что разложена в ряд Маклорена - C (СИ)
Формулировка задачи:
Здравствуйте.
Требуется составить функцию, которая вычисляет заданную функцию, что разложена в ряд Маклорена.
Вычислить cos 18 з точностью до 0,00001.
cosx=1 - x^2\2! + x^4\4!+ ....+(-1)^n * (x^2n)\ (2n)! +..,
Буду благодарна, если найдутся люди, которые помогут)
Решение задачи: «Вычислить заданную функцию, что разложена в ряд Маклорена»
textual
Листинг программы
double mycos(double x)
{
int n;
double s,an;
an=1;// нулевой член ряда
s=an; // суммируем нулевой член
n=1; // следуюший член первый
while(fabs(an)>=0.00001)
{
an*=-x*x/(2*n-1)/(2*n); // пересчитываем следующий член ряда через предыдущий
s+=an; // суммируем
n++; // переходим к следующему члену
}
return s;
}
Объяснение кода листинга программы
- Переменная
nинициализируется значением 1. - Переменная
anинициализируется значением 1. (Нулевой член ряда) - Переменная
sинициализируется значениемan. (Сумма нулевого члена ряда) - Переменная
anобновляется значением -xx/(2n-1)/(2*n). (Пересчет следующего члена ряда через предыдущий) - Переменная
sобновляется значением суммыanи предыдущего значенияs. (Суммирование ряда) - Переменная
nобновляется значением следующего члена ряда. - Цикл выполняется до тех пор, пока значение
anне станет меньше или равным 0.00001. - Функция возвращает значение переменной
s.