Новости

Основы работы с MATLAB. Изучение простейших операций и приемов работы в среде пакета MATLAB

Работа добавлена:






Основы работы с MATLAB. Изучение простейших операций и приемов работы в среде пакета MATLAB на http://mirrorref.ru

Лабораторная работа №1. Основы работы сMATLAB. ИЗУЧЕНИЕ ПРОСТЕЙШИХ операций и приемов работы в среде пакетаMATLAB

1.1 Цель работы:

Ознакомление с простейшими операциями и приемами работы в среде пакетаMATLAB.

1.2 Оpганизация самостоятельной работы

При подготовке к лабораторной работе необходимо изучить лекционные материалы по теме “ Основы работы сMATLAB”.

Предисловие

MATLAB - система многоцелевого назначения, которая вышла на рынок программных продуктов почти двадцать лет назад и с тех пор непрерывно совершенствовалась. Но первоначально ее основу составляли алгоритмы решения систем линейных уравнений и задач на собственные значения, откуда и произошло ее название «матричная лаборатория». Теперь она представляется наиболее эффективной при проведении прикидочных расчетов и при разработке новых алгоритмов. Сейчас уже существует несколько десятков специальных приложений кMATLAB'у, посвященных более узким проблемам. Это обработка сигналов и изображений, инженерное программирование в виде блок-схем, решение экономических задач и многое другое. Но любое из этих приложений можно изучать только после первоначального освоенияMATLAB'а.

При выполнении первой лабораторной работы студенты осваивают стандартные программные структуры и командыMATLAB'а: числа, матрицы, функции, графическое представление функций, действия с массивами.

Основы работыс MATLAB

СредаMATLAB включает интерпретатор команд на языке высокого уровня, графическую систему, пакеты расширений и реализована на языке C. Вся работа организуется через командное окно(CommandWindow),которое появляется при запуске программыmatlab.exe. В процессе работы данные располагаются в памяти(Workspace),для изображения кривых, поверхностей и других графиков создаются графические окна.

В командном окне в режиме диалога проводятся вычисления. Пользователь вводит команды или запускает на выполнение файлы с текстами на языкеMATLAB. Интерпретатор обрабатывает введенное и выдает результаты: числовые и строковые данные, предупреждения и сообщения об ошибках.Строка вводапомечена знаком >>. В командном окне показываются вводимые с клавиатуры числа, переменные, а также результаты вычислений. Имена переменных должны начинаться с буквы. Знак = соответствует операции присваивания. Нажатие клавишиEnterзаставляет систему вычислить выражение и показать результат. Наберите с клавиатуры в строке ввода:

» a=2+51-37

Нажмите клавишуEnter,на экране взоне просмотрапоявится результат вычисления:

а = 16

Все значения переменных, вычисленные в течение текущего сеанса работы, сохраняются в специально зарезервированной области памяти компьютера, называемойрабочим пространством системыMATLAB(Workspace).Командойclcможно стереть содержимое командного окна, однако это не затронет содержимого рабочего пространства. Когда исчезает необходимость в хранении ряда переменных в текущем сеансе работы, их можно стереть из памяти компьютера командойclearилиclear(имя1, имя2,...). Первая команда удаляет из памяти все переменные, а вторая - переменные с именамиимя1иимя2.Командойwhoможно вывести список всех переменных, входящих в данный момент в рабочее пространство системы. Для просмотра значения любой переменной из текущего рабочего пространства системы достаточно набрать ее имя и нажать клавишуEnter.

После окончания сеанса работы с системойMATLAB все ранее вычисленные переменные теряются. Чтобы сохранить в файле на диске компьютера содержимое рабочего пространства системыMATLAB, нужно выполнить команду менюFile I Save Workspace As ....По умолчанию расширение имени файлаmat,поэтому такие файлы принято называть МАТ-файлами.Для загрузки в память компьютера ранее сохраненного на диске рабочего пространства нужно выполнить команду меню:

File I Load Workspace ....

Вещественные числа и тип данныхdouble

