Elettracompany.com

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Matlab график в логарифмическом масштабе

MATLAB 7 — Ануфриев И.Е.

Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н. MATLAB 7 — СПб.: БХВ-Петербург, 2005. — 1104 c.
ISBN 5-94157-494-0
Скачать (прямая ссылка): matlab72005.pdf Предыдущая 51 52 53 54 55 56 .. 349 >> Следующая

Графики 8 логарифмических масштабах

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

? loglog (логарифмический масштаб по обеим осям);

U semilogx (логарифмический масштаб только по оси абсцисс);

? semilogy (логарифмический масштаб только по оси ординат).

Аргументы loglog, semilogx И semilogy задаются U ВИДЄ пары векторов значении абсцисс и ординат так же, как для функции plot, описанной в предыдущем разделе. Глава 3. Высокоуровневая графика

Постройте, например, графики функций /(.v)= In 0.5.v и g (л) = sin In хна отрезке [0.1, 5) в логарифмическом масштабе по оси .г:

» f = log(0.5*х); » g = sin(log(x>); » semilogxtx, f, х ,g>

Получающиеся графики изображены на рис. 3,21.

Рис. 3.21. Графики в полулогарифмической шкале Функции Ioglog и semilogy вызываются аналогичным образом.

Изменение свойств линий

Построенные графики функций должны быть максимально удобными для восприятия. Часто требуется нанести маркеры, изменить цвет линий, а при подготовке к монохромной печати — задать тип линии (сплошная, пунктирная, штрих-пунктирная и т. д.). MATLAB предоставляет возможность управлять видом графиков, построенных при ПОМОЩИ plot, loglog, semilogx и semilogy, для чего служит дополнительный аргумент, помещаемый за каждой парой векторов. Этот аргумент заключается в апострофы и состоит из трех символов, которые определяют: цвет, тип маркера и тип линии. Используются одна, две или три позиции, в зависимости от требуемых J 134

Часть I, Основы работы в MATLAB

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

Таблица, 3.1. Свойства линии

Цвет Тип маркера Тип линии
у желтый точка — сплошная
m розовый о кружок пунктирная
с голубой к крестик штрих-
пунктирная
г красный + знак «плюс» — штриховая
g зеленый * звездочка
ь синий S квадрат
W белый d ромб
к черный V треугольник
вершиной вниз
треугольник
вершиной вверх
треугольник
вершиной впра-
во
P пятиконечная
звезда
h шестиконечная
звезда

Например, для построения первого графика (рис. 3.19) красными точечными маркерами без линии, а второго пунктирной черной линией следует использовать команду plot (хг f, ‘г.’, х, д, ‘ к: •). Результат приведен на рис. 3.22. Обратите внимание, что абсциссы маркеров совпадают со значениями аргумента, содержащимися в х. Это не всегда хорошо, ведь для получения гладкой кривой требуется вычислить вектор значений функции в достаточно большом числе точек, что приводит к слишком частому расположению маркеров или даже их перекрытию. Простой прием позволяет по- Глава 3. Высокоуровневая графика

местить маркеры в заранее выбранные позиции. Строится два графика функции, один — сплошной линией, а второй — только маркерами для небольшого набора значений аргумента:

» у — sin(2*рі*х.Л2); » xm = -1:0.2:1; » ym = sin(2*pi*xm.n2) ,-» plot(x, у, ‘k’, xm, ym, ‘ко’)

2.5 7 1.5 — J 4* *
1 ¦ • ; !, «
0.6 і1* : ґ ?*’ ¦ ¦¦ ; I I1 : • » ¦ » : г • « I ¦ V :/ ¦ * і ¦ .і . .
„ > л , I-. I >,, , V . :
I * -E -4 -2 D 2 Л E I

Рис. 3.22. Изменение параметров линий

Удобство использования графиков во многом зависит от дополнительных элементов оформления: координатной сетки, подписей к осям, заголовка и легенды. Такие возможности реализуются либо с помощью дополнительных параметров, задающих свойства объектов, либо с помощью вспомогательных команд и функций. Перечислим основные из них. Сетка наносится командой geld on, функции Xlabel, уlabel служат для размещения подписей к осям, a title— для заголовка. При необходимости сопроводить график легендой следует использовать функцию legend. Все перечисленные команды применимы к графикам как в линейном, так и в логарифмическом и полулогарифмическом масштабах. Следующие команды выводят графики из- J 136

Часть I, Основы работы в MATLAB

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

» time = [0 4 7 9 10 11 12 13 13.5 14 14.5 15 16 17 18 20 22); » tenpl = [14 15 14 16 18 17 20 22 24 28 25 20 16 13 13 14 13]; » tenp2 = [12 13 13 14 16 18 20 20 23 25 25 20 16 12 12 11 10]; » plot(time, tempi, ‘ro-‘, time, temp2, ‘go-‘) » grid on

Рис. 3.23. График изменения суточной температуры

Символы кириллицы могут неправильно отображаться в нелокализован-ной версии MATLAB. Один из способов решения проблемы заключается в изменении текстового файла matlabrc.m, находящегося в подкаталоге tool-Ьох1оса) основного каталога MATLAB. Используя любой текстовый редактор, добавьте в конец файла строку: set(0,’DcTaultAxesFonIName1jlMMai. шрифта_с_русскимн_символами’) (см. также примечание а разд. «Сервисные функции для работы со строками» главы 8). Глава 3. Высокоуровневая графика
Предыдущая 51 52 53 54 55 56 .. 349 >> Следующая

