Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


С заданной точностью. Итерационные циклы




 

Задача сводится к нахождению суммы

 

,

 

каждое слагаемое, которой является функцией от номера n, определяющего место этого слагаемого в сумме, а также может являться функцией одного или нескольких дополнительных параметров.

Вычисление суммы ряда состоит в получении в результате циклического процесса последовательности u (1), u (2),..., u (n),..., сходящейся к своему предельному значению, т. е. . Здесь u (n) – сумма n членов бесконечного ряда.

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

Процесс вычисления определяется рекуррентным соотношением (т.е. к предыдущему значению прибавляется текущее) u (n)= u (n -1)+ u (n). Алгоритм нахождения суммы ряда показан на рис 4.

 

Рис. 4. Вычисление суммы ряда

 

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

Для организации такого итерационного цикла (т.е. цикл с заранее неизвестным числом повторений) применяется оператор Do...Loop. Именно здесь проявляется удобство этого оператора, поскольку, используя, оператор For...Next, поставленную задачу решить не удается – For...Next – оператор цикла с заранее заданным числом повторений.

Пример. Составить программу вычисления приближенного значения числа p, используя равенство

 

.

 

Вычисления закончить, когда значение последнего члена ряда не станет меньше 0, 0000001. Определить длину приближенного ряда.

Из условия задачи задаем погрешность e = 0, 0000001. Число p находим по формуле , где S – сумма ряда, которую необходимо вычислить. Для поиска суммы S применим цикл “ДО” с постусловием.

 

Sub Demo_Pi()

Dim i As Integer

Dim e, s, u, Pi As Single

i = 1

s = 0

' Задаем точность вычисления

e = 0.0000001

Do

' Вычисляем значение текущего члена ряда

u = 1 / i ^ 2

s = s + u

i = i + 1

Loop Until Abs(u) < e

Pi = Sqr(s * 6)

MsgBox "Число Пи равно " & Pi & ", число итераций равно " & i - 1,, "Решение задачи"

End Sub

 

 

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

 

,

 

при x <1 с точностью до члена ряда, меньшего заданной точности e<<1.

 

Sub Demo_summa_ryada()

Dim n As Integer 'счетчик

Dim x As Single 'аргумент

Dim z As Double 'сумма

Dim u As Double 'член ряда

Dim e As Double 'точность вычислений

x = InputBox("Введите х < 1 - ", "Запрос аргумента ряда")

e = InputBox("Введите погрешность E<<1 -", "Запрос точности вычисления")

z = 0

n = 1

Do

' Вычисляем значение текущего члена ряда

u = (-1) ^ n * x ^ (2 * n) / (2 * n)

z = z + u

n = n + 1

Loop While Abs(u) >= e

z = z + 1 'прибавляем к вычисленной сумме первый член ряда

MsgBox "Сумма ряда равна " & z,, "Решение задачи"

End Sub

 

 

 

 





Поделиться с друзьями:


Дата добавления: 2015-10-27; Мы поможем в написании ваших работ!; просмотров: 1515 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Настоящая ответственность бывает только личной. © Фазиль Искандер
==> читать все изречения...

2313 - | 2041 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.