Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Для вычисления на компьютере сумм бесконечного ряда часто используют рекуррентные формулы, с помощью которых друг за другом вычисляют значения членов бесконечной последовательности. Рекуррентные формулы существенно сокращают время работы программы, упрощают процесс написания программы и ее отладки. Как правило, рекуррентные формулы программист должен составить сам. В этом и состоит искусство программирования вычислительных процессов. Рекуррентная формула может и отсутствовать. В этом случае каждый член ряда придется рассчитывать “в лоб” по полной формуле.

Есть определенные признаки, которые помогают выявить наличие рекуррентных формул. К таким признакам относятся выражения и подобные этим выражения, присутствующие в формуле общего члена бесконечного ряда. Часто рекуррентная формула для бесконечного ряда находится путем деления соседних членов ряда друг на друга.

Пример 30. Вычислить . Вычисление ряда окончить при выполнении условия .



Для решения этой задачи необходимо использовать рекуррентную формулу. А найти ее можно следующим способом. Сделаем преобразование исходного ряда в следующий вид: . Тогда условие окончания вычислений будет выглядеть так . Это условие либо выполнится для некоторого i = n, и вычислительный процесс будет завершен, или не выполнится. Во втором случае используют термин “зависание программы”. Оператор ЭВМ искусственно останавливает программу и выясняет причину зависания: неправильные исходные данные, например, комбинация X и ε, или допущена ошибка в тексте программы, а может быть, получена неправильная рекуррентная формула, или другая причина имеет место.

Нас в этом примере интересует нормальный режим работы программы, а это означает, что существует такое n, для которого справедливы следующие формулы:

. (2-28)

Эти формулы и будут исходными для нашей задачи. На этом первый этап подготовки бесконечного ряда к нахождению его суммы Y с погрешностью ε на компьютере завершается. Если рекуррентную формулу найти невозможно или нет в этом необходимости, то можно ограничится только приведенными выше преобразованиями.

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

. (2-29)

Из (2-29) и находится рекуррентная формула:

. (2-30)

Таблица имен

Математ. величина Обозначение в программе Содержательный смысл Тип переменной
i I Номер итерации. integer
X X Параметр бесконечного ряда. real
Y Y Искомая сумма. real
A Член последовательности A с номером i. real
ε E Требуемая точность расчетов. real

 

Sub Pr30()

Dim Y As Double, X As Double, E As Double, A As Double

Dim I As Integer

` X = InputBox(“X=”

E = InputBox(“E=”

I: = 1; A: = -X*X/2; Y: = 0;

Do Until

Y: = Y + A

I: = I+1;

A: = -X*X / 2 / I / (2*I - 1)*A;

END;

Loop

WRITELN('Y = ', Y: 10: 6)

END.

 

 

Пример 26. Вычислить с точностью ε квадратный корень из величины X .

 

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

 

При решении подобных задач, условие остановки вычислительного процесса формулируется следующим образом: .

 

Таблица имен

Математ. величина Обозначение в программе Содержательный смысл Тип переменной
i I Номер итерации. integer
Y1 Член послед. Y с номером i-1. real
Y Член последовательности Y с номером i. real
X X Величина X, квадратный корень которой мы ищем. real
ε E Требуемая точность расчетов. real

 

Вводим с клавиатуры величины X и E. Далее вычисляем первое приближение Y. Если X < 1, то Y принимается равным X, в противном случае за Y принимается величина X/2. Далее на основании Y нужно найти следующее приближение. Поэтому вычисленное значение записывается в ячейку с именем Y1 и с этого момента времени считается предыдущим значением. Текущее значение Y рассчитывается по рекуррентной формуле на основании Y1 и X. Этот циклический процесс повторяется до тех пор, пока не выполнится условие │ Y - Y1│ < E. После чего Y считается равным значению корня из X с точностью E и выводится на экран монитора.

Sub Pr26()

Dim X As Double, Y As Double, Y1 As Double, E As Double

Dim X As Double

If X < 1

Y = X

Else

Y = X / 2

End If

Do

Y1: = Y;

Y: = (Y1 + X / Y1) / 2

Loop Until ABS(Y - Y1) < E;

MsgBox(“Y =” & Y)

End Sub






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.