Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практ_2

.doc
Скачиваний:
22
Добавлен:
05.06.2015
Размер:
98.3 Кб
Скачать

Практикум 2. М-файлы (скрипты). Цикл for

Практикум 2. М-файлы (скрипты). Цикл for

1. Скрипты

Система MATLAB обычно работает в режиме интерпретации команд и операторов: во время работы они выводятся в командной строке, а система выполняет их немедленную обработку и выдает вычисленный результат. Однако в этом режиме нельзя без повторного набора всех операторов повторить предыдущие действия при новых значениях исходных данных; нельзя вернуться и повторить отдельные фрагменты действий или по некоторому условию перейти к другой последовательности операторов. Чтобы избежать этих проблем, часто применяемые последовательности операторов оформляют в виде программ, которые в языке MATLAB называют М-файлами.

Различают два типа М-файлов: скрипты (script) и функции (function).

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

Создание нового скрипта начинается с последовательности команд File New Script в строке главного меню. В результате открывается окно редактора, в котором и набивается последовательность команд, аналогично тому, как мы делали это в командном окне. Строки, набираемые в окне редактора, автоматически нумеруются. Это позволяет идентифицировать сообщения об ошибках набора, выдаваемых в командное окно. После того, как программа набрана, нужно ее запомнить. Для запоминания программы, набранной в окне редактора, нужно воспользоваться последовательностью команд File Save as, после чего набрать придуманное Вами имя файла. При этом к имени будет автоматически добавлено расширение '.m’. Для того, чтобы программа была выполнена, нужно в командном окне набрать имя файла без расширения. Имена скриптов нельзя использовать в качестве операндов арифметических выражений и в качестве аргументов функций.

Обратите внимание, что название файла скрипта должно подчинятся тем же правилам, что и названия переменных. Название может содержать только латинские буквы (прописные или строчные) и цифры. Не допускается использовать в названии пробелы или специальные символы (кроме знака подчеркивания). При этом название файла всегда должно начинаться с буквы.

При вызове скрипта MATLAB различает регистр символов в названии файла. Например, для файла с названием “Example_1.m” MATLAB будет выдавать сообщение об ошибке при вызове >> example_1 .

Также обратите внимание, что скрипт должен быть расположен в текущей папке. В противном случае, необходимо сменить текущий каталог на место расположения скрипта, либо указать путь (полный или относительный) к файлу скрипта в строке вызова.

Пример 1. Построить окружность радиуса R

Программу оформим в виде скрипта.

% Построение окружности радиуса R=radius

% Введите, например, radius=5; затем вызовите скрипт Example_1

% команды разделены паузами, нажимайте любую клавишу для продолжения работы

%зададим графическую область

axis([-6 6 -6 6]) % задание коорд осей

% делаем паузу между каждой командой, чтобы отслеживать изменения

% переводим курсор в командное окно,

% нажимаем пробел для продолжения работы программы

pause

axis equal % одинаковый масштаб по осям

pause

grid on % сетка

hold on % включили режим сохранения графиков

pause

line ([-6 6],[0 0],'Color','black'),% рисуем ось ОХ

pause

line ([0 0],[-6 6],'Color','black') % рисуем ось ОY

pause

xlabel('X'), % помечаем ось ОХ

pause

ylabel('Y') % помечаем ось ОY

pause

title('окружность x^2+y^2=R^2') % пишем название

% Уравнение окружности радиуса R: x^2+y^2=R^2

R=radius; % radius будем вводить в командном окне

x=-R:R/10000:R; % область определения для x, разбиваем ее на 10001 точек

y1=sqrt(R.^2-x.^2); % эта функция выражает часть окр над осью ОХ

y2=-sqrt(R.^2-x.^2); % эта функция выражает часть окр под осью ОУ

plot(x,y1,'.r') % часть окр над осью ОХ

plot(x,y2,'.g') % часть окр под осью ОУ

Запоминаем скрипт под именем Example_1. Набираем в командном окне

>> help Example_1

Затем вводим

>> radius=3;

>> Example_1

Нажимая Enter, смотрим, что меняется в графическом окне, после ввода каждой команды,

нажимаем Enter пока не выскочит >>

Получаем рисунок:

В данном примере были сделаны паузы (pause) между каждой командой, отвечающей за изменения в графическом окне. Это полезная команда для наблюдения за процессом.

2. Цикл for

Цикл for предназначен для выполнения заданного числа повторяющихся действий. Самое простое использование цикла for выполняется следующим образом:

for count = start:step:final

команды MatLab

end

Здесь count - переменная цикла, start – её начальное значение, final – конечное значение, step – шаг, на который увеличивается count при каждом следующем заходе в цикл. Цикл заканчивается, как только значение count становится больше final. Значения start и step (а значит, и count) не обязательно целые.

Вспомнив, что выражение start:step:final само по себе возвращает вектор, можно заключить, что в цикле

for count = vector

end

где vector – какой-либо вектор, переменная count принимает поочерёдно все значения элементов vector.

В Примере 1 введем цикл for ___end (добавим pause после командам plot, уменьшив число точек в массиве для x, чтобы процесс не затянулся ):

for x=-R:R/100:R; % область определения для x, разбиваем ее на 10001 точек

y1=sqrt(R.^2-x.^2); % эта функция выражает часть окр над осью ОХ

y2=-sqrt(R.^2-x.^2); % эта функция выражает часть окр под осью ОУ

plot(x,y1,'.r') % часть окр над осью ОХ

pause

plot(x,y2,'.g') % часть окр под осью ОУ

pause

end

мы увидим, как окружность строится по точкам (для ускорения процесса зажмите enter)

Иногда в процессе отладки scriptа, хочется запустить для проверки отдельный фрагмент программы. Это можно сделать следующим образом: выделить фрагмент, затем дать команду Run (Запуск) в меню Debug (Отладка) или нажать клавишу <F5>. Результат выполнения фрагмента программы появится в командном окне.

Упражнение 1. Написать программу, строящую левую и правую ветви окружности радиуса R с произвольным центром :. Программу оформить в виде скрипта. Радиус R и координаты центра окружности a и b - входные параметры. Используя написанную программу, построить окружности

1) ; 2) ; 3) ; 4) .

Рисунки сделать либо в одной системе координат, либо в одном графическом окне, разделенном на 4 подобласти.

Упражнение 2. Написать программу, строящую левую и правую ветви параболы со смещенной вершиной:. Программу оформить в виде скрипта. Координаты смещенной вершины параболы a и b - входные параметры. Используя написанную программу, построить параболы:

1) ; 2) ;3) ;4) ;5) .

Рисунки сделать либо в одной системе координат, либо в одном графическом окне, разделенном на 4 подобласти.

Упражнение 3. Написать программу, строящую левую и правую ветви параболы со смещенной вершиной:. Программу оформить в виде скрипта. Координаты смещенной вершины параболы a и b - входные параметры. Используя написанную программу, построить параболы:

1) ; 2) ;3) ;4) ;5) .

Рисунки сделать либо в одной системе координат, либо в одном графическом окне, разделенном на 4 подобласти. Обратите внимание, в данном упражнении ветви параболы обращены вниз.

5

Соседние файлы в предмете MathCad/MatLab/Maple