Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информ.doc
Скачиваний:
86
Добавлен:
10.02.2015
Размер:
4.49 Mб
Скачать

IV. Циклическая структура управления (без индексации)

Инструментальные средства программирования: условные и составные операторы, операторы цикла, но пока никаких массивов.

IV.1. Однократные итерационные циклы

1. (Факториал.) Вычислить т = n!

2. (Одна замечательная формула.) Для заданного n вы­числить Sn = 13+23+ … +n3 и Tn = 1+2+ … +n и установить, имеет ли место равенство Sn = Tn2. (Тождество Sn = Tn2 нетрудно доказать по индукции, однако здесь программируй­те!)

3. (Приближенное вычисление определенных интегралов.) Вычислить приближенное значение In определенного интеграла по одной из квадратурных формул с числом шагов интегрирова­ния, равнымn. В приводимых ниже формулах ,xi = a + ih, yi = f (xi).

Формула прямоугольников: In = h[y0 + y1 + … + yn–1].

Формула трапеций: In = h[(y0 + yn)/2 + y1 + y2 + … + yn–1].

Формула Симпсона (n четно):

.

Варианты задания (везде n = 100):

a) ,;

б) ,;

в) ,.

Вычислить погрешность |– In| использованной приб­лиженной формулы, учитывая, что истинные значения соответ­ствующих интегралов равны соответственно

a) 1.35011...; б) ; в) .

4. (Гармонический ряд. Константа Эйлера-Маскерони.)

а) Вычислить сумму n первых членов гармонического ряда:

б) Для заданного t > 1.0 вычислить n, при котором Hn > t Hn1.

в) Известно, что , где0 < n , а – некоторая константа, назы­ваемая константой Эйлера-Маскерони. Вычислить значение константы  с заданной точностью . (Известно, что

 = 0.5772156649015328606065120900824024310422...).

5. (Знакопеременный ряд Грегори.)

а) Вычислить сумму n первых членов ряда Грегори

четырьмя способами: сложить члены (1) слева направо и (2) справа налево; сложить сначала отдельно положительные, а затем отрицательные члены (3) слева направо и (4) справа налево. Полученные результаты напечатать и объяснить расхож­дение в результатах (если оно имеется).

б) Если вычислять Sn способом (1), то , ког­да n  . Для заданного  = 0.0001 найти наименьшее n такое, что . (Считать, что = 3.1415926.)

6. (Постоянная Каталана.) Вычислить приближенное зна­чение постоянной Каталана – следующей знакопеременной суммы:

,

"обрывая" суммирование:

а) на n-ом члене;

б) как только очередной член ряда становится по абсолютной величине  .

7. (Произведение Валлиса.) Положим

.

Для заданного > 0 вычислить первое n, при котором . (Известно, что при n  .) Считать, что = 3.1415926.

8. (Ряд Гаусса.) Положим

,

где 0 < p < q – целые числа. Известно, что

.

Вычислить En = |Sn(p,q) – S(p,q)| для заданных n, p, q.

9. (Некоторые интересные суммы.) Вычислить суммы

а) ;

в) ;

б) ;

г) .

(Рядом с суммами указаны их значения при n = .)

10. (Вычисление конечных сумм.) Вычислить:

а) ;

в) ;

б) ;

г) ,

где (2m)!!=2·4· …· (2m) и (2m+1)!!=1·3·5·…· (2m+1).

Указание. Здесь можно использовать схему Горнера.

Например,

11. (Вычисление конечных сумм и произведений.) Вычислить:

а) ;

в) ;

б) ;

г) .

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

а) ;

в) ,|x|<1;

б) ;

г) .

13. (Число = 3.1415926535897932384626433832795...) Вычислить приближенное значение числа по формуле: , где,|x|<1. При вычислении бесконечной суммы учесть только те слагае­мые, которые по абсолютной величине  = 0.0001.

14. (Вычисление конечных сумм.) Вычислить суммы, суммируя по тем k = 1,2,..., для которых tk :

а) ,; б),.

15. (Попадание в интервал.) Целые числа l, k, n, a1, … , an определяются вводом и последовательно обрабатываются програм­мой. Вычислить, сколько введено чисел ai, которые:

а) принадлежат интервалу (l, k];

б) кратны l и при делении на k дают в остатке 1, 2 или 3.

Другой вариант задания. Определить числа ai явно, например: ai=i3+7i2-15i+3, i=1,2,…,n.

