
- •Сборник лабораторных работ
- •Аннотация
- •Введение
- •1Краткая теоретическая справка Математические функции стандартной библиотеки с
- •Справочная информация о величинах геометрических фигур
- •Расстояние между двумя точками
- •2Индивидуальные задания
- •3Краткая теоретическая справка
- •4Типовые задачи
- •5Индивидуальные задания
- •6Краткая теоретическая справка
- •Представление аналитических функций в виде рядов Тейлора
- •Общая схема алгоритма суммирования
- •Учет рекуррентной зависимости членов ряда
- •Учет погрешности вычисления суммы членов ряда
- •7Индивидуальные задания
- •8Краткая теоретическая справка Свойства делимости
- •Работа с цифрами числа
- •Типовые задачи
- •9Индивидуальные задания
- •10Краткая теоретическая справка Типовые задачи
- •11Индивидуальные задания
- •12Краткая теоретическая справка Обход матрицы
- •13Индивидуальные задания
- •14Краткая теоретическая справка
- •15Индивидуальные задания
- •16Краткая теоретическая справка
- •17Индивидуальные задания
- •18Краткая теоретическая справка
- •19Индивидуальные задания
- •20Краткая теоретическая справка
- •21Индивидуальные задания
- •22Индивидуальные задания
6Краткая теоретическая справка
Ситуации, когда каждый следующий элемент последовательности выражается через предыдущие элементы, встречаются часто. Формулы для определения таких элементов называются рекуррентными соотношениями. Определение любого элемента последовательности в таких формулах невозможно без знания одного или нескольких предыдущих элементов. Элементы последовательности должны получаться по порядку, один за другим.
Представление аналитических функций в виде рядов Тейлора
Для вычисления значений аналитической функции можно воспользоваться ее представлением в виде степенного ряда
обычно называемого рядом Тейлора. Необходимым и достаточным условием существования такого разложения функции f(x) в некоторой окрестности |x−ξ|<r точки ξ является существование для f(x) всех производных в этой окрестности и сходимость остаточного члена Rn(x) к нулю при n→∞.
В случае элементарных функций ряды Тейлора имеют вид (степенные ряды при ξ=0 представлены в форме Маклорена):
и т.д.
Общая схема алгоритма суммирования
При наличии представления функции f(x) в виде ряда Тейлора проблема вычисления значений f(x) в точках интервала (–r, r) может быть сведена к задаче нахождения частичных сумм числового ряда общего вида:
Общая схема алгоритма суммирования может быть представлена в виде:
Как следует из приведенной блок-схемы, алгоритм суммирования представляет собой итерационную процедуру, на каждой итерации которой к переменной Sum прибавляется очередной член ряда ai. Как результат, в переменной Sum (называемой далее сумматором) обеспечивается накопление частичных сумм числового ряда. Величина N, используемая в общей схеме алгоритма для задания момента завершения цикла суммирования, определяет количество суммируемых членов ряда и может рассматриваться как показатель требуемой точности вычисления значения функции.
Учет рекуррентной зависимости членов ряда
Выполнение итерации алгоритма суммирования включает вычисление значения очередного члена числового ряда. Данные вычисления могут оказаться достаточно трудоемкими. Так, например, общий член ряда при разложении функции sin(x) имеет вид:
и для его вычисления необходим подсчет значений степенной функции и функции факториала. С другой стороны, во многих случаях суммирования рядов соседние пары элементов имеют общую вычислительную часть и, как результат, каждый последующий член ряда может быть получен быстрее и с меньшими затратами при учете имеющихся значений предыдущих элементов. Так, для функции sin(x) подобная рекуррентная формула имеет вид:
При наличии подобного рекуррентного соотношения между членами ряда генерация суммы числового ряда может быть обеспечена при использовании только начального члена ряда a0 и рекуррентного множителя q. Уточненный вариант алгоритма (с учетом рекуррентности) имеет вид:
где FirstMember – начальный член ряда a, Member – очередной вычисляемый член ряда ai, RecurrentMultiplier – рекуррентный множитель , Sum – искомая частичная сумма.
Учет погрешности вычисления суммы членов ряда
В рассмотренном выше решении предполагается, что нам известно количество членов ряда, сумму которых мы вычисляем. Но возникает вопрос: можно ли подобрать такое число N, которое для любой функции позволяло бы получить минимальную погрешность (размер остаточного члена ряда)?
В данном случае лучше пойти от обратного. Для любой функции можно выделить как раз приемлемый размер остаточного члена ряда, и от этой величины будет зависеть количество суммируемых членов ряда (т.е. количество итераций нашего алгоритма – n).
Каждый новый член
ряда вычисляется по формуле:
,
т.е. в числителе этой дроби находится
степенная функция, в знаменателе –
факториал. При увеличении значения n
степенная функция будет расти медленнее,
чем факториал, следовательно, значение
дроби будет уменьшаться, т.е. ai
будет меньше ai-1.
Мы можем заранее определить некоторое
достаточно маленькое число
и каждый новый член ряда сравнивать с
:
если очередной элемент меньше
,
вычисления заканчиваются (следующие
элементы будут еще меньше, следовательно,
их значениями можно пренебречь). Число
будем называть погрешностью.
Тогда уточненный вариант алгоритма (с учетом рекуррентности и погрешности) будет иметь вид: