Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум по программированию Обработка числовых данных

.pdf
Скачиваний:
562
Добавлен:
23.03.2016
Размер:
3 Мб
Скачать
☆

4. ПРОГРАММЫ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ

101

 

 

Из сравнения общей формулы члена ряда (4.1) и рекуррентной (4.2) видно, что рекуррентная формула значительно упро-

щает вычисления. Применим ее для N = 2, 3 и 4, зная, что R1 = 12 X :

R2

=

(2 × 2 - 1)X

×

1 X

= 1 × 3

X 2;

 

 

 

2 × 2

 

2

2 × 4

 

 

R = (2 × 3 - 1)X

× 1 × 3 X 2 = 1× 3 × 5 X 3;

 

3

 

2 × 3

 

2 × 4

 

2 × 4 × 6

 

 

 

 

 

 

R4

=

(2 × 4 - 1)X

×

1 × 3 × 5 X 3

= 1 × 3 × 5 × 7

X 4.

 

 

2 × 4

 

2 × 4 × 6

2 × 4 × 6 × 8

 

Способы вычисления значения члена ряда

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

äëÿ ðÿäà

 

1 +

 

 

1

 

+

 

1

 

+ ... +

 

 

 

 

1

 

+ ... проще вычислять

 

2 × 3

3 × 5

 

N (2N - 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

значение члена ряда RN по его общей формуле RN

=

 

 

1

 

 

 

 

 

 

N (2N - 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(сравните с R

N

=

(N - 1)(2N - 3)

R

N

−

по рекуррентной формуле);

 

 

 

 

 

 

 

 

 

 

N (2N - 1)

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

äëÿ ðÿäà

1 +

 

 

 

2

+

 

 

 

23

 

+ ...

+

2N

+ ...

 

лучше воспользоваться

1

× 2

1

× 2 ×

3

N !

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

рекуррентной формулой RN =

 

2

RN −1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

äëÿ ðÿäà

X 3 ln(X 3)

+

X 6 ln(X

6)

+ ... +

X 3N ln(X 3N )

+ ...

следу-

 

 

 

 

 

1

 

 

 

 

 

 

 

1× 2

 

 

 

 

N !

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ет применить смешанный способ, вычисляя AN = X 3N по рекур-

рентной формуле AN = X 3AN−1, N = 2, 3, ...… ïðèA1 = 1; BN = N ! — также по рекуррентной формуле BN = N BN−1, N = 2, 3, ...… ïðèB1 = 1,

а затем член ряда RN — по общей формуле, которая примет вид

RN = AN ln(AN ).

BN

102

ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ

 

 

4.16.Примеры выполнения задания

1.Вычислить с точностью e для 0 £ X £ 45°:

– приближенное значение функции cos X по формуле

 

X 2

X 4

+

X 2N

S = 1-

 

+

 

- ××× + (-1)2N

1

 

+ ×××,

2!

4!

 

(2N )!

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

 

 

-R

 

− X 2

 

ðÿäà RN

=

 

N

1

;

(2N

-

1)(2N )

 

 

 

–точное значение функции cos X;

–абсолютную и относительную ошибки приближенного зна- чения.

program Project1; {$APPTYPE CONSOLE} uses

SysUtils,

Math; {$DEFINE DBG} const

//Коэффициент для перевода из градусов в радианы K=Pi/180;

var

Eps: Extended =1E-8;

X: Extended =15;

R, S, Y, D: Extended; N:Word;

begin {$IFNDEF DBG}

//Операторы, не используемые при отладке Write('Введите требуемую точность: '); ReadLn(Eps);

Write('Введите значение угла в градусах: '); ReadLn(X);

{$ENDIF}

//Перевод X в радианы и возведение в квадрат D:=Sqr(K*X);

//Задание начальных значений переменным N:=0;

R:=1;

S:=0;

//Цикл для вычисления членов ряда

4. ПРОГРАММЫ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ

103

 

 

//и накопления их суммы.

 

//Выполнять,

 

 

//пока модуль очередного члена ряда больше Eps.

 

while Abs(R)>Eps do

 

begin

 

 

S:=S+R;

 

 

{$IFDEF DBG}

 

 

if N<10 then

//Вывод, используемый при отладке

 

WriteLn('N=', N, ' R=', R:14:11

 

, '

S=', S:14:11);

 

{$ENDIF} N:=N+2;

R:=-R*D/N/(N-1) end;

WriteLn;

//Вывод результатов вычислений: WriteLn(N:14

,' = Число шагов, за которое достигнута' ,'заданная точность');

WriteLn(S:14:11

,' = Приближенное значение функции'); WriteLn(Cos(K*X):14:11

,' = Точное значение функции'); WriteLn(Abs(Cos(K*X)-S):14:11

,' = Абсолютная ошибка'); WriteLn(Abs((Cos(K*X)-S)/Cos(K*X)):14:11, ' = Относительная ошибка');

ReadLn;

end.

2. Вычислить с точностью e для 0 £ X £ 1:

– приближенное значение функции ln (1 + X) по формуле

 

X 2

 

X 3

 

X 4

+

X N

 

S = X -

 

+

 

-

 

+ ×× × + (-1)N 1

 

+ ×××,

2

3

4

N

используя смешанный способ вычисления члена ряда;

–точное значение функции ln (1 + X);

–абсолютную и относительную ошибки приближенного зна- чения.

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

104

ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ

 

program Project1;

{$APPTYPE

CONSOLE}

uses

 

SysUtils,

 

Math; var

//Объявленные ниже переменные будут представлять:

X,

// - аргумент функции,

Eps,// - требуемую точность,

D,

// - часть (-1)^(N+1)*X^N члена ряда,

 

//

вычисляемую по рекуррентной формуле,

R,

// - ÷ëåí ðÿäà,

S,

// - сумму ряда,

Y

// - значение функции ln(1+X),

 

:Extended;

N

// - номер члена ряда.

:Integer; begin

Write('Введите требуемую точность: '); ReadLn(Eps);

Write('Введите значение аргумента функции: '); ReadLn(X);

D:=1;//Начальное значение для вычисления числителя // члена ряда по рекуррентной формуле

N:=1;//Нумерация членов ряда начинается с 1 R:=X;//Первый член ряда

S:=0;//Начальное значение для накопления суммы //членов ряда

//Цикл для вычисления членов ряда //и накопления их суммы.

//Выполнять, пока модуль очередного члена ряда //больше требуемой точности.

while Abs(R)>Eps do try

S:=S+R;//Включение очередного члена ряда в сумму // (*

if N<5 then

//Вывод, используемый при отладке

WriteLn('N=', N, ' R=', R:14:11

 

, '

S=', S:14:11);

 

// *)

 

 

 

N:=N+1;

//Увеличение номера члена ряда

D:=-D*X;

//Рекуррентная формула вычисления

 

//числителя члена

ðÿäà

R:=D/N

//Вычисление N-го

члена ряда

4. ПРОГРАММЫ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ

105

 

 

except

on E:Exception do //Обработать любое исключение begin

WriteLn(E.Message);//Вывод типа исключения WriteLn('Исключение возникло на шаге N = ',N); ReadLn;

Halt end;

end; //while try

//Вывод результатов вычислений: //Число шагов, за которое достигнута //заданная точность

WriteLn('Число шагов, за которое достигнута' ,' заданная точность = ',N);

//Приближенное значение функции ln(1+X) WriteLn('Приближенное значение функции ln(1+X) = '

,S:14:11);

//Точное значение функции ln(1+X) WriteLn('ln(1+X) = ',Ln(1+X):14:11); //Абсолютная ошибка WriteLn('Абсолютная ошибка = '

,Abs(Ln(1+X)-S):14:11); //Относительная ошибка WriteLn('Относительная ошибка = '

,Abs((Ln(1+X)-S)/Ln(1+X)):14:11,'%');