16. (Минимум, максимум и сумма одновременно.) Последо­вательность вещественных чисел x1, x2, … определяется вводом. Вычислить минимум, максимум и сумму чисел этой по­следовательности. Считать, что x1  0, а последним элемен­том последовательности является первое число xn, равное нулю. При этом число xn в вычислении минимума и максимума не участвует.

Другой вариант задания. Числа xi задать явно, например, xi ecos ix– sin ix, i = 1,2,…,n.

17. (Число перемен знака в последовательности.) Вычислить Vn – число перемен знака в последовательности 1, cos 1, cos 2, …, cos(n–1), cos n. (Интересно отметить, что n/Vn при n  .)

18. (Ближайшее к целому.) Среди чисел ,k=1, 2, …, 40, найти ближайшее к какому-нибудь целому. Здесь a, b > 0 – заданные вещественные числа.

19. (Найти рекуррентность.) Для заданных натурального n и вещественных a  0 и b  1 вычислить:

a) (n корней);

б) (n логарифмов).

(Отметим, что xn x, где – корень уравнения;, гдеy – наибольший корень уравнения , приn  .)

20. (Линейные рекуррентные последовательности.) Вычис­лить значения п-ых членов последовательностей {x0, x1, …} и {y0, y1, …}, определяемых рекуррентно:

а) x0 = a; xk = bxk–1+c, k = 1, 2,…;

б) x0 =a; x1 = b; xk=cxk–1+ dxk-2, k = 2, 3, … ;

в) x0 = x1 = x2 = a; xk = bxk–1+ cxk-3, k = 3, 4, … ;

г) x0 = y0 = a, xk = bxk–1+ cyk–1, yk = dxk–1+ eyk–1, k = 1, 2,…;

д) x0 = y0 = a, x1 = y1 = bx2 = y2 = c; xk = dxk–1+ eyk–2+fxk–3, yk = gxk–1+ hyk–2, k = 3, 4,…

21. (Длина кривой.) Вычислить длину кривой y = f (x) между точками A и B, выбирая в качестве её приближенного значения длину ломаной A A1 A2An–1 B (см. рис. 4).

Указание. Длина отрезка Аi Ai+1 равна , где h = (ba)/n, xi = a+ih, i = 0,1,…, n. Исходные данные ( f (x), a, b, n) подобрать самостоятельно.

22. (Поиск итерационной схемы.) Для заданных x, a  0 и n  0 вычислить:

a) ; б); в); г)(s – целое).

Указания. а) Здесь y0 = 1; yk = bkyk–1 (k  1), где b0 = 1/ax; bk = bk–1x2 (k  1). б) ,,. в) Тропинка уже проложена. г) Здесь можно поступить так: сначала вычислитьm = ns, а затем вычислить yn = xm, используя степенной алгоритм (см. задачу 1.9).

23. (Вычисление конечных сумм.) Вычислить суммы:

а) ; б) ,

суммируя по тем k = 0,1,..., для которых avkb (0 < a < b). Последовательность v0, v1, … определена рекуррентно: v0 = v1 = a; vk = vk–1+vk-2 для k = 2,3,…

24. (Суммирование рядов.) Просуммировать ряды:

а) ; б)

Суммирование по n продолжать до тех пор, пока n  m или |an|  , где m  1 и  > 0 – заданные (нату­ральное и вещественное) числа, а ann-ый член ряда.

Указание. Для вычисления bk = cos kx и ck = sin kx используйте следующие формулы: b0 = 1, c0 = 0, b1 = cos x, c1 = sin x; bk = bk–1b1ck–1c1, ck = ck–1b1 + c1bk–1, k = 2,3,…

(Теоретические ответы: а) ; б).)

25. (Приближенное вычисление кубического корня.) Вычислить значение , используя итерационную формулу:

, n = 0,1,…,

где y0 = x/3, если х  1; y0 = x, если х < 1. В качестве у взять yn+1 с наименьшим n, для которого |yn+1yn|  , где  > 0 – заданное число. (Известно, что , когдаn.)

26. (Как вычислить log2 x?) Вычислить у = log2 x (x > 0) с заданной точностью .

Указание. Так как log2 = –log2 (1/x) и log2 x=m+log2 (x/2m), то все сводится к умению вычис­лять у = log2 x при 1  < 2. В этом случае x = 2y, где 0  < 1, или для некоторых 12, …  {0,1}. Если обозначить yn = b1+b2 +…+bn, где bi = i / 2i, то |‑ yn|  bn. Поэтому, если n таково, что bn  , то yn  log2  yn+ . Вычисление yn и bn можно провести по итерационной схеме: a0 = x, b0 = 1, y0 = 0; ,bk = b(k–1)/2; yk = yk–1 или yk-1 + bk-1 соответственно при и; k = 1, 2, …

