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


Основные команды главного меню ML



УДК 004.432(076)

 

Рецензент канд. техн. наук, доц., проф. каф. И3 БГТУ В.Ю. Емельянов

 

Утверждено
редакционно-издательским
советом университета

ISBN 978-5-85546-729-1 ã Авторы, 2013

ã БГТУ, 2013

 


 

Назначение Matlab

 

Система Matlab (Matrix Laboratory – матричная лаборатория) разработана компанией MathWork. Это мощная вычислительная система, предназначенная для решения широкого круга математических, инженерных и экономических задач.

Работая в среде Matlab(ML), пользователь, даже не являющийся программистом, может легко и быстро решать вычислительные задачи в различных областях науки и техники (линейная алгебра, теория управления, обработка сигналов и т.п.). Простая командная среда позволяет вводить выражения в форме, близкой к естественной математической записи.

В наибольшей степени система ориентирована на выполнение инженерных расчетов. Математический аппарат оптимизирован для вычислений, проводимых с матрицами и комплексными числами. Matlab содержит множество встроенных функций, необходимых инженеру и научному работнику для выполнения сложных численных расчетов, а также моделирования поведения технических систем и физических процессов. Мощная графическая система Matlab позволяет визуализировать представление данных, что делает возможным графический анализ результатов. Все функциональные возможности объединены удобным пользовательским интерфейсом.

Большим плюсом системы является ее открытость и расширяемость. В ней могут быть написаны программы для многократного использования. Пользователь может не только использовать имеющиеся функции, но и создавать собственные специализированные функции. Пакет позволяет работать с программами, написанными на языках Фортрани Си. Большинство специализированных функций хранятся в виде текстовых файлов с расширением m (m-файлов). Файлы могут быть созданы в редакторе среды Matlabлибо во внешнем редакторе, совместимом по кодировке с встроенным редактором. Созданные пользователем m-файлы могут использоваться так же, как и встроенные в Matlab функции.

Помимо работы с программами (функциями), вычисления можно выполнять в режиме ’’калькулятора’’, т.е. получать результат сразу после ввода очередной команды. Для решения специальных задач с помощью ML разработаны пакеты с дополнительными функциями, которые называются Toolboxes.

Предусмотрена возможность интегрирования системы ML с Microsoft Word и Microsoft Excel.

 

Интерфейс Matlab 6.5

 

После запуска программы Matlab на экран выводится основное окно рабочей среды ML, которое называется «рабочий стол» (рис. 1).

 

 

Рис. 1

 

Это окно содержит:

· строку заголовка;

· строку главного меню, в которой находятся пункты меню File (Файл), Edit (Редактирование), View (Вид), Web, Window
(Окно), Help (Справка).

· панель инструментов с кнопками, позволяющими выполнить некоторые наиболее распространенные операции, которые можно выбрать и через меню. Рядом расположено окно Current Directory, позволяющее установить текущую папку;

· три внутренних окна:

Ø справа самое большое и важное окно – Command Window (командное окно), где отображаются вводимые пользователем данные, команды и результаты их выполнения, а также сообщения об ошибках;

Ø слева вверху окно с вкладками Workspace (рабочее пространство), позволяющее получить доступ к содержимому рабочей области, и Launch Pad, служащее для просмотра содержимого папки ML (например, чтобы просмотреть демонстрационные примеры или вызвать help);

Ø слева внизу окно с вкладками Command History (история команд), предназначенное для просмотра и повторного вызова ранее введенных команд, и окно Current Directory (текущая папка), служащее для установки текущего каталога;

· строку состояния, где отображаются сообщения системы.

В правом углу каждого окна две кнопки: Х – закрыть; – открепить от рабочего стола.Для возвращения в прежнее состояние необходимо выбрать пункты меню: View, Desktop Layout, Default.

Все используемые в текущем сеансе работы переменные хранятся в памяти компьютера в области, называемой Workspace (рабочее пространство). Полный перечень заданных переменных отображается в окне Workspace. Здесь содержится полный список переменных и их размеры, но не значения переменных. Двойной щелчок по имени переменной вызывает открытие окна Array
Editor
, которое можно использовать для редактирования отдельных элементов векторов и матриц.