ReadLn;

end.

4.17. Задания для самостоятельной работы

Составить программу вычисления суммы ряда с заданной точ - ностью ε. Анализируя код программы, выявить возможные при- чины возникновения исключений и провести их обработку, об еспечивающую вывод типа исключения и пояснение причины воз - никновения.

1. Вычислить с точностью ε:

– приближенное значение функции ln (1 + X)/X по формуле

 

X

 

X 2

 

X 3

+

X N −1

 

S = 1−

 

+

 

−

 

+ ... + (−1)N 1

 

+ ...,

2

3

4

N

используя смешанный способ вычисления члена ряда;

–точное значение функции ln (1 + X)/X;

–абсолютную и относительную ошибки приближенного зна- чения.

106 ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ

2. Вычислить с точностью e:

– приближенное значение функции eX по формуле

S = 1 + X +

X 2

+

X 3

+

X 4

+

X 5

+ ...,

2!

3!

4!

5!

 

 

 

 

 

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

–точное значение функции eX;

–абсолютную и относительную ошибки приближенного зна- чения.

3. Вычислить с точностью e:

– приближенное значение функции sin X по формуле

S = X - X 3 + X 5 - X 7 + X 9 + ..., 3! 5! 7! 9!

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

–точное значение функции sin X;

–абсолютную и относительную ошибки приближенного зна- чения.

4. Вычислить с точностью e:

