>>
<<
Ркв
Ввд
JfC
LJ
Фрз
Слв
Изм
Рзг
!:
Помощь
Словарь
23. Итерация
Повторение процесса (или последовательность подобных процессов) называется
итерацией. Бо́льшая часть итераций делается неявно, как
в */b , a*/b, и a*b ; явную
итерацию можно осуществить при помощи союза
в степени (^:), союза
сообразно (@.) с вызовом себя ($:)
и управляющих конструкций:
(cos=: 2&o.) ^: (i.6) b=: 1
1 0.540302 0.857553 0.65429 0.79348 0.701369
]y=: cos^:_ b
0.739085
y=cos y
1
Пример cos^:_ иллюстрирует тот факт, что
бесконечная итерация может иметь смысл (тоесть она оканчивается)
если повторяемый процесс сходится.
Управляемая итерация процесса p
осуществляется при помощи p^:q , где
результат q определяет
количество повторений p , которые будут сделаны.
Полезны так же выражения вида $:@p^:q
и p^:q^:_.
Если функция f непрерывна, а f i
и f j отличаются знаком, то это значит, что между
i и j находится корень r , такой, что
f r равно нулю.
Тогда говорят, что список b=:i,j локализует корень.
Более точную локализацию можно осуществить, взяв среднее b вместе
с точкой из b , применение f к которой отличается знаком
от значения функции в средней точке. Тоесть:
f=: %: - 4: NB. Тестовая функция для примера
root=: 3 : 0
m=. +/ % #
while. ~:/y
do.
if. ~:/ * f ({.,m) y
do. y=. ({.,m) y
else. y=. ({:,m) y
end.
end. m y
)
b=: 1 32
root b
16
f b,root b
_3 1.65685 1.77636e_15
Упражнения
23.1 |
Используйте функцию root для нахождения корней различных
функций, как например f=: 6&-@!
|
23.2 |
Поэкспериментируйте с функцией fn=: +/\
(производящей, при повторном применении к i.n ,
фигурные числа), обьясните поведение функции fn^:(?@3:)
|
>>
<<
Ркв
Ввд
JfC
LJ
Фрз
Слв
Изм
Рзг
!:
Помощь
Словарь