Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Оператор цикла 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; - нормальная случайная величина с нулевым математическим ожиданием и дисперсией.

Оператор цикла for.

.

где — дисперсия моделируемого случайного процесса. При этом первый отсчет моделируется как нормальная случайная величина с нулевым математическим ожиданием и дисперсией. Программа моделирования имеет следующий вид:

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. Результат моделирования случайной последовательности.

Оператор цикла for.

Работа программы начинается с определения переменных, (в программе переменная ex) и для реализации указанной модели. Затем вычисляется дисперсия и моделируется первый отсчет случайного процесса с помощью функции randn. Функция randn выполняет генерацию нормальных случайных величин с нулевым средним и единичной дисперсией. Чтобы сгенерировать случайную величину с дисперсией достаточно случайную величину с единичной дисперсией умножить на, т.к. дисперсия — это средний квадрат случайной величины относительно математического ожидания. В результате имеем программную строчку.

x (1) = sqrt (ex)*randn;

Затем, реализуется цикл for со счетчиком i от 2 до N с шагом 1. Внутри цикла выполняется моделирование оставшихся N-1 отсчетов случайного процесса в соответствии с приведенной выше формулой. В последней строчке программы записана функция plot (), которая выводит смоделированную последовательность на экран в виде графика. Более подробно работа с выводом графиков на экран будет рассмотрена в следующей главе.

Показать весь текст
Заполнить форму текущей работой