– приближенное значение функции 1 + X по формуле

S = 1+

X

-

X 2

+

3X 3

 

-

3× 5X 4

 

+ ...,

2

2 × 4

2× 4 ×

6

2× 4× 6×

8

 

 

 

 

 

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

– точное значение функции 1 + X ;

–абсолютную и относительную ошибки приближенного зна- чения.

5. Вычислить с точностью e:

– приближенное значение функции arcsin X по формуле

S = X

+

X 3

-

3X

5

+

3 × 5X 7

 

-

3 × 5 × 7X

9

+ ...,

2

×3

2 × 4 ×5

2 × 4 × 6 ×

7

2 × 4 × 6 × 8 × 9

 

 

 

 

 

 

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

–точное значение функции arcsin X;

–абсолютную и относительную ошибки приближенного зна- чения.

6. Вычислить с точностью e:

– приближенное значение функции arctg X по формуле

S = X - X 3 + X 5 - X 7 + X 9 + ..., 3 5 7 9

используя смешанный способ вычисления члена ряда;

4. ПРОГРАММЫ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ

107

 

 

–точное значение функции arctg X;

–абсолютную и относительную ошибки приближенного зна- чения.

7. Вычислить с точностью e:

– приближенное значение функции

e X

- e−X

по формуле

 

2

 

X 3

 

X 5

 

X 7

 

X 9

 

 

 

S = X +

+

+

+

+ ...,

 

 

 

3!

5!

7!

9!

 

 

 

 

 

 

 

 

 

 

 

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

– точное значение функции e X - e−X ; 2

– абсолютную и относительную ошибки приближенного зна- чения.

8. Вычислить с точностью e:

– приближенное значение функции

e X

+ e−X

по формуле

 

2

 

X 2

 

X 4

 

X 6

 

X 8

 

 

 

S = 1 +

+

+

+

+ ...,

 

 

 

2!

4!

6!

8!

 

 

 

 

 

 

 

 

 

 

 

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

– точное значение функции e X - e−X ; 2

–абсолютную и относительную ошибки приближенного зна- чения.

9. Вычислить с точностью e:

– приближенное значение функции ln (1 - X) по формуле

S = -X - X 2 - X 3 - X 4 - X 5 + ..., 2 3 4 5

используя смешанный способ вычисления члена ряда;

–точное значение функции ln (1 - X);

–абсолютную и относительную ошибки приближенного зна- чения.

10. Вычислить с точностью e:

– приближенное значение функции ln

1 + X

по формуле

1 - X

 

 

 

 

 

 

 

 

 

 

 

 

 

æ

X

3

 

X

5

X 7

 

X 9

 

ö

 

 

 

S = 2 × ç X +

 

 

+

 

+

 

+

 

+ ...

÷

,

 

 

3

 

5

7

9

 

 

è

 

 

 

 

 

ø

 

 

 

используя смешанный способ вычисления члена ряда;

108

ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ

 

 

–точное значение функции ln11 +- XX ;

–абсолютную и относительную ошибки приближенного зна- чения.

11. Вычислить с точностью e:

– приближенное значение функции (1 + Х )−3 по формуле

S = 1 -

2

×

3

X +

3× 4X 2

-

4 × 5X 3

+

5× 6X 4

-

6× 7X 5

+ ...,

 

2

 

2

2

2

2

 

 

 

 

 

 

 

 

используя смешанный способ вычисления члена ряда;

–точное значение функции (1 + Х )−3;

–абсолютную и относительную ошибки приближенного зна- чения.

12. Вычислить с точностью e:

– приближенное значение функции ln(X + 1 + X 2 ) по формуле

S = X -

1

×

X 3

+

1

×

3

×

X 5

-

1

×

3

×

5

×

X 7

+

1

×

3

×

5

×

7

×

X 9

- ...,

2

3

2

4

5

2

4

6

7

2

4

6

8

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

используя смешанный способ вычисления члена ряда;

– точное значение функции ln(X +

1 + X 2 );

 

 

 

 

 

 

 

–абсолютную и относительную ошибки приближенного зна- чения.

13. Вычислить с точностью e:

– приближенное значение функции e−X 2 по формуле

S = 1 -

X 2

+

X 4

-

X 6

+

X 8

- ... + (-1)

N

X 2N

+ ...,

1!

2!

3!

4!

 

N !

 

 

 

 

 

 

 

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

–точное значение функции e −X 2 ;

–абсолютную и относительную ошибки приближенного зна- чения.

14. Вычислить с точностью e:

– приближенное значение функции (1 + Х )−2 по формуле

S = 1 - 2X + 3X 2 - 4X 3 + 5X 4 - ...,