Построение графиков в логарифмическом и полулогарифмическом масштабах.

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

Читать еще:  Функция tf в matlab

Построим в качестве примера график функции на промежутке в логарифмическом масштабе по оси .

Будем иметь (рис. 2.9.6):

Рис. 2.9.6. График функции в логарифмическом масштабе по оси .

Построение графиков в полярных координатах.

Для построения графика функции в полярной системе координат используется команда polar, например (рис. 2.9.7):

Оформление графиков и графических окон

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

Рис. 2.9.7. График функции в полярной системе координат.

Рис. 2.10.1. Пример маркировки точек кривой посредством окружностей.

Выбор свойств линий.

Так, например, команды (рис. 2.10.1)

plot(x, y, ‘k-‘, x, y, ‘ko’)

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

В общем случае команда

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

Заметим, что стили s1,s2,… задаются в виде набора трех символьных маркеров (стилевой строки), один из которых задает тип линии, второй – цвет линии, а третий – тип маркера, используемого для пометки представляемых точек (таблица 2.10.1). При отсутствии указания типов маркеров используются значения, установленные по умолчанию. Отметим, что порядок, в которым указываются маркеры, задающие тип линии, цвет линии и тип точки несущественен. Если в стилевой строке задан тип маркера, но не указан тип линии, то представляемые точки маркером метятся, но не соединяются друг с другом отрезками прямых.

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

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

В данном случае команда plot через опорные точки проводит отрезки прямых линий с координатами x,y. Прямые линии в системе MATLAB представляют собой объекты типа line. Эти объекты имеют очень большое количество свойств и характеристик, которые можно менять. Доступ к этим объектам осуществляется посредством их дескрипторов.

Командой hplot=plot(x,y) создается графический объект и переменной hplot присваивается значение дескриптора графического объекта типа line, использованного для построения графика функции .

Таблица 2.10.1. Параметры для управления цветом и видом графиков.

Matlab график в логарифмическом масштабе

Обычная графика MATLAB

Построение графиков точками и отрезками прямых

Графики в логарифмическоми полулогарифмическом масштабе

Гистограммы и диаграммы

Графики специальных типов

Создание массивов данных для трехмерной графики

Построение графиков трехмерных поверхностей, сечений и контуров

Средства управления подсветкой и обзором фигур

Средства оформления графиков

Одновременный вывод нескольких графиков

Управление цветовой палитрой

Окраска трехмерных поверхностей

Двумерные и трехмерные графические объекты

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

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

Построение графиков отрезками прямых

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

Читать еще:  Матрица поворота matlab

Команда plot служит для построения графиков функций в декартовой системе координат. Эта команда имеет ряд параметров, рассматриваемых ниже.

plot (X, Y) — строит график функции у(х), координаты точек (х, у) которой берутся из векторов одинакового размера Y и X. Если X или Y — матрица, то строится семейство графиков по данным, содержащимся в колонках матрицы.

Приведенный ниже пример иллюстрирует построение графиков двух функций — sin(x) и cos(x), значения функции которых содержатся в матрице Y, а значения аргумента х хранятся в векторе X:

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

Рис. 6.1. Графики двух функций в декартовой системе координат

plot(Y) — строит график у(г), где значения у берутся из вектора Y, a i представляет собой индекс соответствующего элемента. Если Y содержит комплексные элементы, то выполняется команда plot (real (Y). imag(Y)). Во всех других случаях мнимая часть данных игнорируется.

