Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Программирование в среде MATLAB



Управление потоками

MATLAB имеет пять видов структур управления потоками:

• оператор if

• оператор switch

• циклы for

• циклы while

• оператор break

 

В том случае, когда некоторая группа операций должна повторно выполняться несколько раз, используют операторы цикла.

 

а) оператор цикла с неизвестным числом повторений (while)

 

while выражение

< оператор>

...

< оператор>

end

 

Операторы, указанные в теле цикла, выполняются, пока выражение истинно.

 

Пример:

fact=1;

k=1;

while fact< 1e5

fact=fact*k;

k=k+1;

end

 

б) оператор цикла с известным числом повторений (for)

for переменная цикла = начальное значение: < приращение> : конечное значение

< оператор>

...

< оператор>

end

 

Операторы, указанные в теле цикла, выполняются заданное число раз. При этом переменная цикла последовательно принимает все значения от начального до конечного с приращением после каждого прохода цикла.

 

for i=1: 1: 100

s=s+5

end

Замечание: Хорошим стилем являются отступы при использовании циклов для лучшей чи­таемости, особенно, когда они вложенные.

for i = 1: m

for j = 1: n

H(i, j) = 1/(i+j);

end;

end

 

в) оператор условного ветвления

 

if < логическое выражение> < операторы> end     if < логическое выражение> < операторы> elseif < логическое выражение> < операторы> else < операторы> end  
if < логическое выражение> < операторы> else < операторы> end  

 

Оператор else не содержит логического условия. Инструкции, связанные с ним, выполняются, если предшествующий оператор if ложен.

 

Оператор elseif содержит логическое условие, которое вычисляется, если предшествующий оператор if ложен. Оператор elseif может многократно использоваться внутри оператора условия if.

 

 

Пример:

 

if n< 0

a=2*n;

elseif rem(n, 2)==0;

a=n/2;

else

a=(n+1)/2; Если n> 0 b нечетное, увеличить на 1 и разделить.

end

 

 

г) оператор переключения

switch…case…otherwise…end

 

Оператор switch работает, сравнивая значение вычисленного выражения со значениями групп case. Если значение выражения в операторе switch совпадает со значением, указанным в case, то выполняются соответствующая группа операций до следующего оператора case или otherwise, или end. Оператор otherwise выполняется, если < выражение> не совпало ни с одним из значений.

 

Пример:

switch input_num % выч. выражение

case –1 % значение

disp ('минус один') % выводит строку text в рабочее окно MATLAB

case 0

disp ('нуль')

case 1

disp ('плюс один')

otherwise

disp ('другое значение')

end

 

д) оператор досрочного выхода из цикла

 

break

 

Оператор break позволяет досрочно выходить из циклов for или while. Во вло­женных циклах break осуществляет выход только из самого внутреннего цикла.

for i=1: 1: 100

s=s+5

if s> 300 then

break;

end;

end

1.6.2 Работа c М-файлами

Если требуется выполнять большую последовательность команд или повторять группу команд для различных значений входных переменных, работа в режиме командной строки становится неудобной. Для облегчения работы MATLAB предоставляет возможность организации вычислений в виде так называемых М-файлов. М-файлы являются обычными текстовыми файлами, которые содержат последовательности команд, операторов, функций и т.д., необходимых для вычислений. В состав системы MATLAB входит редактор/отладчик M-файлов. Наиболее удобно использовать инструментальную панель командного окна этого редактора/отладчика.

Для создания м-файла в меню File основного окна MatLab и в пункте New выберите подпункт M-file. Новый файл открывается в редакторе М-файлов. Наберите в редакторе команды, приводящие к построению двух графиков в одном графическом окне.

 

x = [0: 0.1: 7];

f = exp(-x);

subplot(1, 2, 1)

plot(x, f)

g = sin(x);

subplot(1, 2, 2)

plot(x, g)

 

Сохраните теперь файл с именем mydemo.m в подкаталоге work основного каталога MatLab, выбрав пункт Save as меню File редактора. Для запуска на выполнение всех команд, содержащихся в файле, следует выбрать пункт Run в меню Debug. На экране появится соответствующее графическое окно. Созданный М-файл можно как угодно редактировать и повторять все команды заново. При этом графическое окно будет отражать все изменения, которые вы сделали в файле. Для выполнения только части команд из файла, следует их сначала выделить, а затем выполнить из пункта Evaluate selection меню Text.

