Вычислить значение cosx с помощью ряда - C (СИ)
Формулировка задачи:
Не могу найти ошибку в решении задачи:
Задача. Дано действительное число x. Вычислить значение cosx с помощью ряда (в картинке внизу сам ряд)
Для проверки результата вычислить cosx с помощью стандартной функции.
я скорее всего неправильно саму функцию описал в
Буду бесконечно благодарен за помощь сам не разберусь ато
#include <stdio.h> #include <math.h> #define E 1e-5 main() { float x, y; float a; int n; printf ("x="); scanf ("%f",&x); y=0; a=0; n=0; while ( fabs(a) >= E ) { y=y+a; n++; a=-a*x*x/(2*n-1)*2*n; } printf ("y=%f\n",y); printf ("cosx=%f\n",cos(x)); }
a=-a*x*x/(2*n-1)*2*n;
Решение задачи: «Вычислить значение cosx с помощью ряда»
textual
Листинг программы
#include <stdio.h> #include <math.h> #define E 0.000001 int main() { double x, y; double a; int n, k; double fact; printf("x="); scanf("%lf", &x); y = 1; a = 0; n = 1; fact = 1; k = 1; do { fact = fact*(2.0 * n - 1.0)*(2.0 * n); k = -k; a = k*pow(x, 2.0 * n) / fact; y = y + a; n++; printf("a=%.12lf\n", a); } while (fabs(a) >= E); printf("y=\t%.12lf\n", y); printf("cosx=\t%.12lf\n", cos(x)); }
Объяснение кода листинга программы
- #include
— подключает файл стандартного ввода/вывода - #include
— подключает файл с математическими функциями - #define E 0.000001 — определяет значение переменной E
- int main() — функция main() является точкой входа в программу
- double x, y; — объявляет переменные x и y типа double
- double a; — объявляет переменную a типа double
- int n, k; — объявляет переменные n и k типа int
- printf(
x=
); — выводит сообщение с запросом на ввод значения переменной x - scanf(
%lf
, &x); — считывает значение переменной x с помощью функции scanf() - y = 1; a = 0; n = 1; — инициализирует переменные y, a и n начальными значениями
- fact = 1; — инициализирует переменную fact единицей
- k = 1; — инициализирует переменную k единицей
- do — начинается цикл do-while
- fact = fact(2.0 n - 1.0)(2.0 n); — вычисляет значение факториала n
- k = -k; — меняет знак переменной k
- a = kpow(x, 2.0 n) / fact; — вычисляет значение переменной a
- y = y + a; — добавляет значение переменной a к переменной y
- n++; — увеличивает значение переменной n на единицу
- printf(
a=%.12lf\n
, a); — выводит значение переменной a - while (fabs(a) >= E); — цикл do-while выполняется до тех пор, пока значение переменной a не станет меньше E
- printf(
y=\t%.12lf\n
, y); — выводит значение переменной y - printf(
cosx=\t%.12lf\n
, cos(x)); — выводит значение функции cos() для переменной x
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д