Вот пример использования команды plot(Y):

Соответствующий график показан на рис. 6.2.

Рис. 6.2. График функции, представляющей вектор Y с комплексными элементами

plot(X.Y.S) — аналогична команде plot(X.Y), но тип линии графика можно задавать с помощью строковой константы S.

Значениями константы S могут быть следующие символы.

Построение графиков в логарифмическом и полулогарифмическом масштабах.

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

Построим в качестве примера график функции на промежутке в логарифмическом масштабе по оси .

Будем иметь (рис. 2.9.6):

Рис. 2.9.6. График функции в логарифмическом масштабе по оси .

Построение графиков в полярных координатах.

Для построения графика функции в полярной системе координат используется команда polar, например (рис. 2.9.7):

Оформление графиков и графических окон

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

Рис. 2.9.7. График функции в полярной системе координат.

Рис. 2.10.1. Пример маркировки точек кривой посредством окружностей.

Выбор свойств линий.

Так, например, команды (рис. 2.10.1)

plot(x, y, ‘k-‘, x, y, ‘ko’)

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

В общем случае команда

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

Заметим, что стили s1,s2,… задаются в виде набора трех символьных маркеров (стилевой строки), один из которых задает тип линии, второй – цвет линии, а третий – тип маркера, используемого для пометки представляемых точек (таблица 2.10.1). При отсутствии указания типов маркеров используются значения, установленные по умолчанию. Отметим, что порядок, в которым указываются маркеры, задающие тип линии, цвет линии и тип точки несущественен. Если в стилевой строке задан тип маркера, но не указан тип линии, то представляемые точки маркером метятся, но не соединяются друг с другом отрезками прямых.

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

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

В данном случае команда plot через опорные точки проводит отрезки прямых линий с координатами x,y. Прямые линии в системе MATLAB представляют собой объекты типа line. Эти объекты имеют очень большое количество свойств и характеристик, которые можно менять. Доступ к этим объектам осуществляется посредством их дескрипторов.

Командой hplot=plot(x,y) создается графический объект и переменной hplot присваивается значение дескриптора графического объекта типа line, использованного для построения графика функции .

Таблица 2.10.1. Параметры для управления цветом и видом графиков.

Matlab график в логарифмическом масштабе

1. Построение двумерных графиков функций

Читать еще:  Решение дифференциальных уравнений в matlab

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

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

Например, нет ничего проще, чем построить график функции одной вещественной переменной. Следующие команды

x = 0 : 0.01 : 2;

y = sin( x );

вычисляют массив y значений функции sin для заданного набора аргументов.

После этого одной единственной командой

plot( x , y )

удаётся построить вполне качественно выглядящий график функции:

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

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

Если мы, не убирая с экрана дисплея первое графическое окно, вводим и исполняем ещё один набор команд

x = 0 : 0.01 : 2;

z = cos( x );

plot( x , z )

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

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

hold on

которая предназначена для удержания текущего графического окна. В результате будет получено следующее изображение:

Того же самого можно добиться, потребовав от функции plot построить сразу несколько графиков в рамках одних и тех же осей координат:

x = 0 : 0.01 : 2;

y = sin( x ); z = cos( x );

plot( x , y , x , z )

У такого способа есть ещё одно (кроме экономии на команде hold on) преимущество, так как разные графики автоматически строятся разным цветом.

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

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

w = exp( x );

После этого выполняем команды

figure; plot( x , w )

которые построят график функции exp в новом графическом окне, так как команда figure создаёт новое (добавочное) графическое окно, и все последующие за ней команды построения графиков выводят их в новое окно:

В результате в первом графическом окне (Figure No. 1) по вертикальной оси переменные изменяются в диапазоне от -0.5 до 1, а во втором графическом окне (Figure No. 2) — от 1 до 8.

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

Например, для ранее выполненных вычислений с функциями sin, cos и exp, строим графики первых двух функций в первой подобласти, а график третьей функции — во второй подобласти одного и того же графического окна:

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

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

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

Диапазоны изменения переменных на осях координат этих подобластей независимы друг от друга.

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

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

help имя_функции

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

Итак, уже рассмотренные примеры показывают, как подсистема высокоуровневой графики MATLABа легко справляется с различными случаями построения графиков, не требуя слишком большой работы от пользователя. Ещё одним таким примером является построение графиков в полярных координатах. Например, если нужно построить график функции r = sin( 3 f ) в полярных координатах, то следующие несколько команд

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

Ссылка на основную публикацию
Adblock
detector