Исправить ошибку в вычислениях функции - C (СИ)
Формулировка задачи:
#include<stdio.h> #include<conio.h> #include <math.h> #include<stdlib.h> #include<iostream.h> long double factorial(int n) { return !n ? 1 : n * factorial(n - 1); } float sum_r(float _x,float _e) { float rez,element; int i; rez=0;i=1; element=(pow((-1),i)*sqrt(i+M_PI)*pow(sin(i*x),2)/(factorial(i+1)+exp(i*x)); while ( fabs(element)>=_e ) { rez=rez+element; i++; element=(pow((-1),i)*sqrt(i+M_PI)*pow(sin(i*x),2)/(factorial(i+1)+exp(i*x)); } return(rez); } int main() { float x, e, rezult; int ii; x=0.63; for (ii=1;ii<=10;ii++) { rezult=sum_r(0.63,pow(10,-ii)); printf("\n For e = %12.10f x = %3.1f rezult = %15.14f",pow(10,-ii),x,rezult); } getch(); return 0; }
Решение задачи: «Исправить ошибку в вычислениях функции»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> long double factorial(int n) { return !n ? 1 : n * factorial(n - 1); } float element(int i, float x) { return (pow((-1), i) * sqrt(i + M_PI) * pow(sin(i * x), 2) / (factorial(i + 1) + exp(i * x))); } float sum_r(float x, float e) { float rez, elem; int i; rez = 0; i = 1; elem = element(i, x); while (fabs(elem) >= e) { rez = rez + elem; i++; elem = element(i, x);; } return(rez); } int main() { float x = 0.63, rezult; int ii; for (ii = 1; ii <= 10; ii++) { rezult = sum_r(0.63, pow(10, -ii)); printf(" For e = %12.10f x = %3.1f rezult = %15.14f\n", pow(10, -ii), x, rezult); } getch(); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
, , , . - Определяем функцию factorial(), которая вычисляет факториал числа n.
- Определяем функцию element(i, x), которая вычисляет значение элемента функции на заданном шаге i и аргументе x.
- Определяем функцию sum_r(x, e), которая вычисляет сумму ряда на заданном интервале [0, x] с точностью до e.
- В функции main() задаем начальные значения переменных: x = 0.63, e = 10^-ii, где ii — номер итерации.
- Задаем цикл от 1 до 10 и выполняем вычисления в каждой итерации.
- Выводим результаты на экран.
- В конце программы вызываем функцию getch() для приостановки выполнения программы до нажатия клавиши.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д