Оператор цикла for
Затем, реализуется цикл for со счетчиком i от 2 до N с шагом 1. Внутри цикла выполняется моделирование оставшихся N-1 отсчетов случайного процесса в соответствии с приведенной выше формулой. В последней строчке программы записана функция plot (), которая выводит смоделированную последовательность на экран в виде графика. Более подробно работа с выводом графиков на экран будет рассмотрена… Читать ещё >
Оператор цикла for (реферат, курсовая, диплом, контрольная)
Часто при организации цикла требуется перебирать значение счетчика в заданном диапазоне значений и с заданным шагом изменения. Например, чтобы перебрать элементы вектора (массива), нужно организовать счетчик от 1 до N с шагом 1, где N — число элементов вектора. Чтобы вычислить сумму ряда, также задается счетчик от a до b с требуемым шагом изменения step. И так далее. В связи с тем, что подобные задачи часто встречаются в практике программирования, для их реализации был предложен свой оператор цикла for, который позволяет проще и нагляднее реализовывать цикл со счетчиком.
Синтаксис оператора цикла for имеет следующий вид:
for = :
end.
Рассмотрим работу данного цикла на примере реализации алгоритма поиска максимального значения элемента в векторе:
function search_max.
a = [3 6 5 3 6 9 5 3 1 0];
m = a (1); % текущее максимальное значение.
for i=1:length (a) % цикл от 1 до конца вектора с.
% шагом 1 (по умолчанию).
if m m,.
m = a (i); % то m = a (i).
end.
end % конец цикла for.
disp (m);
В данном примере цикл for задает счетчик i и меняет его значение от 1 до 10 с шагом 1. Обратите внимание, что если величина шага не указывается явно, то он берется по умолчанию равным 1.
В следующем примере рассмотрим реализацию алгоритма смещения элементов вектора вправо, т. е. предпоследний элемент ставится на место последнего, следующий — на место предпоследнего, и т. д. до первого элемента:
function queue.
a = [3 6 5 3 6 9 5 3 1 0];
disp (a);
for i=length (a):-1:2% цикл от 10 до 2 с шагом -1.
a (i)=a (i-1); % смещаем элементы вектора а.
end % конец цикла for.
disp (a);
Результат работы программы.
- 3 6 5 3 6 9 5 3 1 0
- 3 3 6 5 3 6 9 5 3 1
Приведенный пример показывает, что для реализации цикла со счетчиком от большего значения к меньшему, нужно явно указывать шаг, в данном случае, -1. Если этого не сделать, то цикл сразу завершит свою работу и программа будет работать некорректно.
В заключении рассмотрим работу оператора цикла for на примере моделирования случайной последовательности с законом изменения.
.
где — коэффициент от -1 до 1; - нормальная случайная величина с нулевым математическим ожиданием и дисперсией.
.
где — дисперсия моделируемого случайного процесса. При этом первый отсчет моделируется как нормальная случайная величина с нулевым математическим ожиданием и дисперсией. Программа моделирования имеет следующий вид:
function modeling_x.
r = 0.95; % коэффициент модели.
N = 100; % число моделируемых точек.
ex = 100; % дисперсия процесса.
et = ex*(1-r2); % дисперсия случайной добавки.
x = zeros (N, 1); % инициализация вектора х.
x (1) = sqrt (ex)*randn; % моделирование 1-го отсчета.
for i=2:N % цикл от 2 до N.
x (i)=r*x (i-1)+sqrt (et)*randn; % моделирование СП.
end % конец цикла.
plot (x); % отображение СП в виде графика.
При выполнении данной программы будет показана реализация смоделированной случайной последовательности .
Рис. 2.1. Результат моделирования случайной последовательности.
Работа программы начинается с определения переменных, (в программе переменная ex) и для реализации указанной модели. Затем вычисляется дисперсия и моделируется первый отсчет случайного процесса с помощью функции randn. Функция randn выполняет генерацию нормальных случайных величин с нулевым средним и единичной дисперсией. Чтобы сгенерировать случайную величину с дисперсией достаточно случайную величину с единичной дисперсией умножить на, т.к. дисперсия — это средний квадрат случайной величины относительно математического ожидания. В результате имеем программную строчку.
x (1) = sqrt (ex)*randn;
Затем, реализуется цикл for со счетчиком i от 2 до N с шагом 1. Внутри цикла выполняется моделирование оставшихся N-1 отсчетов случайного процесса в соответствии с приведенной выше формулой. В последней строчке программы записана функция plot (), которая выводит смоделированную последовательность на экран в виде графика. Более подробно работа с выводом графиков на экран будет рассмотрена в следующей главе.