Регулировать размеры окон можно с помощью мыши.

Элементы данных в ML

 

Все данные в ML интерпретируются как массивы. Массив – это упорядоченный набор однородных данных. Элементами массива могут быть целые, вещественные, комплексные числа и символы. Каждый массив имеет имя и характеризуется числом измерений и количеством элементов по каждому измерению. Доступ к элементу массива осуществляется указанием имени и индексов. Нумерация элементов начинается с единицы по каждому измерению.

Основной элемент данных в ML – матрица. Числа и векторы рассматриваются как вырожденные матрицы. Например, число – это матрица размером 1× 1. Векторы – это матрицы с одним столбцом или с одной строкой.

Числа в ML могут быть целыми, вещественными, комплексными. Целые числа вводятся в обычной форме. Вещественные числа могут записываться в естественной форме с фиксированной точкой (2.5) и в экспоненциальной (3.4е-3). При вводе между цифрами числа не допускаются пробелы.

 

Переменные в ML

 

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

 

> > n=5

n =

> > k=0.5

k =

0.5000

 

По типу переменные могут быть числовыми (целые, вещественные, комплексные) или символьными.

Правила составления идентификаторов такие же, как и в ЯВУ (начинается с буквы и может содержать любые комбинации цифр, букв, символа подчеркивания, идентифицируются первые 63 символа, нельзя использовать специальные символы и пробелы, имя переменной должно быть уникальным и не совпадать с именами функций). Следует помнить, что строчные и прописные буквы различаются (Abc и abc – разные имена).

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

· pi – число p(p=3.141592653589793);

· eps – погрешность операций над числами с плавающей точкой; очень маленькое значение, равное 2.2*10-16. Её используют, когда надо исключить деление на 0 (например, x/(y+eps));

· ans – результат последней команды, если в ней нет операции присваивания. Например, если набрали команду 41/75 и не определили, какой переменой присвоить результат, на экране отобразится ans = 0.5467;

· nan – для обозначения неопределённости результата;

· i, j – мнимая единица( ), используемая для задания мнимой части комплексного числа. Задать комплексные числа можно так: z = 3+4i.

Все эти переменные можно использовать в математических выражениях.

В ML все переменные занимают определенное место в памяти, называемой рабочим пространством системы – Workspace.

ML запоминает значения всех переменных, используемых в текущей сессии. Для того чтобы узнать, какие переменные были задействованы, используется команда who. Чтобы получить более подробную информацию о переменных: размеры, размерность, можно использовать команду whos. Эту информацию можно увидеть и в окне Workspace.

Для удаления из памяти всех переменных используется команда clear.

Выборочное удаление переменных можно сделать, применив команду Clear следующим образом: Clear a b.

После завершения сессии ML все переменные рабочего пространства, определенные в текущем сеансе работы, будут потеряны. При необходимости можно сохранить значения переменных в файле. Для этого нужно выбрать пункт меню File, Save Workspace As, далее в диалоговом окне задать имя файла для сохранения данных. Результаты будут сохранены в бинарном файле с расширением mat. Для восстановления значений переменных в следующем сеансе работы необходимо выбрать File, Oреn, имя файла. В результате все переменные станут доступны.

Другой способ сохранения и восстановления переменных рабочего пространства – набрать команды:

Save < имя файла.mat> и Load < имя файлa.mat> соответственно.

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

diary < имя>.txt

Эта команда начинает запись сессии в текстовый файл. По команде diary off запись прекращается. Команда diary on возобновляет запись.

 

Задание векторов и матриц

Способы задания векторов

 

Вектор – это одномерный массив данных. Вектор в ML – это матрица из одного столбца или одной строки. Соответственно вектор может быть вектором-столбцом или вектором-строкой.

Для задания вектора можно воспользоваться одним из приведенных ниже способов.