В редакторе М-файлов может быть открыто одновременно несколько файлов; переход от одного к другому осуществляется при помощи закладок с их именами внизу окна редактора. Открытие существующего М-файла производится из пункта Open меню File рабочей среды, либо редактора М-файлов.

 

1.6.3 Типы М-файлов. Файл-программы и файл-функции

М-файлы бывают двух типов: файл-программы (Script M-files), содержащие последовательность команд, и файл-функции (Function M-files), в которых описываются функции, определяемые пользователем для своих целей. Файл mydemo, который Вы уже создали, это файл-программа. Все переменные, объявленные в ней, становятся доступными в рабочей среде после ее выполнения. Фактически, созданный М-файл является новой командой, которую понимает МatLab. Теперь в командной строке достаточно набрать команду mydemo и появится графическое окно, соответствующее командам программы mydemo.m.

Как правило, М-файлы хранятся в каталоге пользователя. Чтобы МatLab мог найти их, следует установить пути, указывающее расположение М-файла.

Файл-программы являются последовательностью команд и не имеют входных и выходных аргументов. Для использования численных методов и при программировании собственных приложений необходимо уметь составлять файл-функции, которые выполняют действия с входными аргументами и возвращают результат в выходных аргументах.

Предположим, что в вычислениях часто необходимо использовать функцию

 

 

Имеет смысл один раз написать файл-функцию, чтобы потом вызывать ее всюду, где необходимо.

 

Откройте в редакторе М-файлов новый файл и наберите текст

 

function f = myfun(x)

f = exp(-x)*sqrt((x^2+1)/(x^4+0.1));

 

Слово function в первой строке означает, что данный файл содержит файл-функцию. Первая строка является заголовком файл-функции, где размещается имя функции myfun, один входной аргумент x и один выходной – f. После заголовка следует тело функции (здесь это одна строка), где и вычисляется ее значение. Теперь сохраните файл в рабочем каталоге (укажите полностью Ваш путь). При сохранении появляется диалоговое окно с уже готовым именем myfun. Не изменяйте его.

Теперь созданную функцию можно использовать так же, как и встроенные функции, из командной строки:

> > y=myfun(1.3)

y =

0.2600

 

Задания к лабораторной работе № 1

Задание 1

Таблица 1.2

