Построение
в одном окне графиков нескольких функций
Более подробное
описание графического окна будет дано в уроке 5. А пока пойдем дальше и попытаемся
построить графики сразу трех функций: sin(x), cos(#) и sin
(x)/х.
Прежде
всего отметим, что эти функции могут быть обозначены переменными, не имеющими
явного указания аргумента в виде у(х):
»y1=sin(x);
y2=cos(x); y3=sin(x)/x;
Такая возможность
обусловлена тем, что эти переменные являются векторами — как и переменная х.
Теперь можно использовать одну из ряда форм команды
plot:
plot(a1.f1.a2.f2.a3.f3,...).
где al, а2,
аЗ,.„ — векторы аргументов функций (в нашем случае все они — х), a f1, f2, f3,...
—векторы значений функций, графики которых строятся в одном окне. В нашем случае
для построения графиков указанных функций мы должны записать следующее:
»
plot(x,y1,x,y2,x.y3)
Можно ожидать,
что MATLAB в этом случае построит, как обычно, точки графиков этих функций и
соединит их отрезками линий. Но, увы, если мы выполним
эти
команды, то никакого графика не получим вообще. Не исключен даже сбой
Б
работе
программы. Причина этого казуса уже обсуждалась в предыдущем уроке — при вычислении
функции y3=sin(x)/x, если х представляет собой массив (вектор), то нельзя использовать
оператор матричного деления /.
Этот пример
еще раз наглядно указывает на то, что чисто поверхностное применение даже такой
мощной системы, как MATLAB, иногда приводит к досадным срывам. Чтобы все же
получить график, надо вычислять отношение
sin(x) к хс
помощью оператора
поэлементного деления массивов ./. Этот случай поясняет рис. 3.2.
Рис.
3.2.
Построение графиков трех функций
Обратите внимание
на то, что хотя на этот раз MATLAB построил графики всех трех функций, в окне
командного режима появилось предупреждение о делении на 0 — в момент, когда
х=0. Это говорит о том, что piot «не знает» о том, что неопределенность
sin(x)/x=0/0 устранимая и дает 1. Это недостаток практически всех систем для
численных вычислений.
Содержание раздела