Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Вычисление бесконечных сумм с заданной точностью




Лабораторная работа 5.

Оглавление

1. Вычисление конечных сумм и произведений. 2

2. Использование рекуррентных соотношений. 2

3. Вычисление бесконечных сумм с заданной точностью.. 3

4. Задания. Вычисление сумм и произведений. 4

5. Задания. Использование рекуррентных формул. 5

6. Задания. Вычисление бесконечных сумм.. 9

7. Практикум.. 13

 


Вычисление конечных сумм и произведений

Вычисление конечных сумм и произведений - это наиболее часто встречающийся тип элементарных задач (см. также лабораторную работу 1). Пусть требуется вычислить сумму вида

Для вычисления суммы можно применить следующий алгоритм:

//Инициализация переменных. Подготовительные вычисления...s=0;for(int k=1; k<=n; k++){ //Вычислить текущий член суммы ak … s+=ak;}

Если при вычислении текущего слагаемого ak (внутри цикла) выполняются операции, не зависящие от k, эти вычисления целесообразно вынести из цикла for() и выполнить их один раз перед циклом. Например, пусть требуется вычислить сумму вида

Соответствующий код может быть следующим:

//Инициализация переменных. Подготовительные вычисленияdouble ak=0, sx=Math.Sin(Math.PI*x);s=0;for(int k=1; k<=n; k++){ //Вычислить текущий член суммы ak ak=sx/(k*k); s+=ak;}

Использование рекуррентных соотношений

Вернемся к задаче из лабораторной работы 1. Пусть требуется вычислить сумму вида

Здесь вычисление текущего члена суммы можно значительно упростить (и уменьшить количество операций), если для вычисления текущего слагаемого построить и использовать рекуррентную формулу вида

Такую формулу можно получить следующим образом. Выпишем сначала выражения для к-го и к+1-го слагаемого

Поделив к+1-е слагаемое на к-е слагаемое, получим рекуррентную формулу

Причем при k=0 имеем

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

//Инициализация переменных. Подготовительные вычисления//Предполагается, что значения переменных x и n определены ранее//ak первоначально полагаем равным a0double ak=x, dx=x*x;S=ak;for(int k=1; k<=n; k++){ //Вычислить текущий член суммы ak, используя рекуррентную формулу ak*=-dx/(2*k+2)/(2*k+3); S+=ak;}

Вычисление бесконечных сумм с заданной точностью

Пусть теперь требуется вычислить сумму вида

с заданной точностью e>0 (некоторое малое число). Под этим подразумевается, что очередные слагаемые ak нужно добавлять к текущему значению s(x), пока они достаточно большие по модулю, т.е. удовлетворяют условию

|ak|>e

Поскольку в этом случае число слагаемых заранее неизвестно, для суммирования можно использовать циклы типа while() или do-while(). Предыдущий алгоритм суммирования модифицируется следующим образом

//Инициализация переменных. Подготовительные вычисления//Предполагается, что значения переменных x, n и точность eps//определены ранее//ak первоначально полагаем равным a0 double ak=x, dx=x*x;int k=0;S=0;While(Math.Abs(ak)>eps){ S+=ak; //Вычислить следующий член суммы ak, используя рекуррентную формулу k++; ak*=-dx/(2*k+2)/(2*k+3);}




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


Дата добавления: 2016-09-03; Мы поможем в написании ваших работ!; просмотров: 1022 | Нарушение авторских прав


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

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

Сложнее всего начать действовать, все остальное зависит только от упорства. © Амелия Эрхарт
==> читать все изречения...

2160 - | 2048 -


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

Ген: 0.007 с.