1.Создать матрицу A
Вариант1 Вариант2 Вариант3 Вариант4 Вариант5 Вариант6 Вариант7 Вариант8
-1 2 3 5 7 8 9 1 4 5 6 4 11 1 5 9 8 4 6 9 2 7 4 10 3 8 2 6 -5 3 7 3 8 9 13 2 -6 6 4 5 8 4 6 4 13 1 8 9 8 6 7 5 7 3 7 15 4 8 9 2 8 9 8 5 1 -2 3 5 -7 8 9 1 11 3 2 4 1 1 4 -9 1 5 3 2 6 7 3 6 3 4 6 7 1 5 8 2 -1 2 3 5 3 8 9 1 5 3 6 4 7 7 5 1 1 5 6 4 2 8 9 1 4 8 6 4 4 5 5 -1
Вариант9 Вариант10 Вариант11 Вариант12 Вариант13 Вариант14 Вариант15 Вариант16
-1 4 8 5 7 7 9 2 4 8 6 1 1 1 4 0 -4 4 6 9 2 5 4 10 3 8 -6 6 8 3 7 2 5 4 3 2 -4 6 -4 5 8 5 6 2 3 1 8 91 8 6 7 51 0 7 -3 15 6 8 11 2 8 9 14 5 1 2 -3 15 5 8 -9 1 1 5 2 6 1 11 -5 -7 1 4 13 2 6 7 -4 6 3 -2 6 9 1 15 4 2 -5 2 -5 5 3 2 3 1 1 3 3 4 0 -2 0 1 1 0 6 4 2 5 9 -11 5 9 0 4 6 5 5 -1
Вариант17 Вариант18 Вариант19 Вариант20 Вариант21 Вариант22 Вариант23 Вариант24
0 9 13 2 -6 0 4 3 1 4 2 4 1 1 0 1 1 -3 3 5 -7 8 -6 1 11 0 0 4 0 1 4 -9 -3 21 5 -2 -3 1 3 1 -1 3 2 4 1 0 1 0 -4 5 1 9 2 5 0 10 1 8 -4 6 1 3 1 3 -1 3 6 9 2 5 3 10 5 12 2 6 1 1 1 1 7 5 2 4 2 7 9 17 -4 1 -5 7 1 4 2 1    
2. Вычислить сумму элементов матрицы А по строкам, по столбцам, а также сумму всех элементов матрицы A.
3. Транспонировать матрицу A.
4.Умножить матрицу А на 2.
5. Найти квадратный корень из элементов матрицы А.
6.Возвести в квадрат все элементы матрицы A.
7.Создать массив X, содержащий 2 строки:
Вариант 1 1 строка - числа от 1 до 100, в порядке возрастания 2 строка - числа от 1 до 100, в порядке убывания
1 строка - нечетные числа от 1 до 100, в порядке возрастания 2 строка – четные числа от 1 до 100, в порядке возрастания
1 строка - нечетные числа от 1 до 100, в порядке возрастания 2 строка - нечетные числа от 1 до 100, в порядке убывания
1 строка - числа от 1 до 100, кратные 3-м, в порядке возрастания 2 строка - числа от 1 до 100, кратные 3-м, в порядке убывания
1 строка - числа от 1 до 100, кратные 4-м, в порядке возрастания 2 строка - числа от 1 до 100, кратные 4-м, в порядке убывания
1 строка - числа от 1 до 100, кратные 5-и, в порядке возрастания 2 строка - числа от 1 до 100, кратные 5-и, в порядке убывания
1 строка - числа от 1 до 100, кратные 6-и, в порядке возрастания 2 строка - числа от 1 до 100, кратные 6-и, в порядке убывания
1 строка - числа от 1 до 100, кратные 7-и, в порядке возрастания 2 строка - числа от 1 до 100, кратные 7-и, в порядке убывания
1 строка - нечетные числа от 1 до 100, в порядке убывания 2 строка – четные числа от 1 до 100, в порядке возрастания
1 строка - четные числа от 1 до 100, в порядке убывания 2 строка – нечетные числа от 1 до 100, в порядке убывания
1 строка - числа от 1 до 100, кратные 3-м, в порядке убывания 2 строка - числа от 1 до 100, кратные 3-м, в порядке возрастания
1 строка - числа от 1 до 100, в порядке убывания 2 строка - числа от 1 до 100, в порядке возрастания
1 строка - числа от 1 до 100, кратные 6-и, в порядке убывания 2 строка - числа от 1 до 100, кратные 6-и, в порядке возрастания
1 строка - числа от 1 до 100, кратные 7-и, в порядке убывания 2 строка - числа от 1 до 100, кратные 7-и, в порядке убывания
1 строка - числа от 1 до 100, кратные 7-и, в порядке убывания 2 строка - числа от 1 до 100, кратные 7-и, в порядке возрастания
1 строка - числа от 1 до 100, кратные 7-и, в порядке возрастания 2 строка - числа от 1 до 100, кратные 7-и, в порядке возрастания
1 строка - числа от 1 до 100, кратные 4-м, в порядке возрастания 2 строка - числа от 1 до 100, кратные 4-м, в порядке возрастания
1 строка - числа от 1 до 100, кратные 4-м, в порядке убывания 2 строка - числа от 1 до 100, кратные 4-м, в порядке убывания
1 строка - числа от 1 до 100, кратные 4-м, в порядке убывания 2 строка - числа от 1 до 100, кратные 4-м, в порядке возрастания
1 строка - четные числа от 1 до 100, в порядке убывания 2 строка – четные числа от 1 до 100, в порядке убывания
1 строка - числа от 1 до 100, кратные 3-м, в порядке возрастания 2 строка - числа от 1 до 100, кратные 3-м, в порядке возрастания
1 строка - числа от 1 до 100, в порядке убывания 2 строка - числа от 1 до 100, в порядке убывания
8. Создать m-файл, описывающий все произведенные действия.
                 