27. (Приближенное вычисление 1/x при 0 < x < 2.) Последовательности {ak} и {bk} заданы рекуррентно:

a0 = 1, b0 = 1–x; ak = ak-1(1+bk–1), bk =  (bk–1)2, k = 1,2,...

Вычислить an для наименьшего п, при котором bn   ( > 0). (Для такого n имеем |an1/x|  /x.)

28. (Приближенное вычисление при0<x<2.) Последовательности {ak} и {bk} заданы рекуррентно:

a0 = x, b0 = 1–x; ak = ak–1(1+bk–1/2), , k = 1,2,…

Вычислить an для наименьшего n, при котором bn ( > 0). (Для такого n имеем .)

29. (Если последовательность имеет предел, то для любо­го заданного > 0 найдется n такое, что...) Последовате­льность {x0, x1,…} определяется рекуррентно. Найти наименьшее n, при котором |xnxn‑1|   .

а) ; б) ;k=1,2,…; x0 = 0.

Замечания. При n   a) , б) , где x – корень уравнения x=cos x.

30. (Метод Ньютона, или метод касательных.) Найти приближенное значение корня уравнения f (x) = 0 по методу Ньютона.

Суть метода. Последовательное приближение к искомому решению x= из заданного промежутка (a,b) осуществля­ется по итерационной формуле

xn = xn–1f (xn–1) / f (xn–1), n = 1,2,…

В качестве начального приближения x0 выбирается значение z того конца промежутка (а,b), для которого f (z) f (z) > 0. Полагают = xn, для первого n, при котором

|xn–xn–1|  |f (xn–1)/f (xn–1)|  .

(Здесь  > 0 – некоторое заданное число, так называемая точность вычисления.) Процесс после­довательного приближения к искомому решению иллюстрируется на рис. 5.

Варианты задания (везде = 0.0001):

а) f (x)  = x5–x–0.002, (a, b)=(1.0, 1.1);

б) , (a, b)=(, 2).

31. (Метод половинного деления.) Найти приближенное значение корня уравнения f (x) = 0 с абсолютной точностью методом половинного деления.

Суть метода. Предположим, что нам известен интервал (ab) такой, что    (a,b) и f(a) f(b) < 0. Рассмотрим точку c =  (a+b)/2середину этого интервала. Если f(c) = 0, то полагаем =c (корень найден); если же  f(c)  0, то указанную процедуру повторим для того из интервалов (а,с) или (с,b), на концах которого функция f(x) меняет знак. Этот процесс повторяется до тех пор, пока длина последнего из рассматриваемых интервалов не станет  2. Его середину берем в качестве приближенного значения . Процесс стягивания интервалов к искомому решению иллю­стрируется на рис. 6.

Варианты задания (везде = 0.0001):

a) ,;

б) , (a, b) = (0,1);

в) , (a, b) = (–3,–2), (–1,0), (0,1).

32. (Метод простых итераций.) Найти приближенное значение корня уравнения x = f (x) методом простых итераций.

Суть метода. В процессе построения элементов числовой последовательности {x0x1,…}, определяемой рекуррентно:

xn+1 = f (xn), n = 0,1,…; x0 = a,

находят первое n, при котором |xn–xn–1|  и полагают  = xn. Здесь > 0 и a – заданные значения, так назы­ваемые точность вычисления и начальное приближение. Процесс последовательного приближения к искомому решению иллюстри­руется на рис. 7.

Варианты задания (везде = 0.0001):

а) f (x)  = –ln(x+3), a = 0;

б) (x)  =  1+9 sin(x)/2, a – любое;

в) f (x)  = x5–0.2, a = –1.0, 0.0 и 1.0.

33. (Requla false.–Метод ложного положения, или ме­тод секущих.) Найти приближенное значение корня уравнения f (x) = 0 по методу секущих.

Суть метода. Выбирают два начальных приближения x0 и x1 так, чтобы f (x0f (x1) < 0, и строят последовательные приближения

, n =1,2,…

В качестве z каждый раз выбирают xkk < n) так, чтобы f (xnf (z) < 0 (это обеспечивает локализацию между xn и z). Наконец, в качестве значения берут xn для пер­вого n, при котором |xn+1 – xn|   . Процесс последовате­льного приближения к искомому решению иллюстрируется на рис. 8.

Указание. Исходные данные взять из задачи 31.