Графики в линейном масштабе
Построение графика функции одной переменной (или нескольких таких графиков) в линейном масштабе осуществляется с помощью команды plot(…).
Рассмотрим использование команды plot(…) на конкретных примерах.
Пример 1. Построить график функции y(t) = e-2tcos(10t), где аргумент t меняется в интервале [0;1] с шагом 0,01 (рис. 5.1).
>> t=[0:0.01:1];
>> y=exp(-2*t).*cos(10*t);
>> plot(t,y)
Рис. 5.1
Пример 2. Построить в одном окне графики двух функций x(t) = 2sin(50t) иy(t)=e-2tcos(10t), где аргумент t меняется в интервале [0;2] с шагом 0,01, (рис. 5.2).
>> t=[0:0.01:2];
>> y=exp(-2*t).*cos(10*t);
>> x=2*sin(50*t);
>> plot(t,x,t,y)
Рис. 5.2
Обсудим построенные графики.
1. Команда plot(t,x)позволяет строить в декартовой системе координат график одномерной функции x с аргументом t. При этом в скобках на первом месте стоит аргумент, а на втором функция.
2. MATLAB (если это не указано специально) самостоятельно выбирает цвет графика, масштаб и оцифровывает оси абсцисс и ординат. Из рис. 5.2 видно, что масштабирование производится по максимальным значениям одной из функций и ее аргумента.
3. Для функции x(t) = 2sin(50t) шаг изменения аргумента оказался не достаточно малым, и поэтому на ее графике отчетливо видны изломы.
Порой неверный выбор шага изменения аргумента функции может существенно исказить ее график.
Если пользователь затрудняется выбрать подходящий шаг (шаг дискретизации аргумента), то при выводе графика функции можно воспользоваться командой fplot(…), и MATLAB подберет шаг дискретизации самостоятельно. Поясним это на примере.
Пусть требуется вычислить функцию y = cos10x·(sinx+0,1sin(100πx)) на интервале [0;1].
Если шаг дискретизации Δх выбрать равным Δх=0.01, то при выводе графика с помощью команды plot(…) получим результат, показанный на рис. 5.3а, что не соответствует истинной картине. Дело в том, что при таком шаге второе слагаемое сомножителя, заключенного в скобки, все время обращается в нуль. Верен график, показанный на рис. 5.3б.
Листинги программ вычисления функции и вывода ее графика с помощью команды plot(…) и команды fplot(…)выглядят следующим образом:
Вариант с применением Вариант с применением
команды plot(…)(рис. 5.3а) команды fplot(…)(рис. 5.3б)
x=[0:0.01:1]; y=myfun(x);
y=cos(10*x).*(sin(x)+0.1*sin(100*pi*x)); fplot(‘myfun’,[0,1])
plot(x,y)
Рис. 5.3а Рис. 5.3б
Первым входным аргументом fplot(…) является имя файл-функции, а вторым – вектор, элементы которого есть границы отрезков: fplot('имя файл-функции', [a,b]).
Для приведенного примера файл-функция myfunимеет вид:
function y=myfun(x);
y=cos(10*x).*(sin(x)+0.1*sin(100*pi*x));
Иногда требуется сравнить поведение двух функций, значения которых сильно отличаются друг от друга. При этом на графике с небольшими значениями функции бывает трудно выявить ее характерные особенности. В таком случае можно воспользоваться командой plotyy(…), который позволяет вывести графики двух функций в одно окно и нанести в этом окне две оси ординат, имеющие подходящий масштаб.
Пример 3. Увеличим амплитуду синусоиды функции x(t) из примера 2 в 50 раз, т.е. положим что x(t) = 100sin(50t), а y(t) = e-2tcos(10t), где аргумент t меняется от 0 до 2 с шагом 0,01. Если для построения графиков этих функций использовать команду plot(…), то получим график, представленный на рис. 5.4
Рис. 5.4
Выведем теперь графики тех же функций с помощью команды plotyy(…) (рис. 5.5)
Рис. 5.5
На рис. 5.5 проявляются характерные особенности каждой из функций. Кроме того, на цветном мониторе видно, что цвет каждой из вертикальных осей повторяет цвет соответствующего графика. При черно-белом изображении графики различных функций отличаются лишь оттенками серого цвета.
Иногда график функции требуется снабдить заранее заданными отличительными признаками, например, цветом, определенным типом линии, расположить на этой линии специальные символы (маркеры). Для этого также применяется команда plot(…), но более сложной конструкции.
Пример 4. Вычертить график функции y(t) = e-2tcos(10t) в виде штриховой линии красного цвета, помеченной маркером типа «кружок». Аргумент t меняется в интервале [0;1] с шагом 0,03.
Эта задача решается следующим образом (рис. 5.6):
>> t=[0:0.03:1];
>> y=exp(-2*t).*cos(10*t);
>> plot(t,y,'ro--')
Рис. 5.6
Полезно сравнить структуру команды plot(…) в этом примере и в примере 1. Из сравнения следует, что в команду plot(…)в настоящем примере включен дополнительный параметр, который заключается в апострофы. Этот параметр представляет собой последовательность символов, определяющих цвет линии (r– это красный цвет), тип маркера (о– это кружок) и стиль линии (двойной дефикс, т.е. символ -- соответствует штриховой линии). Заметим, что внутри апострофов между отдельными символами нет никаких разделительных знаков.
В таблице 5.1 содержатся данные, необходимые для определения свойств линий графиков.
Таблица 5.1Свойства графиков
Цвет
| Тип маркера
| Стиль линии
| y желтый
| ∙точка
| - сплошная
| m розовый
| о кружок
| : пунктирная
| с голубой
| х крестик
| -. штрих-пунктирная
| r красный
| + знак “плюс”
| -- штриховая
| g зеленый
| s квадрат
|
| b синий
| d ромб
|
| w белый
| v треугольник вершиной вниз
|
| k черный
| ^ треугольник вершиной вверх
|
|
| < треугольник вершиной влево
|
|
| > треугольник вершиной вправо
|
|
| p пятиконечная звезда
|
|
| h шестиконечная звезда
|
|
Команда plot(t,y,S), где S – дополнительный параметр, заключенный в апострофы [например, у+- (цвет желтый, тип маркера +, стиль линии сплошная) или сd: (голубой, ромб, пунктирная) или другая комбинация символов из табл 5.1], чаще всего применяется вычерчивании нескольких графиков в одном окне. Поясним это на примере.
Пример 5. Вычертить в одном окне графики трех функций y (t) = sin(0,5t), y (t) = cos(0,5t) и y (t) = sin tпри изменении t в пределах от –2π до 2π с шагом 0,1π (рис. 5.7).
>> t=[-2*pi:0.1*pi:2*pi];
>> y1=sin(0.5*t);
>> y2=cos(0.5*t);
>> y3=sin(t).^5;
>> plot(t,y1,'k',t,y2,'r-.+',t,y3,'-o')
Рис. 5.7
В данном случае командаplot(…)содержит требования по выводу графиков трех функций: у1, у2 и у3. При этом параметр S для функции у1 состоит лишь из двух символов. В этом случае S = ’-m'. В то же время для функции у2S = '-.+r', а для функции у3S = '-ok'.
Вывод: Символы, определяющие цвет, тип маркера, стиль линии и находящиеся внутри апострофов, могут располагаться в любой последовательности. Внутри апострофов могут располагаться один, два или три таких символа.
В заключение рассмотрения команды plot(…) отметим, что она может использоваться и с одним аргументом, например, в виде plot(Y). При этом аргумент команды plot(…), т. е. Y, должен быть предварительно задан в виде вектора или матрицы. Если Y есть вектор, то на графике строится зависимость значений элементов вектора от номеров элементов. Если аргументом команды plot(…) является матрица, то на одни координатные оси выводятся графики столбцов.
Пример 6. Построить график функции y(t) = e-2tcos(10t), где аргумент t меняется от 0 до 1 с шагом 0,01. Функцию узадать как вектор.
>> t=[0:0.01:1];
>> Y=exp(-2*t).*cos(10*t);
>> plot(Y)
В результате выполнения программы построенный график (рис. 5.8) по форме повторяет график, представленный на рис. 5.1. Однако, разбиение оси абсцисс на рис. 5.8 производится по возрастанию номеров элементов вектора Y. Номера элементов вектора – всегда целые числа.
Рис. 5.8
Пример 7. Применить команду plot для построения в одном окне графиков столбцов матрицы Y (рис. 5.9).
>> t=[0:0.2*pi:pi];
>> fi=0:0.2*pi:pi;
>> Y=(cos(t)).^2+sin(fi);
>> plot(Y)
Рис. 5.9
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|