Ряд Тейлора: Вычислить значение функции - C (СИ)
Формулировка задачи:
Здраствуйте.Всю жизнь программировал на Паскале и вдруг си...помогите пожалуйста с заданиями,желательно с объяснением,ибо чайник полный..
1.Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от Хнач до Хкон с шагом dx с e точностью . Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
К первой задаче нашел решение,правда на 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 = 1; /* конец интервала */ double dx = 0.1; /* шаг */ double eps = 0.001; /* точность */ int iter = 0; /* итерации -- количество слогаемых */ printf("| Аргумент X | ln(x + 1) | Кол-во членов |\n"); /* циклом проходим по всему заданному диапазону */ for (x = x1; x <= x2; x += dx) { 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 *i) { double lastresult, result; lastresult = 0; do { result = lastresult; lastresult = (pow(-1, *i) * pow(x, *i + 1)) / (*i + 1); (*i)++; /* вычисляем пока разница не станет меньше точности */ } while (fabs(lastresult - result) >= eps); return lastresult; }
Объяснение кода листинга программы
В данном коде реализуется вычисление ряда Тейлора для функции ln(x + 1). Список действий:
- В функции main():
- Задаются аргументы функции (x), шаг (dx), точность (eps), итерации (iter) и границы интервала (x1, x2).
- Выполняется цикл, который проходит по всему заданному диапазону. На каждой итерации цикла вызывается функция func(x, eps, &iter), результат вычисления функции выводится на экран.
- Цикл завершается, когда значение x становится равным x2.
- Результатом работы функции main() является успешный выход из программы (EXIT_SUCCESS).
- В функции func(x, eps, i):
- Задаются переменные, которые будут использоваться в цикле: предыдущий результат вычисления (lastresult), текущий результат вычисления (result), итерация (i).
- Устанавливается начальное значение lastresult = 0.
- Выполняется цикл do-while, который продолжается, пока разница между текущим и предыдущим результатом вычисления больше или равна заданной точности (eps).
- На каждой итерации цикла происходит обновление значения result.
- Результатом работы функции func(x, eps, i) является окончательное значение результата вычисления ряда Тейлора. Таким образом, данный код реализует вычисление ряда Тейлора для функции ln(x + 1) с заданной точностью (eps) на заданном интервале (x1, x2) с шагом (dx).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д