Функции: вычисление суммы ряда с заданной точностью - C (СИ)
Формулировка задачи:
Написать функцию вычисления суммы ряда y=sinx-(sin2x)/2+…+((-1)^n+1)*sin(nx)/n с точностью до eps=0.001. В качестве параметров передать x (в радианах) и eps. Вот, думаю всё правильно, на калькуляторе результаты сверял - всё верно
Решение задачи: «Функции: вычисление суммы ряда с заданной точностью»
textual
Листинг программы
int sign = 1; do { n++; previous = current; current = sin(n*x)/n; sum += sign*current; sign = -sign; } while (fabs(current - previous) > eps);
Объяснение кода листинга программы
- Задается переменная sign со значением 1.
- Запускается цикл do-while, который выполняется до тех пор, пока разница между текущим и предыдущим значением функции не станет меньше заданной точности eps.
- Внутри цикла происходит следующее: 3.1. Увеличивается значение переменной n на 1. 3.2. Значение переменной previous присваивается значение переменной current. 3.3. Значение переменной current вычисляется как синус от n умноженного на x, деленного на n. 3.4. Значение переменной sum увеличивается на значение переменной current, умноженное на sign. 3.5. Значение переменной sign меняется на противоположное.
- После выполнения цикла, значение переменной sum будет содержать сумму ряда с заданной точностью.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д