Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Delphi_Ч1.doc
Скачиваний:
7
Добавлен:
02.11.2018
Размер:
2.38 Mб
Скачать

Пример итерационного алгоритма для вычисления кубического корня

Примером итерационного алгоритма может служить алгоритм вычисления кубического корня методом Ньютона.

Суть метода заключается в том, что приближенное значение корня находится по формуле 5.1.

(5.1)

где а – число, из которого извлекается корень, xold – приближенное значение корня, xnew – более точное, чем xold значение корня.

Таким образом, формула позволяет последовательно уточнять значения корня, используя предыдущий результат. В качестве начального значения для x можно взять число, из которого извлекается корень.

Вычисления проводятся обычно до тех пор, пока разность между двумя последовательными приближениями по абсолютной величине не станет меньше некоторого, наперед заданного, достаточно малого числа.

Для реализации этого алгоритма используется цикл REPEAT.

Схема алгоритма, реализующего этот метод, представлена на рисунке 5.5.

В алгоритме предусмотрено прерывание цикла с помощью инструкции break в том случае, если переменная Xold равна нулю, для того, чтобы исключить деление на 0.

Рисунок 5.5 – Схема алгоритма извлечения кубического корня

Задание для самостоятельной работы

В рамках выполнения лабораторной работы студент должен самостоятельно разработать алгоритм решения уравнения итерационным методом в соответствии со своим вариантом задания из таблицы 5.1. Номер варианта выбирается в соответствии с последней цифрой зачетной книжки.

      1. Алгоритмы вычисления сумм бесконечных рядов

В этих алгоритмах производится суммирование последовательно вычисляемых членов ряда. Сходство таких алгоритмов с предыдущим заключается в том, что вычисление каждого следующего члена ряда производится по значению предыдущего. Вычисление суммы имеет смысл только в том случае, если ряд сходится, то есть значения членов ряда постепенно уменьшаются. Накопление суммы производят до тех пор, пока очередной член ряда не станет меньше некоторого, наперед заданного, достаточно малого числа.

В качестве примера рассмотрим алгоритм вычисления синуса некоторого числа.

Синус можно представить как сумму бесконечного ряда 5.2.

(5.2)

Особенность данного ряда состоит в том, что каждый член ряда, начиная со второго, может быть найден их предыдущего по формуле 5.3.

(5.3)

Алгоритм вычисления синуса по формуле 5.2 с использованием соотношения 5.3 представлен на рисунке 5.6.

В рассмотренном алгоритме, помимо основного цикла для накопления суммы ряда, есть еще дополнительный цикл. В этом цикле переменная х уменьшается каждый раз на величину периода синуса, который равен 2π. Цикл работает до тех пор, пока х не станет меньше, чем 2π. Это сделано для того, чтобы избежать переполнения или потери значащих цифр при больших значениях х. Ряд 5.2 при больших значениях х сходится медленно, а факториал и «х в степени» растут очень быстро. Это приводит к тому, что все значащие цифры этих чисел перестают помещаться в разрядной сетке и, следовательно, обрезаются, вследствие чего результат искажается.

Задание для самостоятельной работы

В рамках выполнения лабораторной работы студент должен самостоятельно разработать алгоритм вычисления суммы сходящегося бесконечного ряда в соответствии со своим вариантом задания. Варианты задания приведены в таблице 5.2. Номер варианта выбирается в соответствии с последней цифрой зачетной книжки.

Рисунок 5.6 – Алгоритм вычисления синуса

Таблица 5.2 Задания на вычисление сумм бесконечных[ рядов

Функция

Ряд

Рекуррентная формула

1

2

3

4

0

e

1

, для х<1

Продолжение таблицы 5.2

1

2

3

4

2

, для х<1

3

, для х<1

4

, для х>1

5

cos(x)

5

sh(x)

7

arctg(x)

8

ln(1+x)

9