1. Можно задать значения вектора поэлементно:

< имя пер.> =[< значение1> < значение2> ….< значениеN> ]

Например,

> > P=[3 5 7 12]

Значения элементов записываются через пробел или через запятую.

В результате выполнения этой команды создается вектор-стро-ка:

P =

3 5 7 12

 

Если при задании вектора значения его элементов разделить точкой с запятой, то получим вектор-столбец:

 

< < A=[1; 2; 3]

A=

 

2. Если элементы вектора являются арифметической прогрессией, то можно задать вектор так:

< имя пер.> =< нач. значение>: < шаг>: < конечное значение>

Например,

> > X=0: 0.5: pi

В результате будет сформирован вектор со значениями:

X =

0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000

Шаг должен быть больше нуля. Если он равен единице, то его можно не указывать:

> > Х = 1: 10

X =

1 2 3 4 5 6 7 8 9 10

Чтобы изменить форму вектора, надо записать Х’ – тогда вектор отобразится в виде столбца. Такая операция называется транспонированием.

Например,

> > X=1: 1: 5

X = 1 2 3 4 5

> > X'

ans =

3. Также для формирования арифметической прогрессии можно использовать функцию linspace:

linspace (< нач. значение>, < кон. значение>, < кол. значений> )

Например,

> > B=linspace(0, pi, 5)

B =

0 0.7854 1.5708 2.3562 3.1416

4. Вектор можно задать также путём объединения нескольких векторов.

Например,

> > A=[1 2 3]; B=[4 5 6]; C=[7 8 9]; D=[A B C]

D =

1 2 3 4 5 6 7 8 9

Для определения длины вектора предназначена функция length:

> > l=length(D)

l =

Для доступа к элементу вектора необходимо указать его имя и в круглых скобках номер элемента. Например, D(3). Для обращения к последнему элементу вектора можно записать: D(length(D)) или D(end).

 

Задание матриц

 

При задании матриц данные строк записываются через пробел или через запятую. Элементы разных строк разделяются знаком точка с запятой (; ) или записываются с новой строки. В ML матрица хранится в порядке следования по столбцам.

Зададим матрицу:

> > A=[1 2 3; 4 5 6; 7 8 9]

A =

1 2 3

4 5 6

7 8 9

или

> > A=[1 2 3

4 5 6

7 8 9]

A =

1 2 3

4 5 6

7 8 9

Обращение к элементу матрицы: < имя> (< индексы> ), например, А(2, 3).

 

Операции

 

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

Операции отношения

К операциям отношения в ML относятся: равно ( = = ), не равно ( ~ = ), меньше( < ), меньше или равно (< =), больше (> ), больше или равно (> =).

Операции отношения используются для поэлементного сравнения двух операндов (чисел, матриц, векторов одинакового размера). Результатом операции отношения может быть соответственно число, матрица или вектор, состоящие из элементов,
обозначающих «истина» или «ложь». В ML это 1 и 0 соответственно:

> > A=[1 0 3; -2 5 -6];

> > B=[8 -9 1; 7 2 2];

> > A> B

ans =

0 1 1

0 1 0

 

В результате получили матрицу, каждый элемент которой имеет значение «истина» или «ложь»:

 

> > x=1; y=2; z=3;

> > ((x+y)==z)+(y< z)+(x< =y)

ans =

 

Логические операции

 

В ML существует возможность представления логических выражений с помощью логических операторов и логических операций. Логические операции предназначены для выполнения поэлементных логических операций над векторами и матрицами одинаковых размеров. К логическим операциям относятся логическое
И(& ), логическое ИЛИ (|), логическое НЕ (~).

Вместо логических операций можно пользоваться логическими операторами (функциями) and, or, not соответственно. Логические операторы определены над матрицами одинаковой размерности и выполняются над каждым из элементов.

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

 

Приоритет операций в ML

 

Приоритет операций определяет порядок действий в выражении. Его можно изменять с помощью круглых скобок. Далее представлены операции в порядке убывания приоритета:

1) логическая операция НЕ (~);

2) транспонирование(.’, ’), возведение в степень(.^, ^);

3) унарный плюс (+), унарный минус (-);

4) умножение и деление(.*, ./, .\, *, /, \);

5) сложение и вычитание (+, -);

6) операции отношения (<, >, < =, > =, ==, ~=);

7) логическая операция И(& );

8) логическая операция ИЛИ(|).

Элементарные функции

 

В ML существует большое количество элементарных математических функций для выполнения действий с числами: тригонометрические, степенные, логарифмические, экспоненциальные и функции округления. Каждая функция обладает именем и списком аргументов, которые задаются в круглых скобках и, если их несколько, перечисляются через запятую.

Существуют встроенные тригонометрические и гиперболические функции: sin(x), cos(x), tan(x), cot(x), asin(x), acos(x), atan(x), acot(x), sinh(x) и т.д. Аргументы этих функций могут задаваться в радианах и градусах (в следующих версиях, начиная с версии 7.0). У функций в градусной мере после названия добавляется буква d. sin(x) – аргумент в радианах, а sind(x) – аргумент в градусах.

Некоторые часто используемые математические функции:

· exp(x)–экспонента числа x;

· log(x)– натуральный логарифм;

· log10(x)– десятичный логарифм;

· sqrt(x)– квадратный корень;

· abs(x)– абсолютное значение x;

· real(z)– вещественная часть комплексного числа;

· imag(z)– мнимой часть комплексного числа;

· mod(x, y)– остаток от целочисленного деления;

· round(x)– округление до ближайшего целого.

Для работы с датами можно воспользоваться функциями:

· calendar – выводит календарь на текущий месяц;

· date – выводит текущую дату.

Все элементарные функции, приведенные выше, можно применять к векторам и матрицам. Если введен вектор X, то, задав функцию Y=sin(X), получим вектор, элементами которого будут значения синусов элементов исходного вектора:

 

> > X=[1 2 3 4];

> > Y=sin(X)

Y =

0.8415 0.9093 0.1411 -0.7568

 

Информацию о любой функции ML можно получить, выполнив команду: help < имя функции>.

Особые матрицы

 

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

1. Матрица случайных чисел:

rand(n, m) –формирует матрицу из n строк и m столбцов, заполненную случайными равномерно распределенными числами в интервале от 0 до 1.

rand(n) – формирует квадратную матрицу случайных чисел.

 

> > A=rand(3)

A =

0.9501 0.4860 0.4565

0.2311 0.8913 0.0185

0.6068 0.7621 0.8214

 

Можно задавать размер матрицы, используя вектор из двух элементов, равных числу строк и столбцов. Например,

 

> > B=rand([3 4])

B =

0.9501 0.4860 0.4565 0.4447

0.2311 0.8913 0.0185 0.6154

0.6068 0.7621 0.8214 0.7919

 

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

 

> > rand(size(A))

ans =

0.4103 0.3529 0.1389

0.8936 0.8132 0.2028

0.0579 0.0099 0.1987

size(A) – функция, возвращающая размер матрицы А в виде вектора.

 

2. Магический квадрат (матрица, у которой суммы элементов в строках, столбцах и диагоналях одинаковы) – magic(n, m):

 

> > magic(3)

ans =

8 1 6

3 5 7

4 9 2

 

3. Единичная матрица – eye(n, m):

 

> > eye(3)

ans =

1 0 0

0 1 0

0 0 1

 

4. Матрица из 0 – zeros(n, m):

 

> > zeros(3)

ans =

0 0 0

0 0 0

0 0 0

 

5. Матрица из 1 – ones(n, m):

 

> > ones(3)

ans =

1 1 1

1 1 1

1 1 1

 

6. Диагональная матрица. Чтобы получить диагональную матрицу, необходимо задать вектор, количество элементов которого определит размерность матрицы. Значения вектора расположатся на главной диагонали:

 

> > V=[1 2 3 4 5];

> > diag(V)

ans =

1 0 0 0 0

0 2 0 0 0

0 0 3 0 0

0 0 0 4 0

0 0 0 0 5

 

7. Выделение диагонали из матрицы:

 

> > diag(A)

ans =

0.9501

0.8913

0.8214

 

Результат – вектор-столбец, состоящий из элементов, расположенных на главной диагонали. Иными словами, при исполь-
зовании этой функции, если параметром является матрица, результатом будет вектор, а если параметр – вектор, результат – матри-
ца.

Для увеличения быстродействия работы программы бывает полезно заранеезадать размерность матрицы, для этого создать матрицу с нулевыми элементами – zeros(n, m), а затем заполнять ее значениями.

 

Операции с векторами и матрицами

 

В ML операции с векторами и матрицами подразделяются на два типа: поэлементные преобразования и матричные (векторные) операции, которые соответствуют правилам линейной алгебры.

 

Диаграммы

 

Диаграммы позволяют представить векторные и матричные данные в более наглядном виде. Для построения столбиковой диаграммы используется функция bar(< вектор> ).

Пусть имеем вектор Y. Построим столбиковую диаграмму (рис. 12):

 

> > Y=[2 5 3 7];

> > bar(Y)

Каждый элемент представляется в виде столбца, высота которого пропорциональна его значению. На оси x – номера элементов.

 

Рис. 12

 

Зададим два вектора: X и Y. Они должны быть одной длины:

 

> > Y=[2 5 3 7];

> > X=[8 10 4 1];

> > bar(X, Y)

 

В этом случае по оси y откладываются значения вектора y,
а по оси х – не номера элементов, а значения вектора х (рис. 13).

 

 

Рис. 13

В качестве аргумента функции bar можно задать матрицу (рис. 14):

 

> > A=[1 2 3; 4 5 6; 7 8 9];

> > bar(A)

 

Рис. 14

 

Чтобы отобразить функцию в виде диаграммы, нужно получить два вектора (вектор значения аргумента и вектор значения функции) и применить к ним команду bar (рис. 15):

 

> > X=0: 0.1: 5;

> > Y=exp(x);

> > bar(X, Y)

 

Рис. 15

Для получения объемной диаграммы (рис. 16) используется команда bar3:

 

> > A=[1 2 3; 4 5 6; 7 8 9];

> > bar3(A)

 

 

Рис. 16

 

При использовании функции barh(A) получим диаграмму с горизонтально расположенными столбцами.

Использование круговой диаграммы можно показать на примере определения доли (в процентах) каждого элемента вектора от общей суммы элементов.

Круговые диаграммы строятся с помощью функции pie(< вектор> ):

 

> > X=[3 8 10]

> > pie(X)

 

Построение секторов ведется, начиная от вертикальной оси, против часовой стрелки (рис. 17).

Чтобы выделить какой-либо сектор, необходимо создать дополнительно вектор из 0 и 1 такого же размера, что и вектор, содержащий данные. Наличие 1 показывает, что надо отделить сектор с таким же номером, что и в этом векторе Y. Пусть заданы два вектора: X и Y.

 

> > X=[16 8 3 1 4];

> > Y=[0 1 0 0 1];

> > pie(X, Y)

 

 

Рис. 17

 

Единица в векторе Y показывает, что второй и последний сектора должны быть отделены (рис. 18).

 

 

Рис. 18

 

Можно построить объемную диаграмму, применив функцию pie3(< векторa> ):

 

> > pie3(X, Y)

 

Результат изображен на рис. 19.

 

Рис. 19

Трехмерная графика

 

График поверхности (трехмерный график) – это график, положение точки в котором определяется значениями трех координат. Трехмерным аналогом функции plot является функция plot3, которая позволяет создавать трехмерные линии. Если есть три вектора x, y, z, задающих координаты точек в трехмерном пространстве, то при выполнении функции plot3(x, y, z), построится трехмерная линия на плоскости.

Пусть требуется построить график линии, заданной форму-лами

 

x=2sin(t+p/2),

y=2cos(t+p/2),

z=t, где t принадлежитдиапазону [0, 8p]

> > t=0: pi/100: 8*pi;

> > x=2*sin(t+pi/2);

> > y=2*cos(t+pi/2);

> > z=t;

> > plot3(x, y, z);

> > axis square;

> > grid on

 

Построилась винтовая линия (спираль) (рис. 23).

 

Рис. 23

 

 

Функция plot3, так же как и plot, может иметь дополнительный аргумент, задающий параметры линии (тип линии, цвет и тип маркера). Например, plot3(x, y, z, ‘g*’).

Можно также использовать команду ezplot3:

> > ezplot3('cos(2*pi*t)', 'sin(2*pi*t)', 't', [-2, 2])

 

Для вычерчивания каркасных поверхностей в трехмер-
ном пространстве существуют две основные функции: mesh
и surf.

Команда mesh(Z) строит прозрачную сетчатую поверхность, а команда surf(Z) –затененную, где Z – матрица, значения элементов которой определяют соответствующие координаты на графике. Построим прозрачную поверхность для единичной матрицы, задав команды:

 

> > Z=eye(8);

> > mesh(Z)

 

Результат показан на рис. 24.

 

Рис. 24

 

По главной диагонали расположены “пики” – единицы.

Аналогично, задав команду

 

> > surf(Z)

 

получим затененную поверхность (рис. 25).

 

 

Рис. 25

Для построения в трехмерном пространстве функции от двух переменных Z(X, Y) необходимо сначала с помощью векторов x и y задать прямоугольную сетку, которая будет использоваться как основание для построения трехмерной поверхности. Для этого надо воспользоваться функцией meshgrid, которая создает эту сетку из точек в прямоугольной области с заданными интервалами. Диапазоны значений по осям x и y задаются векторами x и y соответственно. Имена векторов и матриц могут различаться.

Пусть значения по осям x и y заданы векторами x и y:

 

> > x=[1 2 3];

> > y=[4 5 6];

 

Сформируем матрицы X и Y с помощью функции meshgrid:

 

> > [X, Y]=meshgrid (x, y)

X =

1 2 3

1 2 3

1 2 3

Y =

4 4 4

5 5 5

6 6 6

 

На основе векторов x и y формируются две матрицы, в которые записываются координаты узлов сетки. Матрица X содержит одинаковые строки, в которых заданы координаты X. Матрица Y содержит одинаковые столбцы, в которых заданы координаты Y. Наложение матриц X и Y позволяет получить пары (xi и yj), для которых в дальнейшем вычисляется значение функции Z. Значения функции в узлах сетки записываются в матрицу Z, размерность которой равна размерности матриц X и Y.

Построим график функции, которая имеет вид на заданном интервале х от -2до2и от y от -4до4с шагом, рав-
ным0, 1.

Зададим два вектора x и y, используя запись

> > x =-2: 0.1: 2;

> > y=-4: 0.1: 4;

 

Далее вызывается команда

 

> > [X, Y]=meshgrid(x, y);

Значения векторов можно указать прямо внутри команды meshgrid(-2: 0.1: 2, -4: 0.1: 4). Если оба вектора одинаковые, то можно записать: [X, Y]= meshgrid(x).

Создаётся прямоугольная сетка с шагом 0, 1, которая используется для построения трехмерной поверхности. Каждому значению x ставится в соответствие каждое значение y. Для каждой пары xi yj (в узлах сетки) будет вычислено значение функции Z.
В результате сформируется матрица из вычисленных значений функции. После этого можно вызвать команду для вывода изображения на экран.

Ниже приведен пример построения графика с использованием функции plot3 (рис. 26):

 

> > x=-2: 0.1: 2;

> > y=-4: 0.1: 4;

> > [X, Y]=meshgrid(x, y);

> > Z=2*X.*exp(-X.^2 - Y.^2);

> > plot3(X, Y, Z)

> > grid

 

 

Рис. 26

 

Более наглядные графики получаются с использованием функции mesh (рис. 27).

 

> > mesh(X, Y, Z)

 

 

Рис. 27

 

Линии на разных участках графика окрашены в разные цвета. Эти цвета соответствуют значениям функции. По умолчанию оттенки красного цвета соответствуют большим значениям функции, а синего – меньшим.

Можно сделать “прозрачной” каркасную поверхность, отобразив ее скрытые части, применив команду hidden off. Отмена – hidden on.

Если использовать функцию meshz(X, Y, Z), то будет видно основание, на котором построен график.

Пример построения сферы. Пусть необходимо начертить
поверхность, которая не может быть представлена выражением z=f( x, y), например сферу x2+y2+z2=1. В этом случае параметры поверхности можно задать, используя подходящую координатную систему, например, сферические координаты. Можно взять в качестве параметров вертикальную координату z и полярную координату q на плоскости x-y.

Если r обозначает расстояние до оси z, то тогда выражение
для сферы становится r2 + z2=1, или , отсюда , .

Построение сферической поверхности можно выполнить командами

 

> > [z, t]=meshgrid(-1: 0.1: 1, (0: 0.1: 2)*pi);

 

Вектор значений Z Вектор значений t от 0 до 2 π

 

> > x=sqrt(1-z.^2).*cos(t);

> > y=sqrt(1-z.^2).*sin(t);

> > surf(x, y, z)

> > axis square

 

Результат приведен на рис. 28.

 

 

Рис. 28

 

Все трехмерные графики, которые мы строили, можно было видеть только из одной точки обзора, т.е. позиции, с которой мы видим трехмерное изображение. В ML можно изменять точку обзора. Эта точка характеризуется двумя параметрами: азимутом (Az) и углом возвышения (El). Азимут определяет угол поворота вокруг оси z и отсчитывается от оси, противоположной y, в направлении против часовой стрелки. Угол возвышения – это угол между отрезком, направленным из начала координат в точку обзора, и плоскостью xy. Точку обзора можно менять программно,
используя функцию view (Az, El) или более просто, используя
специальную кнопку на панели инструментов графического окна Figure – Rotate 3D.

 

Программирование

 

Система ML предоставляет пользователю для решения различных задач мощный язык программирования высокого уровня, понятный непрофессиональным программистам. До сих пор все вычисления и операции мы производили в режиме прямых вычислений. Для эффективной работы с большими наборами команд этого недостаточно. Гораздо лучше было бы записать этот набор команд в виде программы и сохранить ее на диске. Программа представляет собой последовательность команд, записанных
на языкеML(программный код), и сохраняется на диске в виде
m-файла.

Создать m-файл можно с помощью любого текстового редактора, но в ML предусмотрен собственный встроенный редактор EDITOR, который имеет удобные средства для создания и отладки программ.Написанный текст программы студенты должны сохранять в файле на диске, куда разрешена запись, задав ему имя ( имя файла и имя каталога не должны содержать русских букв). Этот файл будет иметь расширение.m. Чтобы войти в текстовый редактор, надо выбрать пункт меню File, New, m-file. В редакторе m-файлов можно не только набрать текст программы, но и запустить ее на выполнение. Для сохранения программы на диске надо выбрать пункт меню File, Save as, < имя m-файла> .

m-файлы могут быть двух видов: файл-программа, или Script-файл (Script m-File), и файл-функция (Function m-File).

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

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

Операторы языка

 

Программа может иметь комментарии. Символ %означает, что далее следует поясняющий текст. Все комментарии начинаются с этого знака. Комментарий не является исполняемым оператором.

Вывод комментариев на экран при выполнении программы обеспечивает операторecho on. Отменяет вывод комментариев на экран оператор echo off. Оператор pauseприостанавливает выполнение программы и ожидает нажатия любой клавиши для продолжения. Оператор pause(n) создает паузу в n секунд.

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

 

Операторы ввода/вывода

 

Интерактивное взаимодействие пользователя с программой реализуется с помощью функций input и display.

