31
г) f (x) = ∑(−1)i |
|
|
cosix ; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
∞ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i=1 |
|
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
д) f (x)=cos x + |
cos 2x |
+ |
cos 3x |
+ + |
cos nx |
|
+ ; |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
n2 |
|
|||
е) f (x)= |
cos2x |
+ |
cos 4x |
+ |
cos6x |
+ |
; |
|
|
|
|||||||||||||||||||||
|
|
|
|
3 5 |
|
5 7 |
|
|
|
||||||||||||||||||||||
|
1 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
ж) f (x)= 2 |
x |
−1 |
+ |
(x −1)3 |
|
+ |
(x −1)5 |
+ |
; |
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
+1 |
|
|
|
3(x +1)3 |
|
|
|
5(x +1)5 |
|
|
|||||||||||||||||
|
x |
|
|
|
|
|
|
|
|
||||||||||||||||||||||
з) f (x)= x − |
|
|
x3 |
|
|
+ |
x5 |
|
|
− |
|
x7 |
|
+ |
; |
|
|
|
|||||||||||||
2!32 |
|
4!52 |
|
6!72 |
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
и) f (x)= x − |
|
|
x3 |
|
+ +(−1)n |
|
|
x2n+1 |
|
|
+ |
|
|||||||||||||||||||
1!3 |
|
n!(2n +1) |
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
18.Определить условие сходимости, получить рекуррентную формулу и вычислить сумму членов ряда
y = xn + 12 xn−1 + 13 xn−3 + + 1n x + n1+1 + n +1 2 x−1 +
с точностью ε.
4.3. Вложенные циклы
Алгоритмы циклической структуры могут быть сложнее рассмотренных выше. Например, часто встречаются циклические вычисления со сложными циклами, т.е. когда цикл содержит в себе один или несколько циклов. Конструкция, в которой цикл содержит внутри себя другие циклы, называется вложенным циклом. Цикл, охватывающий другие циклы, называется внешним, остальные циклы - внутренними. Правила организации как внешнего, так и внутренних циклов такие же, как и для простого. Параметры этих циклов меняются не одновременно, т. е. при одном значении параметра внешнего цикла параметр внутреннего цикла принимает по очереди все значения.
Пример 1. Составить алгоритм для вычисленияz = (x2 +1) arctg xy +−11 ,
если х изменяется на отрезке 0≤ х≤ 4 с шагом 1, а у – на отрезке 2 ≤ у≤ 3 с шагом 0,5. Данное условие означает, что при каждом значении х необходимо перебирать все возможные значения у.
Решение. Из блок-схемы алгоритма (рис.4.12) следует, что вначале в блоках 1, 2 значениям х и у присваиваются начальные значения х=0 и у=2, затем вычисляется величина z (блок 3), результаты вычислений выводятся на печать (блок 4). Кроме z на печать целесообразно вывести и значения переменных х и у, которым это значение z соответствует.
В блоке 5 величине у присваивается новое значение, равное сумме предыдущего значения и величины шага изменения у. Для полученного значения у
|
32 |
проверяется условие |
у ≤ 3 (блок 6), и если это условие выполняется, то |
Начало |
вновь вычисляется значение z (блок 3) |
и печатаются значения х, у, z (блок 4). |
|
11 |
Затем значение у увеличивается на ве- |
x = 0 |
личину шага, и процесс будет повто- |
2 |
ряться до тех пор, пока у станет боль- |
y = 2 |
ше 3. |
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Это означает, что для одного |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
конкретного значения х и всех возмож- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y −1 |
|||||
2 |
|
|
|
|
|
|
|
|
|
||||||||||
|
z = (х |
+1) arctg |
|
ных значений у вычисления для полу- |
|||||||||||||||
|
x +1 |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
чения z выполнены и можно теперь |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
присваивать новое значение величине х |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
x, y, z |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
(т.е. х = х+1, блок 7). Для нового значе- |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ния х повторяются все операции, изло- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
y + 0,5 |
|
|
|
|
женные выше, т. е. проводится цикл |
||||||
|
|
|
|
|
y = |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
действий в блоках 3, 4, 5, 6. Этот цикл |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
да |
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
будет повторяться столько раз, сколько |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
значений примет величина х при усло- |
||||||
У ≤ 3 |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
y ≤ 3 |
|
|
|
|
|
вии х ≤ 4. Когда это условие перестанет |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
нет |
выполняться, то все вычисления долж- |
||||||
|
|
|
|
|
|
7 |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ны быть закончены. |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x = x + 1 |
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
да 8
x ≤ 4
нет
Конец
Рис. 4.12
Пример 2. Определить с точностью ε = 0,01 значение аргумента, при котором функция y = ax - ln x достигнет минимума, при х, изменяющемся от 0,2
до 10.
Решение. Можно было бы решать эту задачу, взяв шаг изменения аргумента равным 0,01. Однако это приведет к увеличению времени счета. Поэтому решение задачи разбивается на два этапа:
1)определение грубого значения минимума функции при большом шаге изменения аргумента, например 0,3;
2)повторение процесса в районе минимума при шаге изменения аргумента, равном 0,01.
Таким образом, при первом нахождении минимума шаг изменения аргумента h равен 0,3, а его начальное значение х= 0,2. При повторном нахо-
ждении минимума шаг равен 0,01, а х0 = х min - 0,3.
Схема алгоритма решения задачи приведена на рис 4.13.
Во внутреннем цикле осуществляется поиск наименьшего значения
|
|
Начало |
|
|
1 |
|
|
a |
|
2 |
|
|
h = 0,3 x = 0,2 |
|
|
y mi n = y (0,2) |
|
|
33 |
|
|
y = ax - lnx |
|
|
4 |
y < y min |
|
|
нет |
|
5 |
да |
|
y min = y |
|
|
|
|
|
|
x min = x |
|
|
x =x + h |
да |
6 |
x ≤ 10 |
|
|
|
|
нет |
|
|
7 |
h = 0,01 |
|
|
|
|
|
да |
|
8 |
нет |
|
|
|
|
x = x min - 0,3 |
|
|
|
h = 0,01 |
|
9 |
|
|
|
x min |
|
|
Конец |
Рис. 4.13
33
функции и значения аргумента, при котором оно достигается. Поскольку функция имеет один минимум, выход из цикла
происходит при y ≥ y min . После окончания внутреннего цикла проверяется условие h = 0,01.Если выполнение условия имеет место, то осуществляется выход из внешнего цикла. В противном случае задаются новое начальное значение переменной х, новый шаг h и внешний цикл повторяется еще один раз.
|
|
|
34 |
|
|
|
|
|
|
Пример 3. Вычислить суммы положительных элементов каждой строки мат- |
|||||||||
рицы А (4,5) |
а (1,1) |
а (1,2) |
а (1,3) |
а (1,4) |
а (1,5); |
|
|
|
|
|
|
|
|
||||||
|
а (2,1) |
а (2,2) |
а (2,3) |
а (2,4) |
а (2,5); |
|
|
|
|
|
а (3,1) |
а (3,2) |
а (3,3) |
а (3,4) |
а (3,5); |
|
|
|
|
|
а (4,1) |
а (4,2) |
а (4,3) |
а (4,4) |
а (4,5). |
|
|
|
|
Элементы матрицы обозначим а kl, где k = 1,2,3,4; l = 1,2,3,4,5. Согласно |
|||||||||
условию задачи в результате ее решения получим вектор Сk , каждый элемент |
|||||||||
которого получается путем последовательного сложения всех положитель- |
|||||||||
ных элементов фиксированной строки k данной матрицы. Для каждой строки |
|||||||||
k необходимо перебрать все элементы этой строки путем последовательного |
|||||||||
изменения l от 1 до 5 с шагом 1 (l - номер столбца) |
с целью сравнения каж- |
||||||||
дого элемента k-й строки с 0; если элемент аkl положительный, то произво- |
|||||||||
дится накопление суммы, иначе сравнивается с нулем следующий элемент. |
|||||||||
После получения суммы положительных |
элементов одной строки осуще- |
||||||||
ствляется переход к следующей |
строке путем увеличения текущего значе- |
||||||||
ния k на единицу. Цикл по k является внешним, а по l - внутренним. Схема |
|||||||||
|
|
|
алгоритма |
решения приведена на рис |
|||||
|
Начало |
|
4.14. Блок 2 организует внешний цикл, |
||||||
|
1 |
|
блок 3 задает начальное значение сум- |
||||||
|
А |
|
мы, блок 4 организует внутренний цикл. |
||||||
|
2 |
|
В сложных циклах каждый цикл управ- |
||||||
|
|
ляется своими параметром. В блоке 5 |
|||||||
|
k = 1,4 |
|
|||||||
|
|
проверяется знак элемента матрицы, а |
|||||||
|
|
|
|||||||
3 |
|
|
блок 6 |
накапливает сумму, |
если эле- |
||||
cк= 0 |
|
мент положительный, в противном слу- |
|||||||
|
|
||||||||
|
4 |
|
чае сумма остается неизменной. Блоки, |
||||||
|
|
входящие во внешний цикл, |
выполня- |
||||||
4 |
l = 1,5 |
|
|||||||
|
ются |
при |
решении |
задачи |
4 |
раза |
|||
|
|
|
|||||||
|
|
|
(напр., блок 7), а блоки внутреннего |
||||||
5 |
akl > 0 |
|
цикла - 20 раз (напр., блок 5). |
|
|
||||
нет |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
да |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ck = сk + akl |
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
С |
|
|
|
|
|
|
|
|
|
Конец |
|
|
|
|
|
|
|
|
|
Рис.4.14 |
|
|
|
|
|
|
|
|
|
|
|
35 |
|
|
|
|
|
|
Пример 4. |
Составить блок-схему алгоритма |
вычисления значений функции |
|||||||
у по формуле |
|
|
|
|
|
|
|
|
|
|
уi j = ln zi |
sin xj , |
где i = 1, 2, …,10; |
j = 1, 2,…,15. |
|
||||
Решение. Результатом решения этой задачи будет множество чисел, ко- |
|||||||||
торое можно представить следующей матрицей произведений ln zi sin xj |
|
||||||||
|
lnz1 sinx1 |
lnz1 sinx2 ... |
lnz1 sinx15 |
|
|
|
|||
|
lnz2 sinx1 |
lnz2 sinx2 ... |
lnz2 |
sinx15 |
. |
|
|
||
|
LLLLLLLLLLLLLLLLLLL |
|
|
||||||
|
|
|
|
||||||
|
lnz10 sinx1 |
lnz10 sinx2 ... |
lnz10 sinx15 |
|
|
|
|||
Особенность этого примера состоит в том, что при организации алго- |
|||||||||
|
|
|
ритма с вложенным циклом во внешнем |
||||||
|
Начало |
|
цикле по i одновременно с изменением |
||||||
|
|
|
величины zi следует вычислять |
зна- |
|||||
|
1 |
|
чение |
промежуточной |
переменной |
||||
|
Zi, Xi |
|
a = ln zi для того, чтобы при каждом |
||||||
|
2 |
|
значении i вычисление |
ln zi произво- |
|||||
|
|
дилось |
только один раз для всех хj. |
||||||
|
i =1,10 |
|
|||||||
|
|
|
Блок-схема алгоритма с вычислением |
||||||
|
3 |
|
значений промежуточной переменной а |
||||||
|
a = ln zi |
|
во |
внешнем |
цикле |
|
приведена |
на |
|
|
4 |
|
рис.4.15. |
|
|
|
|
||
|
j= 1,15 |
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
yij = a sinxj |
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
yij |
|
|
|
|
|
|
|
|
|
Конец |
|
|
|
|
|
|
|
|
|
Рис.4.15 |
|
|
|
|
|
|
|
|
Пример 5. |
Составить блок-схему алгоритма вычисления функции z по фор- |
||||||||
муле |
|
|
|
|
|
|
|
|
|
zij = |
cos xi sin y j , |
где |
i =1,2,...,n; |
j =1,2,...,m. |
|
|
|
||
Так как на значения хi не накладываются никакие ограничения, то |
|||||||||
cosxi может быть и отрицательным числом, |
что исключает автоматическое |
||||||||
повторение вычислений в цикле по i из-за того, что не будет существовать |
|||||||||