
- •Лабораторна робота 2 Тема: оператори циклу
- •Основні теоретичні відомості
- •If Логическое условие Оператор 1 elseif Логическое условие Оператор 2 else Оператор 3 end ;
- •If Логическое условие Оператор 1 end ;
- •If Логическое условие Оператор 1 else Оператор 2 end ;
- •6.1. Оператор цикла for
- •Работа в редакторе м-файлов
- •Разбиение м-файла на ячейки
- •Настройки редактора м-файлов
- •Типы м-файлов
Лабораторна робота 2 Тема: оператори циклу
Мета роботи: Ознайомитися операторами циклу в MATLAB.
Основні теоретичні відомості
Оператор двоеточие :
Весьма часто необходимо выполнить формирование упорядоченных числовых последовательностей. Такие последовательности нужны для создания векторов или значений аргументов х при построении графиков. В MATLAB для этого используется оператор двоеточие :,
который представляется следующим образом:
х = Начальное _ значение : Шаг : Конечное _ значение ;
Эта конструкция создает возрастающую последовательность чисел, которая начинается с начального значения, изменяется на заданный шаг и завершается конечным значением. Если шаг не задан, то он принимает значение 1. Если конечное значение указано меньшим, чем начальное значение, − то выдается сообщение об ошибке. Примеры:
и
т.д.
Оператор разветвления if
Условный оператор if в MATLAB записывается в общем виде так:
If Логическое условие Оператор 1 elseif Логическое условие Оператор 2 else Оператор 3 end ;
Эта конструкция имеет несколько частных вариантов:
If Логическое условие Оператор 1 end ;
If Логическое условие Оператор 1 else Оператор 2 end ;
Логическое условие записывается в виде:
Выражение 1 Оператор отношения Выражение 2
В качестве операторов отношения используются операторы: = =, <, >, < =, > =, ∼ =. Если логическое условие принимает значение 1(true – истина), то выполняются соответствующие операторы. Если логическое условие принимает значение 0(false – ложь), то операторы, следующие за логическим условием, не выполняются. Оператор end указывает наконец условного оператора if. В понятие Оператор ____________1 входят один или несколько операторов. В последнем случае они разделяются символами , (запятой) или ; (точкой с запятой).
Как и в других алгоритмических языках, оператор if позволяет осуществить разветвление процесса вычислений в зависимости от какого-либо условия.
Файл-функции и файл программы, используемые в предыдущих подразделах, являются самыми простыми примерами программ, Все команды MatLab, содержащиеся в них, выполняются последовательно. Для решения многих более серьезных задач требуется писать программы, в которых действия выполняются циклически или в зависимости от некоторых условий выполняются различные части программ. Рассмотрим основные операторы, задающие последовательности выполнения команд MatLab. Операторы можно использовать как в файл-процедурах, так и в функциях, что позволяет создавать программы со сложной разветвленной структурой.
6.1. Оператор цикла for
Оператор предназначен для выполнения заданного числа повторяющихся действий. Самое простое использование оператора for осуществляется следующим образом:
for count = start:step:final
команды MatLab
end
Здесь
count - переменная цикла, start - ее начальное
значение, final - конечное значение, а
step - шаг, на который увеличивается
count при каждом следующем заходе в цикл.
Цикл заканчивается, как только значение
count становится больше final. Переменная
цикла может принимать не только целые,
но и вещественные значения любого знака.
Разберем применение оператора цикла
for на некоторых характерных примерах.
Пусть требуется вывести семейство
кривых для
,
которое задано функцией, зависящей от
параметра
для
значений параметра от -0.1 до 0.1.
Наберите текст файл-процедуры в редакторе М-файлов и сохраните в файле FORdem1.m, и запустите его на выполнение (из редактора М-файлов или из командной строки, набрав в ней команду FORdem1 и нажав <Enter>):
% файл-программа для построения семейства кривых
x = [0:pi/30:2*pi];
for a = -0.1:0.02:0.1
y = exp(-a*x).*sin(x);
hold on
plot(x, y)
end
Замечание 4
Редактор М-файлов автоматически предлагает расположить операторы внутри цикла с отступом от левого края. Используйте эту возможность для удобства работы с текстом программы.
В результате выполнения FORdem1 появится графическое окно, которое содержит требуемое семейство кривых.
Напишите файл-программу для вычисления суммы
.
Алгоритм вычисления суммы использует накопление результата, т.е. сначала сумма равна нулю (S = 0), затем в переменную k заносится единица, вычисляется 1/k!, добавляется к S и результат снова заносится в S. Далее k увеличивается на единицу, и процесс продолжается, пока последним слагаемым не станет 1/10!. Файл-программа Fordem2, приведенная в следующем листинге, вычисляет искомую сумму.
Листинг файл-программы Fordem2 для вычисления суммы
% файл-программа для вычисления суммы
% 1/1!+1/2!+ … +1/10!
% Обнуление S для накопления суммы
S = 0;
% накопление суммы в цикле
for k = 1:10
S = S + 1/factorial(k);
End % вывод результата в командное окно S
Наберите файл-программу в редакторе М-файлов, сохраните её в текущем каталоге в файле Fordem2.m и выполните. Результат отобразится в командном окне, т.к. в последней строке файл-программы S содержится без точки с запятой для вывода значения переменной S
S =
1.7183
Обратите внимание, что остальные строки файл-программы, которые могли бы повлечь вывод на экран промежуточных значений, завершаются точкой с запятой для подавления вывода в командное окно.
Первые две строки с комментариями не случайно отделены пустой строкой от остального текста программы. Именно они выводятся на экран, когда пользователь при помощи команды help из командной строки получает информацию о том, что делает Fordem2
>> help Fordem2
файл-программа для вычисления суммы
1/1!+1/2!+ … +1/10!
При написании файл-программ и файл-функций не пренебрегайте комментариями! Все переменные, использующиеся в файл-программе, становятся доступными в рабочей среде. Они являются, так называемыми, глобальными переменными. С другой стороны, в файл-программе могут использоваться все переменные, введенные в рабочей среде.
Листинг файл-функции для вычисления суммы
function S = sumN(x, N)
% файл-функция для вычисления суммы
% x/1!+x^2/2!+ … +x^N/N!
% использование: S = sumN(x, N)
% обнуление S для накопления суммы
S = 0;
% накопление суммы в цикле
for m = 1:1:N
S = S + x.^m/factorial(m);
end
Об использовании функции sumN пользователь может узнать, набрав в командной строке help sumN. В командное окно выведутся первые три строки с комментариями, отделенные от текста файл-функции пустой строкой.