Оператор input(< текст> ) обеспечивает ввод данных с клавиатуры. Текст, указанный в качестве параметра, заключается в апострофы. Он отображается на экране при вводе. Обращение к этой функции имеет вид

 

< имя переменной> = input(< текст> )

 

Например, при выполнении команды x=input(‘вв. x= ’) на экран выводится текст ’вв. х=’ и ожидается ввод данных с клавиатуры. Введенное данное присваивается переменной х.

При наборе в командном окне

 

> > r=input('Введите радиус ');

 

на экране получим

 

< < Введите радиус> >

 

Далее ожидается ввод значения переменной r.

Если в текст выводимой строки ввести символы '\ n’, то курсор будет перемещен на следующую строку:

 

> > r=input('Введите \n радиус ');

 

< < Введите

радиус> >

Операторdisplay(< параметр> ) или disp(< параметр> ) выводит значение переменной или константы.

disp(A) выведет матрицу А, причем выводятся только значения элементов, а текст ‘А=’, выводиться не будет.

disp(‘Привет’) – на экране будет выведено слово «Привет».

 

Script-файлы

 

Файлы-программы (их называют скриптами или сценариями) являются самым простым типом m-файлов. Script-файл состоит из последовательности команд, не содержит заголовка, а также входных и выходных параметров. Все объекты, используемые внутри script-файла, считаются глобальными. Если в рабочем пространстве есть данные, то внутри script-файла их можно использовать, а по окончании его выполнения использовать данные, созданные с его помощью. Такие файлы используются для автоматизации выполнения большого набора инструкций.

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

Для выполнения файла-программы достаточно в командной строке указать имя этого скрипта. Перед запуском программы на выполнение необходимо установить свой каталог в качестве текущего. Запуск файла на выполнение можно осуществить двумя способами: из окна редактора и из командного окна.

Для запуска программы на выполнение из окна редактора надо выбрать пункт меню Debug, Run или нажать функциональную клавишу F5, или выбрать соответствующую пиктограмму на панели инструментов. Выполнить программу, уже сохраненную на диске, можно из командного окна ML, просто набрав имя файла без расширения.

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

В текстовом редакторе наберем следующий текст:

 

% Вычисление длины окружности

r=input (‘Введите радиус окружности ’)

l=2*pi*r;

disp(‘Длина окружности равна’)

disp(l)

 

Сохраним его на диске с именем dl_okrв своей папке. Затем вызовем его для выполнения, указав в окне Command Window в командной строке имя файла dl_okr.

 

> > dl_okr

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

Введите радиус окружности 12

r =

Длина окружности равна

75.3982

Файлы-функции

 

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

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

Заголовок функции:

 

function[< список вых. параметров> ]=< имя функции> (< список
вх. параметров> )

 

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

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


Поделиться:



Популярное:

  1. Delphi. Основные характеристики и терминология
  2. I. Основные профессиональные способности людей (Уровень 4)
  3. II. ОСНОВНЫЕ ЖАЛОБЫ БОЛЬНОГО
  4. II. Основные расчетные величины индивидуального пожарного риска
  5. VIII. Основные направления просветительской, популяризаторской и коммуникативной деятельности библиотек
  6. XVI. Основные правовые системы современности.
  7. А. Жизненный цикл продукта и его основные стадии. Оценка конкурентоспособности продукта
  8. Авторитарный режим: основные черты и виды
  9. АДАПТАЦИИ К ПАРАЗИТИЧЕСКОМУ ОБРАЗУ ЖИЗНИ. ОСНОВНЫЕ ТЕНДЕНЦИИ
  10. Анатомо-физиологические особенности кроветворения, классификация, основные синдромы.
  11. Анатомо-физиологические особенности, основные синдромы и классификация
  12. Архитектура Возрождения. Классические традиции. Центрические храмы, базилики. Городские дворцы и виллы. Основные мастера. Скульптура эпохи Возрождения.


Последнее изменение этой страницы: 2016-04-11; Просмотров: 570; Нарушение авторского права страницы


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