СистемаMATLAB представляет на машинном уровне все действительные числа заданные мантиссой и показателем степени, например, 2.85093Е+11, где буквой Е обозначается основание степени равное 10. Этот основной тип данных носит названиеdouble.MATLAB по умолчанию использует форматshortдля вывода вещественных чисел, при котором показываются только четыре десятичных цифры после запятой.

Введите с клавиатуры пример:

» res=5.345*2.868/3.14-99.455+1.274

Получите результат вычисления:

res = -93.2990

Если требуется полное представление вещественного числаres,введите с клавиатуры команду:

» format long

и далее наберите имя переменной

» res

нажмите клавишуEnterи получите более подробную информацию:

res = -93.29900636942675

Теперь все результаты вычислений будут показываться с такой высокой точностью в течение данного сеанса работы в среде системыMATLAB. Если требуется до прекращения текущего сеанса работы вернуться к старой точности визуального представления вещественных чисел в командном окне, нужно ввести и исполнить (нажав клавишуEnter)команду:

» format short

Целые числа показываются системой в командном окне в виде целых чисел.

Над вещественными числами и переменными типаdoubleпроизводятся арифметические операции: сложения +, вычитания -, умножения *, деления / и возведения в степень. Приоритет в выполнении арифметических операций обычный. Операции одинакового приоритета выполняются в порядке слева направо, но круглые скобки могут изменить этот порядок.

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

В системеMATLAB присутствуют все основные элементарные функции для вычислений с вещественными числами. Любая функция характеризуется своим именем, списком входных аргументов (перечисляются через запятую и стоят внутри круглых скобок, следующих за именем функции) и вычисляемым (возвращаемым) значением. Список всех имеющихся в системе элементарных математических функций может быть получен по командеhelpelfun.В Приложении 1 перечислены стандартные функции вещественного аргумента.

Вычислите выражение, включающее вычисление функции арксинус:

» 2*asin(1)

Убедитесь, что получился следующий результат:

ans = 3.1416,

соответствующее числу «пи». В системеMATLAB для вычисления числа «пи» есть специальное обозначение:pi.(Список системных переменныхMATLAB находится в Приложении 2).

MATLAB имеет также логические функции, функции, связанные с целочисленной арифметикой (округления до ближайшего целого:round,усечение дробной части числа:fix).Есть еще функцияmod -остаток от деления с учетом знака,sign -знак числа,lcm -наименьшее общее кратное,perms -вычисление числа перестановок иnchoosek -числа сочетаний и много других. Многие из функций имеют область определения, отличную от множества всех действительных чисел.

Помимо арифметических операций над операндами типаdoubleвыполняются еще операции отношения и логические операции. Операции отношения сравнивают между собой два операнда по величине. Эти операции записываются следующими знаками или комбинациями знаков (Таблица 1):

Символьные обозначения операций отношения

Таблица 1

<

<=

>

>=

~=

==

Меньше

Меньше или равно

Больше

Больше или равно

Не равно

Равно

В случае истинности операции отношения ее величина равна 1, а в случае ложности - 0. Операции отношения имеют более низкий приоритет, чем арифметические операции.

Наберите с клавиатуры выражение с операциями отношения и вычислите его:

» a=1; b=2; c=3;

» res=(a<b)+(c~=b)+(b==a)

Вы получите следующий результат:res = 2

Логические операции над вещественными числами обозначаются знаками, перечисленными в таблице 2:

Символьные обозначения логических операций

Таблица 2

&

|

~

и

или

НЕ

Первые две из этих операций являются бинарными (двухоперандными), а последняя - унарной (однооперандной). Логические операции трактуют свои операнды как «истинные» (не равные нулю) или «ложные» (равные нулю). Если оба операнда операции «И» истинны (не равны нулю), то результат этой операции равен 1 («истина»); во всех остальных случаях операция «И» вырабатывает значение 0 («ложь»). Операция «ИЛИ» вырабатывает 0 («ложь») только в случае, когда являются ложными (равными нулю) оба операнда. Операция «НЕ» инвертирует «ложь» на «истину». Логические операции имеют самый низкий приоритет.

Комплексные числа и комплексные функции

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

» 2+3i; -6.789+0.834e-2*i; 4-2j; x+y*i;

Почти все элементарные функции допускают вычисления с комплексными аргументами. Вычислите выражение:

» res=sin(2+3i)*atan(4i)/(1-6i)

Получится результат:

-1.8009 - 1.9190i

Специально для работы с комплексными числами предназначены следующие функции:abs(абсолютное значение комплексного числа),conj(комплексно сопряженное число),imag(мнимая часть комплексного числа),real(действительная часть комплексного числа),angle(аргумент комплексного числа),isreal(«истина», если число действительное). Функции комплексного переменного перечислены в Приложении 1.

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

Введите выражение, получите результат и объясните его:

» c=2+3i; d=2i;

» c>d

Логические операции трактуют операнды как ложные, если они равны нулю. Если же у комплексного операнда не равна нулю хотя бы одна его часть (вещественная или мнимая), то такой операнд трактуется как истинный.

Числовые массивы

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

» al=[1 2 3]; d=[1+2i,2+3i,3-7i];

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

Можно изменять элементы уже сформированного массива путем применения операций индексации и присваивания. Например, введя:

»al(3)=789;

мы изменим третий элемент массива. Или, после введения:

»al(2)= (al(1)+al(3))/2;

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

» al(4)=7;

Применяя после выполнения этой операции к массивуа1функциюlength,находим, что количество элементов в массиве возросло до четырех:

» length(al)

ans = 4

Тоже самое действие - «удлинение массиваа1»- можно выполнить и с помощью операции конкатенации:

» al=[al 7];

Можно задать массив, прописывая все его элементы по отдельности:

» al(1)=67; al(2)=7.8; al(3)=0.017;

Однако этот способ создания не является эффективным.

Еще один способ создания одномерного массива основан на применении специальной функции, обозначаемой двоеточием (операция формирования диапазона числовых значений). Через двоеточие следует набрать первое число диапазона, шаг (приращение) и конечное число диапазона. Например:

» diap=3.7:0.3:8.974;

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

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

Введите с клавиатуры:

» a=[1 2; 3 4; 5 6]

НажмитеENTER,получим:

а =

1 2

3 4

5 6

Полученную матрицуаразмером 3x2 (первым указывается число строк, вторым - число столбцов) можно сформировать также вертикальной конкатенацией вектор-строк:

» a=[[1 2];[3 4];[5 6]];

или горизонтальной конкатенацией вектор-столбцов:

» a=[[1;3;5],[2;4;6]];

Структуру созданных массивов можно узнать с помощью командыwhos(имя массива),размерность массива - функциейndims,а размер массива -size.

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

» a(1,1)=1; a(1,2)=2; a(2,1)=3;

» a(2,2)=4; a(3,1)=5; a(3,2)=6;

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

Если после формирования массиваХпотребуется, не изменяя элементов массива, изменить его размеры, можно воспользоваться функциейreshape (Х, М,N),гдеM иN -новые размеры массива Х

Объяснить работу этой функции можно, только исходя из способа, каким системаMATLAB хранит элементы массивов в памяти компьютера. Она хранит их в непрерывной области памяти упорядоченно по столбцам: сначала располагаются элементы первого столбца, вслед за ними расположены элементы второго столбца и т.д. Помимо собственно данных (элементов массива) в памяти компьютера хранится также управляющая информация: тип массива (например,double),размерность и размер массива, другая служебная информация. Этой информации достаточно для определения границ столбцов. Отсюда следует, что для переформирования матрицы функциейreshapeдостаточно изменить только служебную информацию и не трогать собственные данные.

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

» A=[1 1 1; 2 2 2; 3 3 3];

» B=A'

В =

1 2 3

1 2 3

1 2 3

Операция ' (апостроф) выполняет транспонирование для вещественных матриц и транспонирование с одновременным комплексным сопряжением для комплексных матриц.

Объекты, с которыми работаетMATLAB,являются массивами!!! Даже одно заданное число во внутреннем представленииMATLAB является массивом,состоящим из одного элемента.MATLAB позволяет делать вычисления с огромными массивами чисел также легко как и с одиночными числами, и это является одним из самых заметных и важных преимуществ системыMATLAB над другими программными пакетами, ориентированными на вычисления и программирование. Помимо памяти, необходимой для хранения числовых элементов (по 8 байт на каждый в случае вещественных чисел и по 16 байт в случае комплексных чисел),MATLAB автоматически при создании массивов выделяет еще и память для управляющей информации.

Вычисления с массивами

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

Операции сложения и вычитания матриц (знакомые вам из линейной алгебры) обозначаются стандартными знаками + и -.

Задайте матрицыА и В ивыполните операцию сложения матриц:

» A=[1 1 1; 2 2 2; 3 3 3]; B=[0 0 0; 7 7 7; 1 2 3];

» A+B

Если используются операнды разных размеров, выдается сообщение об ошибке, за исключением случая, когда один из операндов является скаляром. При выполнении операцииА + скаляр (А -матрица) система расширитскалярдо массива размера А, который и складывается далее поэлементнос А.

» A+5

ans = 6 6 6

7 7  7

8 8 8

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

Кроме операции ./, называемой операцией правого поэлементного деления,

есть еще операция левого поэлементного деления .\. Объясним разницу между

этими операциями. Выражение А ./ В приводит к матрице с элементами А(k, m) /В (k, m), авыражение А.\ В приводит к матрице с элементамиВ (k, m) /А (k, m).

Знак * закреплен за перемножением матриц и векторов всмысле линейной алгебры.

Знак \ закреплен в системеMATLAB за решением довольно сложной задачи линейной алгебры - нахождением корней системы линейных уравнений. Например, если требуется решить систему линейных уравнений

Ау = b,

гдеА -заданная квадратная матрица размераNxN,b -заданный вектор-столбец длиныN,то для нахождения неизвестного вектор-столбцаудостаточно вычислить выражение А\b(это равносильно операции:А-1 ∙В).

Типичные задачи аналитической геометрии в пространстве, связанные с нахождением длин векторов и углов между ними, с вычислением скалярного и векторного произведений, легко решаются разнообразными средствами системыMATLAB. Например, для нахождения векторного произведения векторов предназначена специальная функцияcross,например:

» u=[1 2 3]; v=[3 2 1];

» cross(u,v)

ans =

-4  8 -4

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

» sum(u.*v)

вычисляет скалярное произведение двух векторов u иv. Скалярное произведение можно также вычислить как:u*v.

Длина вектора вычисляется с помощью скалярного произведения и функции извлечения квадратного корня, например:

» sqrt(sum(u.*u))

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

Среди функций, генерирующих матрицы с заданными свойствами, упомянем здесь функциюeye,производящую единичные квадратные матрицы, а также широко применяемую на практике функциюrand,генерирующую массив со случайными элементами, равномерно распределенными на интервале от 0 до 1. Например, выражение

» F=rand(3)

порождает массив случайных чисел размером 3х3 с элементами, равномерно распределенными на интервале от 0 до 1.

Если вызвать эту функцию с двумя аргументами, напримерR=rand(2,3),то получится матрицаRслучайных элементов размером 23. При вызове функцииrandс тремя и более скалярными аргументами производятся многомерные массивы случайных чисел.

Определитель квадратной матрицы вычисляется с помощью функцииdet.

Среди функций, производящих простейшие вычисления над массивами, помимо рассмотренной выше функцииsum,упомянем еще функциюprod,которая во всем аналогична функцииsum,только вычисляет она не сумму элементов, а их произведение. Функцииmaxиminищут соответственно максимальный и минимальный элементы массивов. Для векторов они возвращают единственное числовое значение, а для матриц они порождают набор экстремальных элементов, вычисленных для каждого столбца. Функцияsortсортирует в возрастающем порядке элементы одномерных массивов, а для матриц она производит такую сортировку для каждого столбца отдельно.

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

» x=0:0.01:pi/2; y=sin(x);

вычисляют значения функцииsinсразу в 158 точках, формируя два вектораxиусо 158 элементами каждый.

Построение графиков функции

Графические возможности системыMATLAB являются мощными и разнообразными. Изучим наиболее простые в использовании возможности (высокоуровневую графику).

Сформируйте два векторахиy:

» x=0:0.01:2; y=sin(x);

Вызовите функцию:

» plot(x,y)

и вы получите на экране график функции (рис. 1).

Рис. 1. График функцииy=sin(x)

MATLAB показывает графические объекты в специальных графических окнах, имеющих в заголовке словоFigure.

Не убирая с экрана дисплея первое графическое окно, введите с клавиатуры выражения

» z=cos(x);

» plot(x,z)

и получите новый график функции в том же самом графическом окне (при этом старые оси координат и график пропадают - этого также можно добиться командойclf,командойclaудаляют только график с приведением осей координат к их стандартным диапазонам от 0 до 1).

Если нужно второй график провести «поверх первого графика», то перед вторичным вызовом графической функцииplotнужно выполнить командуholdon,которая предназначена для удержания текущего графического окна:

» x=0:0.01:2; y=sin(x);

» plot(x,y)

» z=cos(x);

» hold on

» plot(x,z)

Практически тоже самое получится (рис. 2), если набрать:

» x=0:0.01:2; y=sin(x); z=cos(x);

» plot(x,y,x,z)

Рис. 2. Графики функцийy=sin(x),z=cos(x), построенные в одном графическом окне

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

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

Например, для ранее выполненных вычислений с функциямиsin иcosпостройте графики этих двух функций в первой подобласти, а график функцииexp(х) -во второй подобласти одного и того же графического окна (рис. 3):

» w=exp(x);

» subplot(1,2,1); plot(x,y,x,z)

» subplot(1,2,2); plot(x,w)

Рис. 3. Графики функцийy=sin(x),z=cos(x) иw=exp(x), построенные в двух подобластях одного графического окна

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

» subplot(1,1,1)

Если для одиночного графика диапазоны изменения переменных вдоль одной или обеих осей координат слишком велик, то можно воспользоваться функциями построения графиков влогарифмических масштабах.Для этого предназначены функцииsemilogx,semilogyиloglog.

Построить график функции в полярных координатах (рис. 4) можно с помощью графической функцииpolar.

» phi=0:0.01:2*pi; r=sin(3*phi);

» polar(phi,r)

Рис. 4. График функцииr=sin(3*phi) в полярных координатах

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

» x=0:0.1:3; y=sin(x);

»plot(x,y,'r-',x,y,'ko')

позволяют придать графику вид красной сплошной линии (рис. 5), на которой в дискретных вычисляемых точках проставляют черные окружности. Здесь функцияplotдважды строит график одной и той же функции, но в двух разных стилях. Первый из этих стилей отмечен как'r-',что означает проведение линии красным цветом (буква r), а штрих означает проведение сплошной линии. Второй стиль, помечен как'ko',означает проведение черным цветом (букваk)окружностей (букваo)на месте вычисляемых точек.

Рис. 5. Построение графика функцииy=sin(x) в двух разных стилях

В общем случае функция plot (x1, y1, s1, x2, y2, s2, ... ) позволяет объединить в одном графическом окне несколько графиков функций y1(x1), y2(x2), ... проведя их со стилями s1, s2, ... и т. д.

Стилиs1,s2,...задаются в виде набора трехсимвольных маркеров,заключенных в одиночные кавычки (апострофы). Один из этих маркеров задает тип линии (Таблица 3). Другой маркер задает цвет (Таблица 4). Последний маркер задает тип проставляемых «точек» (Таблица 5). Можно указывать не все три маркера. Тогда используются маркеры, установленные по умолчанию. Порядок,в котором указывают маркеры, не является существенным, то есть 'r+-' и'-+r'приводит к одинаковому результату.

Маркеры, задающие тип линии

Таблица 3

Маркер

-

--

:

-.

Тип линии

Непрерывная

Штриховая

Пунктирная

Штрихпунктирная

Маркеры, задающие цвет линии

Таблица 4

Маркер

Цвет линии

Маркер

Цвет линии

c

Голубой

g

Зеленый

m

Фиолетовый

b

Синий

y

Желтый

w

Белый

r

Красный

k

Черный

Маркеры, задающие тип точки

Таблица 5

Маркер

+

*

о

X

Тип точки

Точка

Плюс

Звездочка

Кружок

Крестик

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

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

axis ([xmin,xmax,ymin,ymax ])

Для проставления различных надписей на полученном рисунке применяют функцииxlabеl,ylabеl,titleиtext.Функцияxlabеlсоздает подпись у горизонтальной оси, функцияylabеl -тоже для вертикальной оси (причем эти надписи ориентированы вдоль осей координат). Если требуется разместить надпись в произвольном месте рисунка, применяем функциюtext.Общий заголовок для графика создается функциейtitle.Кроме того, используя командуgridon,можно нанести измерительную сетку на всю область построения графика. Например (рис. 6):

Рис. 6. График функцииy=sin(x), построенный в двух стилях, с надписями на координатных осях и на рисунке

» x=0:0.1:3; y=sin(x);

» plot(x,y,'r-',x,y,'ko')

» title('Function sin(x) graph');

» xlabel('xcoordinate'); ylabel('sin(x)');

» text(2.1, 0.9, '\leftarrowsin(x)'); grid on

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

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

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

Каждая точка в пространстве характеризуется тремя координатами. Набор точек, принадлежащих некоторой линии в пространстве, нужно задать в виде трех векторов, первый из которых содержит первые координаты этих точек, второй вектор - вторые их координаты, ну а третий вектор - третьи координаты. После чего эти три вектора можно подать на вход функцииplot3,которая и осуществит проектирование соответствующей трехмерной линии на плоскость и построит результирующее изображение (рис. 7). Введите с клавиатуры:

» t=0:pi/50:10*pi;

» x=sin(t);

» y=cos(t); plot3(x,y,t); grid on

Убедитесь, что получилась винтовая линия.

Рис. 7. График винтовой линии, построенный с помощью функцииplot3

Эту же функциюplot3можно применить и для изображения поверхностей в пространстве, если, конечно, провести не одну линию, а много. Наберите с клавиатуры:

» u=-2:0.1:2; v=-1:0.1:1;

» [X,Y]=meshgrid(u,v);

» z=exp(-X.2-Y.2);

» plot3(X,Y,z)

Получите трехмерное изображение графика функции (рис. 8).

Рис. 8. График поверхности в пространстве, построенный с помощью функцииplot3

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

Сценарии и m-файлы .

Для простых операций удобен интерактивный режим, но если вычисления нужно многократно выполнять или необходимо реализовывать сложные алгоритмы, то следует использоватьm-файлыMATLAB (расширение файла состоит из одной буквы m). Познакомимся соscript-m-файлами(или сценариями) - текстовыми файлами, содержащими инструкции на языкеMATLAB, подлежащими исполнению в автоматическом пакетном режиме. Создать такой файл удобнее с помощью редактора системыMATLAB. Он вызывается из командного окна системыMATLAB командой менюFile/New/M-file(или самой левой кнопкой на полосе инструментов, на которой изображен чистый белый лист бумаги). Записанные вscript-файлы команды будут выполнены, если в командной строке ввести имяscript-файла (без расширения). Переменные, определяемые в командном окне и переменные, определяемые в сценариях, составляют единое рабочее пространство системыMATLAB, причем переменные, определяемые в сценариях,являются глобальными, их значения заместят значения таких же переменных, которые были использованы до вызова данногоscript-файла.

