Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratorna_robota_2_osin.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
177.15 Кб
Скачать

Лабораторна робота 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. В командное окно выведутся первые три строки с комментариями, отделенные от текста файл-функции пустой строкой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]