Московский Авиационный Институт
(Национальный исследовательский университет)
Факультет прикладной математики и физики.
Курсовой проект
по курсу «Алгоритмы и структуры данных»
Задание №3
Тема:
«Вещественный тип. Приближенные вычисления.
Табулирование функций»
I семестр
Студент
Группа 8О-100Б
Преподаватель
Москва, 2011.
Постановка задачи:
Составить программу на Си , которая печатает таблицу значений элементарной функции, вычисленной двумя способами: по формуле Тейлора и с помощью встроенных функций языка программирования. Вариант номер 20.
Общий метод решения:
Создаем две функции (одна вычисляет с использованием встроенных функций, другая по формуле Тейлора) и сравниваем их значения на заданном интервале. Для эффективного вычисления по формуле Тейлора находим коэффициент различия n-ого члена от n+1-ого члена (получаем путём деления n+1-ого члена на n-ый член), Первый член мы задаем, а каждый следующий получаем путём умножения коэффициента различия на предыдущий. Значение функции получаем путём сложения этих членов
Общие сведения о программе:
Операционная система: Microsoft Windows 7 Ultimate Service Pack 1
Язык программирования: C
Число строк программы: 68
Полное имя программы: C:\Users\Никита\Documents\Dev_cpp\Course\Kurs_3.c
Программа компилируется и вызывается с помощью утилиты Bloodshed Dev-C++ со встроенным GNU компилятором (вызов компиляции с запуском- клавиша F9)
Функциональное назначение:
Программа предназначена для сравнения результатов функции посчитанной встроенными функциями exp(2x)и по формуле Тейлора. Обрабатываемые данные имеют тип double.
Описание логической структуры (словесное описание алгоритма):
Создаем функции, отвечающие за определенные компоненты программы (подсчет машинного Эпсилон, функции считающие через стандартные функции языка и т.д.). В основной функции цикл зависящий от значений заданного интервала (в моем варианте это [1;0.6]) и каждый раз считающий значения функций и выводящий их на экран.
Описание переменных и констант:
Имя
Тип
Назначения
eps
double
Хранит значение машинного Эпсилон
x
double
Аргумент функции
Описание подпрограмм:
double abs(double x)
Считает модуль данного аргумента
Имя |
Тип |
Вид |
Назначения |
x |
Double |
входной параметр и возвращаемое значение |
Входной параметр и результат вычислений |
double epsylon()
Считает машинное Эпсилон
Имя |
Тип |
Вид |
Назначения |
Eps |
Double |
входной параметр и возвращаемое значение |
Входной параметр и результат вычислений |
double f(double x)
Считает значение функции с помощью встроенных функций языка программирования.
Имя |
Тип |
Вид |
Назначения |
X |
Double |
входной параметр возвращаемое значение exp(2x) |
Входной параметр результат вычислений exp(2x) |
double next(double x, double n)
Вычисляет следующий элемент в ряду Тейлора
Имя |
Тип |
Вид |
Назначения |
X |
Double |
входной параметр |
Входной аругмент |
N |
Double |
входной параметр |
Номер считаемого элемента ряда Тейлора |
double g(double x)
Вычисляет значение ряда Тейлора при конкретном аргументе
Имя |
Тип |
Вид |
Назначения |
X |
Double |
входной параметр |
Входной аргумент |
N |
Double |
Лог. перем |
Счетчик и переменная, подставляемое в функцию next |
Step |
Double |
Лог. перем |
Переменная, хранящая значение функции next на данном этапе, и подставляемая в функцию sum |
Sum |
Double |
Возвращаемое значение |
Переменная, хранящая значение ряда Тейлора до n-ого элемента. Возвращаемое значение |