Вычислить и вывести на экран значения функции, заданной с помощью ряда Тейлора - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Если кто поможет буду очень благодарен!

Решение задачи: «Вычислить и вывести на экран значения функции, заданной с помощью ряда Тейлора»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
double func(double x, double eps, int *iter);
 
int main(int argc, char **argv) {
 
    double x;       /* аргумент функции */
    double rr = 0;      /* результат вычисления функции */
    double x1 = 1;      /* начало интервала */
    double x2 = 5;      /* конец интервала */
    double dx = 1;  /* шаг */
    double eps = 0.01;  /* точность */
    int iter = 0;       /* итерации -- количество слогаемых */
 
    printf("\n| Аргумент X |      arth(x)     | Кол-во членов |\n");
    for (x = x1; x <= x2; x += dx) { /* циклом проходим по всему заданному диапазону */
        rr = func(x, eps, &iter);
        printf("|   %5.2f    | %16.13f |     %5d     |\n", x, rr, iter);
    }
 
    /* x = 60; */
    /* rr = func(x, eps, &iter); */
    /* printf("|   %5.2f    | %16.13f |     %5d     |\n", x, rr, iter); */
 
 
    return EXIT_SUCCESS;
}
 
 
double func(double x, double eps, int *n) {
 
    double lastresult, result;
 
    lastresult = 0;
 
    do {
        result = lastresult;
        lastresult = 1 / ((2 * *n + 1) * pow(x, 2* *n + 1));
        (*n)++;
        /* вычисляем пока разница не станет меньше точности */
    } while (fabs(lastresult - result) >= eps);
 
    return lastresult;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с I/O, математикой и стандартным вводом/выводом
  2. Определяем функцию func, которая принимает три аргумента: x, eps и iter. Значение функции вычисляется с помощью ряда Тейлора
  3. В функции main определяем переменные: x, rr, x1, x2, dx, eps и iter. Задаем начальные значения и шаги для переменной x и инициализируем переменную iter нулем
  4. С помощью цикла for проходим по всему заданному диапазону значений x. На каждой итерации вызываем функцию func и сохраняем результат в переменную rr. Затем выводим значения x, rr и iter на экран
  5. В функции func инициализируем переменную lastresult нулем. Затем с помощью цикла do...while вычисляем значение функции до тех пор, пока разница между lastresult и result не станет меньше заданной точности eps
  6. Возвращаем окончательное значение lastresult из функции func
  7. В функции main комментируем строки кода, которые позволяют вычислить значение функции для аргумента x = 60 и установить значение iter = 1
  8. Завершаем программу с помощью return EXIT_SUCCESS

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы