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

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

x

S(x)

n

Y(x)

16

0,5

160

17

0,5

120

18

0,5

100

19

0,5

80

20

0,5

60

21

0,5

140

22

0,5

150

23

0,5

130

24

0,5

110

25

0,5

90

26

0,5

100

27

2,5

80

28

0,3

70

29

0,7

60

30

0,5

160

31

0,3

120

32

0,6

140

33

0,7

100

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

Провести вычисления значения функции Y(x) с помощью ее разложения в ряд S(x)

.

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

2.5.4.3. Программа

а) для случая с точностью ε = 10-5 и х=0,5

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

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

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

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

//Вариант 30

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

// 10.04.2012

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

# include <stdio.h>

# include <conio.h>

#include <iostream.h>

# include <math.h>

int main ()

{

int k;

float x,y, ak, ck, ck1,s, chisl,eps;

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

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

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

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

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

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

s = 1;

k = 1;

ck = 1;

do

{

chisl = cos(k*x);

ak = chisl/ck;

s = s + ak;

ck1 = ck*(k + 1);

ck=ck1;

k=k + 1;

}

while(k<=20);

y= exp(cos(x))*cos(sin(x));

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

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

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

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

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

cout << " Расчет по формуле y = " << y << endl;

getch();

return 0;

}

б) для случая с заданным n = 20 и х=0,5

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

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

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

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

//Вариант 30

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

// 10.04.2012

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

# include <stdio.h>

# include <conio.h>

#include <iostream.h>

# include <math.h>

int main ()

{

int k,i,n;

float x,y, ak, ck, ck1,s, chisl,eps;

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

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

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

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

// n - число членов ряда

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

cout << " Введите число членов ряда n :"; cin >> n;

s = 1;

k=1;

ck = 1;

ak=1;

for(i=1;i<=n;i++)

{

chisl = cos(k*x);

ak = chisl/ck;

s = s + ak;

ck1 = ck*(k + 1);

ck=ck1;

k=k + 1;

}

y= exp(cos(x))*cos(sin(x));

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

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

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

cout << " Число членов ряда n = " << n << endl;

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

cout << " Расчет по формуле y = " << y << endl;

getch();

return 0;

}