Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР8-С++-10-апреля-2012.doc
Скачиваний:
9
Добавлен:
15.09.2019
Размер:
3.09 Mб
Скачать

2.5.3.2. Пример для варианта 30

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

c точностью ε = 0.00001 для значения х =0,95.

Решение:

1. Запишем формулу члена ряда в аналитическом виде

2. Полученная формула члена ряда относится к типу (в) (см. стр … ), то есть числитель необходимо вычислять по рекуррентной формуле, а знаменатель непосредственно в цикле.

3. Рекуррентная формула в данном примере достаточно проста и очевидна: каждый последующий числитель отличается от предыдущего на сомножитель –x2. Если очередной числитель выразить с помощью формулы , то рекуррентная формула для числителя будет иметь вид .

4. В итоге числитель вычисляем по рекуррентной формуле , а знаменатель 1/((4k+2) (4k+3))– непосредственно

2.5.3.3. Программа

//Лабораторная работа № 8

//Домашнее задание 8-3d

//Вычисления суммы ряда с использованием рекуррентных формул

//Число членов ряда неизвестно

//Вариант 30

//Автор Петрова Мария гр. ИНФО-101

// 10.04.2012

//= = = = = = = = = = = = == = = = == = = = ==

# include <stdio.h>

# include <conio.h>

#include <iostream.h>

# include <math.h>

int main ()

{

int k;

float x, ak, ck, ck1,s, znam,eps;

// k - счетчик членов ряда

// znam - значение знаменателя

// ak - k-й член ряда

// eps - заданная погрешность

cout << " Введите значение для x: "; cin >> x;

cout << " Введите погрешность вычислений eps: "; cin >> eps;

s = 0;

k = 0;

ck = x;

do

{

znam = (4*k +2)*(4*k + 3);

ak = ck/znam;

s = s + ak;

ck1 = ck * (-x*x);

ck=ck1;

k = k + 1;

}

while(fabs(ak)>=eps);

/* вывод результата */

cout << "\n Результаты решения:" << endl;

cout << " Значение x = " << x << endl;

cout << " Погрешность вычислений eps = :" << eps << endl;

cout << " Сумма ряда равна s = " << s << endl;

cout << " Количество итераций k = " << k << endl;

getch();

return 0;

}

2.5.3.4. Тестирование

2.5.4. Задание 4. Вычисление значения функции с помощью разложения в ряд

2.5.4.1. Условие задания

В заданиях с № 1 по 15 (табл. 8.14) необходимо провести вычисления значения функции Y(x) с помощью ее разложения в ряд S(x) с точностью ε. Вычисление суммы ряда S(x) провести с использованием рекуррентной формулы. Сравнить значения S(x) и Y(x). Близость значений S(x) и Y(x) для конкретного x указывает на правильность вычисления S(x) и Y(x). Вывести число итераций, необходимое, для достижения заданной точности.

В заданиях с 16 по 30 (табл. 8.15) необходимо провести вычисления значения функции Y(x) с помощью ее разложения в ряд S(x) для заданного количества членов ряда n. Вычисление суммы ряда S(x) провести с использованием рекуррентной формулы. Сравнить значения S(x) и Y(x). Близость значений S(x) и Y(x) для конкретного x указывает на правильность вычисления S(x) и Y(x).

Таблица 8.14

Варианты заданий

x

S(x)

ε

Y(x)

1

0,5

10-5

2

0,5

10-4

3

0,5

10-5

4

0,5

10-4

5

0,5

10-5

6

0,5

10-4

7

0,5

10-5

8

0,5

10-4

9

0,5

10-5

10

0,5

10-4

11

0,5

10-5

12

0,5

10-4

13

0,5

10-5

14

0,5

10-4

15

0,5

10-5

Таблица 8.15