После создания текста сценария его надо сохранить на диске в удобном для вас каталоге. Путь к этому каталогу обязательно должен быть известен системеMATLAB. КомандойFile/SetPathвызывается диалоговое окно просмотрщика путей доступа к каталогам. Для добавления нового каталога в список путей доступа необходимо выполнить далее команду менюPath/Addtopath.

Самостоятельные задания для лабораторной работы 1

Задание 1.

Задать матрицу А с помощью операции конкатенации:

Задание 2.

Сгенерируйте массив В размером 3х3 со случайными элементами, равномерно распределенными на интервале от 0 до 1.

Задание 3.

Выполните действия:

A +10∙B,AT, ВT,

почленно умножить А на В,

расположить элементы матрицы А по возрастанию (по столбцам), определить максимальный и минимальный элементы матрицы В, вычислить определитель матрицы В.

Задание 4.

Задать массив С, используя операцию индексации и одну из функций:ones илиzeros:

Задание 5.

Решить систему алгебраических линейных уравнений:

AX=C.

Задание 6.

Определить массив D:

Задание 7.

Для двух векторов:

и

определите: ; ; .

Задание 8.

Постройте два графика в рамках одних осей координат:

.

Сделайте надписи на осях, заголовок для графика, пояснительную надпись на рисунке. Задайте самостоятельно тип линий и цвет.

Задание 9.

Построить графики функцийy(x) иz(x)изЗадания 8в разных подобластях одного графического окна. Интервалы изменения длях определите самостоятельно.

Задание 10.

Постройте поверхность:

,

.

Контрольные вопросы к теме «Основы работы вMATLAB»

  1. Как изменить на экране формат вывода числа?
  2. Как можно просмотреть вMATLAB список всех элементарных математических функций?
  3. Какие виды функций вMATLAB Вам известны?
  4. Опишите способы создания одномерных массивов вMATLAB.
  5. Опишите способы создания двумерных массивов вMATLAB.
  6. Перечислите и объясните действие операторов, используемых при вычислениях с массивами.
  7. Опишите действие операций отношения.
  8. Опишите действие логических операций.
  9. ной?
  10. Как построить несколько графиков в одной системе координат?
  11. Как построить графики в разных подобластях одного графического окна?
    1. Как изменить цвет и стиль линий на графиках?
    2. вок для графика?
    3. поверхности?
    4. Что такоеm-файлы? Как создать, сохранить и вызвать m-файл?

Содержание отчета

Оформить титульный лист в соответствии с требованиями и своими персональными данными.

В отчет необходимо включить:

цель лабораторной работы;

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

графики иscreenshot’ы, отображающие и иллюстрирующие полученные результаты, появляющиеся в рабочем окнеMATLAB;

выводы.

Основы работы с MATLAB. Изучение простейших операций и приемов работы в среде пакета MATLAB на http://mirrorref.ru


Похожие рефераты, которые будут Вам интерестны.

1. Реферат Основы работы с MATLAB. Решение типовых задач алгебры и анализа

2. Реферат MATLAB лабораторные работы

3. Реферат Использование пакета MatLab

4. Реферат Неопределенный интеграл в среде Matlab

5. Реферат Синтез и моделирование низкочастотного цифрового фильтра с бесконечной импульсной характеристикой (БИХ) с помощью пакета программ MATLAB

6. Реферат Моделирование и экспериментальные исследования в среде MATLAB

7. Реферат Анализ устойчивости энергетической системы путём имитационного моделирования в среде matlab

8. Реферат Приклади застосування функції quadprog (MATLAB) для розв’язання задач квадратичного програмування та функції fmincon (MATLAB) пошуку глобального екстремуму полімодальної функції

9. Реферат ОСНОВЫ ЯЗЫКАOBJECTPASCAL. СОЗДАНИЕ ПРОСТЕЙШИХ ПРОГРАММ В СРЕДЕ Delphi

10. Реферат ОСНОВЫ ЯЗЫКА OBJECT PASCAL. СОЗДАНИЕ ПРОСТЕЙШИХ ПРОГРАММ В СРЕДЕ Delphi