Задание 2. Вычислить значения функций 1 и 2 (табл. 1.3) для аргумента в заданном интервале [a b] c шагом h. Вывести графики функций одновременно на одном графике в декартовых координатах. Для разных графиков использовать разный тип линий.

Таблица 1.3

 
Функция 1 Функция 2 a B H
y = sin(x) z= exp(x+3)/5000 - 1 -2 2  /20
y = cos(x) z = 0.00025e3-x - 0.6 -2 2  /20
y = |tg(x)| + 0.1 z = (1+x)6 -2 2  /20
y = (x2-1)/15 z = 1+sin(x) -2 2  /20
y = (x3-2)/15 z = 5cos(x) -2 2  /20
y = x2 - 10 z = 0.025exp(-1.2x) -5
y = 3sin(x) z=0.015x3 -5
y = |sin(x)|exp(x/2) z = 5x - x1.5+sin(x) 0.5
y = 0.5x3 z = -2cos(x)      
y = 2-sin(x) z = cos(x) -2 2  /20
y = exp(2x+1) z = sin(x) -2 2  /20
y = (x3-2)/15 z = x2 - 1 -2 2  /20
y = 6cos(x) z = 0.5x2 -2 2  /20
y = 5x2 z = (x3-3)/11 -2 2  /20
y = exp(-1.7x) z = exp(-1.6x) -5
y = 5cos(x) z = 7sin(x) -5
y = 1+cos(x) z = (x3-6)/13 -5
y = (x3-3)/10 z = 7x3 -2 2  /20
y = 1+sin(x) z = exp(-1.4x) -2 2  /20
y = 8cos(x) z = (x2-8)/33 -2 2  /20
y = 6x2+5x2 z = (x3-2)/4 -5
y = 6cos(x)+sin(x) y = x2 -2 2  /20

 

Задание 3. Вычислить значения функции двух аргументов (табл. 1.4) в заданном диапазоне. Вывести функцию в виде 5 трехмерных графиков разного типа. Вывести функцию в виде 2 контурных графиков разного типа.

 

Таблица 1.4

Функция Пределы изменения
x y
z=sin(x)cos(y) от -2 до 2 от -2 до 2
z=sin(x/2)cos(y) от -2 до 2 от -2 до 2
z=sin(2x)cos(y) от -2 до 2 от -2 до 2
z = sin(x)cos(y/2) от -2 до 2 от -2 до 2
z = sin(x/2)cos(2y) от -2 до 2 от -2 до 2
z = sin(2x)cos(2y) от -2 до 2 от -2 до 2
z = (1+sin(x)/x)(sin(y)/y) от -2 до 2 от -2 до 2
z = (sin(x)/x)cos(y) от -2 до 2 от -2 до 2
z = sin(3x)cos(y/2) от -2 до 2 от -2 до 2
z = (sin(3x)+3)cos(2y) от -2 до 2 от -2 до 2
z = sin(x/3)cos(4y) от -2 до 2 от -2 до 2
z = (4+sin(2x)/x)(sin(4y)/y) от -2 до 2 от -2 до 2
z=sin(2x)cos(3y) от -2 до 2 от -2 до 2
z = (-1+sin(x)/x)(sin(y)/3) от -2 до 2 от -2 до 2
z = sin(x)cos(4y) от -2 до 2 от -2 до 2
z = (3+sin(x)/3)(sin(2y)/y) от -2 до 2 от -2 до 2
z = (1+sin(3x)/2)(1+sin(2y)/y) от -2 до 2 от -2 до 2
z=sin(5x)cos(1.5y) от -2 до 2 от -2 до 2
z = sin(5x)cos(2y) от -2 до 2 от -2 до 2
z = sin(3x)cos(3y) от -2 до 2 от -2 до 2
z = sin(x)cos(7y) от -2 до 2 от -2 до 2
z = sin(9x)cos(4y) от -2 до 2 от -2 до 2

ЛАБОРАТОРНАЯ РАБОТА №2


Поделиться:



Последнее изменение этой страницы: 2019-05-17; Просмотров: 390; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.029 с.)
Главная | Случайная страница | Обратная связь