Пятница, 2025-06-20, 11:56 PM
Приветствую Вас Гость | RSS
Главная | Построение графиков | Регистрация | Вход
Меню сайта
Вход на сайт
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Программирование

    Построение графиков функции одной переменной в MatLab

     

     

    1. Графики функций в линейном масштабе

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

    ,

    определенной на отрезке [0, 1]. Вывод функции в виде графика состоит из следующих этапов:

    1. Задание вектора значений аргумента х. 
    2. Вычисление вектора узначений функции y(х). 
    3. Вызов команды  plot  для построения графика.

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

    » х = [0:0.05:1]; 
    » у = ехр(-х).*sin(10*x); 
    » plot(x, у)

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

    Для построения графика функции в рабочей среде MatLab должны быть определены два вектора одинаковой размерности, например х и у. Соответствующий массив х содержит значения аргументов, а у — значения функции от этих аргументов. Команда plot соединяет точки с координатами (x(i), y(i)) прямыми линиями, автоматически масштабируя оси для оптимального расположения графика в окне. При построении графиков удобно расположить на экране основное окно MatLab и окно с графиком рядом так, чтобы они не перекрывались.

    Построенный график функции имеет изломы. Для более точного построения графика функцию необходимо вычислить y(х) в большем числе точек на отрезке [0, 1], т.е. задать меньший шаг при вводе вектора х:

    » х = [0:0.01:1]; 
    » у = ехр(-х).*sin(10*x); 
    » plot(x, у)

    В результате получается график функции в виде более плавной кривой. 
    Сравнение нескольких функций удобно производить, отобразив их графики на одних осях. Например, построим на отрезке [-1, -0.3] графики функций

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

    » х = [-1:0.005:-0.3]; 
    » f = sin(x.^-2); 
    » g = sin(1.2*x.^-2); 
    » plot(x, f, x, g)

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

    » х1 = [-1:0.005:-0.3]; 
    » f = sin(x1.^-2); 
    » х2 = [-1:0.005:0.3]; 
    » g = sin(1.2*x2.^-2); 
    » plot(x1, f, x2, g)

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

    Замечание 1 
    Использование plot с одним аргументом - вектором - приводит к построению "графика вектора", т.е. зависимости значений элементов вектора от их номеров. Аргументом plot может быть и матрица, в этом случае на одни координатные оси выводятся графики столбцов. 
    Иногда требуется сравнить поведение двух функций, значения которых сильно отличаются друг от друга. График функции с небольшими значениями практически сливается с осью абсцисс, и установить его вид не удается. В этой ситуации помогает функция plotyy, которая выводит графики в окно с двумя вертикальными осями, имеющими подходящий масштаб. 
    Сравните, например, две функции:   и  

    » х = [0.5:0.01:3]; 
    » f = х.^-3; 
    » F = 1000*(х+0.5).^-4; 
    » plotyy(x, f, x, F)

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

     

    2. Графики функций в логарифмических масштабах

    Для построения графиков в логарифмическом и полулогарифмическом масштабах служат следующие функции: 
    - loglog (логарифмический масштаб по обеим осям); 
    - semilogx (логарифмический масштаб только по оси абсцисс); 
    -semilogy (логарифмический масштаб только по оси ординат). 
    Аргументы loglog, semilogx и semilogy задаются в виде пары векторов значений абсцисс и ординат так же, как для функции plot, описанной в предыдущем пункте. Построим, например, графики функций   и    на отрезке [0.1, 5] в логарифмическом масштабе по оси х:

    » х = [0.1:0.01:10]; 
    » f = log(0.5*x); 
    » g = sin(log(x)); 
    » semilogx(x, f, x ,g)

     

    3. Задание свойств линий на графиках функций

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

    Цвет

    Тип маркера

    Тип линии

    y

    желтый

    .

    точка

    -

    сплошная

    m

    розовый

    o

    кружок

    :

    пунктирная

    c

    голубой

    х

    крестик

    -.

    штрих-пунктирная

    r

    красный

    +

    знак "плюс"

    --

    штриховая

    g

    зеленый

    *

    звездочка

     

     

    b

    синий

    s

    квадрат

     

     

    w

    белый

    d

    ромб

     

     

    k

    черный

    v

    Треугольник вершиной вниз

     

     

     

     

    ^

    Треугольник вершиной вверх

     

     

     

     

    Треугольник вершиной влево

     

     

     

     

    треугольник вершиной вправо

     

     

     

     

    p

    пятиконечная звезда

     

     

     

     

    h

    шестиконечная звезда

     

     

     

    Если, например, необходимо построить первый график красными точечными маркерами без линии, а второго график - черной пунктирной линией, то следует использовать команду plot(x, f, 'r.', х, g, 'k:').

     

    4. Оформление графиков функций

    Удобство использования графиков во многом зависит от дополнительных элементов оформления: координатной сетки, подписей к осям, заголовка и легенды. Сетка наносится командой grid on, подписи к осям размещаются при помощи xlabel, ylabel, заголовок дается командой title. Наличие нескольких графиков на одних осях требует помещения легенды командой legend с информацией о линиях. Все перечисленные команды применимы к графикам как в линейном, так и в логарифмическом и полулогарифмическом масштабах. Следующие команды выводят графики изменения суточной температуры, которые снабжены всей необходимой информацией.

    » time = [0 4 7 9 10 11 12 13 13.5 14 14.5 15 16 17 18 20 22]; 
    » temp1 = [14 15 14 16 18 17 20 22 24 28 25 20 16 13 13 14 13]; 
    » temp2 = [12 13 13 14 16 18 20 20 23 25 25 20 16 12 12 11 10]; 
    » plot(time, temp1, 'ro-', time, temp2, 'go-') 
    » grid on 
    » title('Суточные температуры') 
    » xlabel('Время (час.)') 
    » ylabel('Температура (С)') 
    » legend('10 мая1,  11 мая')

    При добавлении легенды следует учесть, что порядок и количество аргументов команды legend должны соответствовать линиям на графике. Последним дополнительным аргументом может быть положение легенды в, графическом окне:

    • —1 - вне графика в правом верхнем углу графического окна;
    • 0 — выбирается лучшее положение в пределах графика так, чтобы как можно меньше перекрывать сами графики;
    • 1 — в верхнем правом углу графика (это положение используется по умолчанию);
    • 2 — в верхнем левом углу графика;
    • 3 — в нижнем левом углу графика;
    • 4 — в нижнем правом углу графика.

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

    » plot(x,f,'k-',x,g,'k:')

    осуществляет построение первого графика сплошной черной линией, а второго - черной пунктирной. Аргументы 'k-' и 'k:' задают стиль и цвет первой и второй линий. Здесь k означает черный цвет, а дефис или двоеточие - сплошную или пунктирную линию. Окно с графиком можно закрыть, нажав на кнопку с крестиком в правом верхнем углу.

    uCozCopyright MyCorp © 2025