используя смешанный способ вычисления члена ряда;

–точное значение функции (1 + Х )−2;

–абсолютную и относительную ошибки приближенного зна- чения.

4. ПРОГРАММЫ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ

 

 

 

 

 

109

 

 

 

 

 

 

 

 

15. Вычислить с точностью e:

 

 

 

 

 

 

 

– приближенное значение функции

1

по формуле

 

 

 

1 + X

S = 1 - 1 X

+ 1 × 3 X 2 -

1 × 3 × 5 X 3 +

1 × 3 × 5 × 7

X 4

- ...,

2

2 × 4

2 × 4 × 6

 

2 × 4 × 6 × 8

 

 

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

ðÿäà;

 

 

 

 

 

 

 

 

 

– точное значение функции

1

 

;

 

 

 

 

 

 

 

 

 

 

1 + X

 

 

 

 

–абсолютную и относительную ошибки приближенного зна- чения.

16. Вычислить с точностью e:

– приближенное значение p по формуле

S = 4 × é1

- 1

+ 1

- ... + (-1)N −1

1

 

+ ...ù

,

 

 

ê

3

5

 

2N - 1

ú

 

ë

 

û

 

используя смешанный способ вычисления члена ряда;

–точное значение p с помощью стандартной функции Pi;

–абсолютную и относительную ошибки приближенного зна- чения.

17. Вычислить с точностью e:

– приближенное значение

1

 

 

по формуле

 

 

 

 

1 - X 2

 

S = 1 +

1

X 2

+

1 × 3

X 4

+

1 × 3 × 5

X 6

+

1 × 3 × 5 × 7

X 8

+ ...,

 

2

 

 

2 × 4

 

 

2 × 4 × 6

 

 

 

2 × 4 × 6 × 8

 

 

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

– точное значение функции

1

;

 

1 - X 2

–абсолютную и относительную ошибки приближенного зна- чения.

18. Вычислить с точностью e сумму бесконечного ряда:

∞

(-1)N −1

X

2N +1

 

S = å

 

,

2N + 1

N =0

 

 

–используя смешанный способ вычисления члена ряда;

–используя общую формулу для вычисления члена ряда.

19. Вычислить с точностью e сумму бесконечного ряда:

∞

X

2N −1

S = å (-1)N

 

 

,

4N 2

- 1

N =0

 

110

ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ

 

 

–используя смешанный способ вычисления члена ряда;

–используя общую формулу для вычисления члена ряда.

20. Вычислить с точностью e сумму бесконечного ряда:

∞

X

2N

ln (1

+ 2N )

 

S = å (-1)N +1

 

,

 

 

 

 

N =0

 

 

4N 2

–используя смешанный способ вычисления члена ряда;

–используя общую формулу для вычисления члена ряда.

21. Вычислить с точностью e сумму бесконечного ряда:

∞

N +1

X

2N (2N - 1)

 

S = å (-1)

 

 

 

,

 

2N (2N - 1)

N =1

 

 

–используя смешанный способ вычисления члена ряда;

–используя общую формулу для вычисления члена ряда.

22. Вычислить с точностью e сумму бесконечного ряда:

∞

(2

2N

- 1)X

−2N

S = å (-1)N +1

 

 

,

 

22N 2N

 

N =1

 

 

 

–используя смешанный способ вычисления члена ряда;

–используя общую формулу для вычисления члена ряда.

23. Вычислить с точностью e сумму бесконечного ряда:

∞

N (2N - 1)X

−N

,

S = å (-1)

(N + 5)2N

N =1

 

–используя смешанный способ вычисления члена ряда;

–используя общую формулу для вычисления члена ряда.

24. Вычислить с точностью e сумму бесконечного ряда:

∞

X

3N

(3N + 1)

 

S = å

 

,

 

 

 

N =1

 

 

N !

–используя смешанный способ вычисления члена ряда;

–используя рекуррентную формулу для вычисления члена ряда.

25. Вычислить с точностью e сумму бесконечного ряда:

S =

1

×

2

X

+

3

× 4X 3

+

5

× 6X 5

+

7

× 8X 7

+

 

9

× 10X 9

+ ... +

 

1

 

 

3

 

3 × 7

3

× 7 × 11

3

×

7 ×

11× 15

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

9 ×

10X

9

 

+ ... +

 

(2N - 1)(2N )X 2N −1

 

 

+ ...,

 

3

× 7

×11 ×15

 

1× 3 × 7 ×11× 15× ...× (4N -

5)

 

 

 

 

 

 

–используя смешанный способ вычисления члена ряда;

–используя рекуррентную формулу для вычисления члена ряда.