36858

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

Лабораторная работа

Информатика, кибернетика и программирование

plotxy[xcpycpcption] x массив абсцисс; y массив ординат; xcp ycp cptionподписи осей X Y и графика соответственно. Затем воспользуемся функцией plotxy для построения кривой и выведем с ее же помощью подписи координатных осей X Y а также имя графика plot function y=sincosx Листинг 4. Построение графика функции y = sincosx с помощью функции plot x=2pi:0.

Русский

2013-09-23

396 KB

3 чел.

Лабораторная работа № 5

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

Функция plot.

plot(x,y,[xcap,ycap,caption])

x - массив абсцисс;

y - массив ординат;

xcap, ycap, caption-подписи осей X, Y и графика соответственно.

Пусть x изменяется на интервале [−2π; 2π] с шагом 0,1.

Сформируем массив X.

Вычисляя значение функции y = sin(cos(x)) для каждого значения массива X, создадим массив Y.

Затем воспользуемся функцией plot(x,y) для построения кривой и выведем с ее же помощью подписи координатных осей ’X’, ’Y’, а также имя графика

’plot function y=sin(cos(x))’

Листинг 4.1. Построение графика функции y = sin(cos(x)) с помощью функции plot

x=-2*%pi:0.1:2*%pi;

y=sin(cos(x));

plot(y);

В простейшем случае обращение к функции имеет вид plot(y), в качестве массива х выступает массив номеров точек массива y.

Листинг 4.2. Построение графика функции вида y = f(i), где j - номер точки в массиве y

y=[1 2 3 -2 4 5 -1 6 9 11 0 -2 5];

plot(y);

Такой синтаксис функции plot позволяет строить графики нескольких функций.

Допустим, что x принадлежит интервалу [−2π; 2π] и изменяется с шагом 0,1.

Создадим массив X. Поскольку x является аргументом для всех четырех функций, его в обращении к функции plot можно не указывать.

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

Листинг 4.3. Построение графиков нескольких функций в одних координатных осях с помощью команды plot.

x=-2*%pi:0.1:2*%pi;

plot([sin(cos(x));cos(sin(x));exp(sin(x));exp(cos(x))]);

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

При простейшем обращении к функции plot(x,y) создается окно с именем Scilab Graphic (0), в котором будет построен график функции y(x) на заданном интервале.

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

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

plot(x1,y1,x2,y2,...xn,yn)

где x1, y1 - массивы абсцисс и ординат первого графика;

x2, y2 - массивы абсцисс и ординат второго графика;

...

xn, yn - массивы абсцисс и ординат n-ого графика.

Определим интервал изменения x [-6,28;6,28], шаг-0,02. Теперь сформируем массивы значений функций Y , Z, V .

Для построения заданных кривых в одних координатных осях необходимо в качестве аргументов функции plot попарно, через запятую, указать имя массива первого аргумента и имя массива первой функции, имя массива второго аргумента и имя массива второй функции и т. д. Обращение к функции plot будет иметь вид plot(x,y,x,z,x,v).

Листинг 4.4. Построение графиков нескольких функций в одних координатных осях с помощью команды plot

x=-6.28:0.02:6.28;y=sin(x/2);

z=cos(x);v=exp(cos(x));

plot(x,y,x,z,x,v);

Построить несколько графиков в одном окне можно и с помощью короткой записи функции plot(x,y), но перед обращением к функциям plot(x2,y2), plot(x3,y3), ..., plot(xn,yn) вызвать команду mtlb_hold(’on’), она заблокирует режим создания нового окна.

 

Как и в предыдущей задаче, прежде всего, определяем интервал и шаг изменения x [-6,28;6,28], 0,02 и формируем массивы значений функций Y , Z, V .

Однако применять будем краткую форму обращения к функции plot - plot(x,y), которая поочередно создаст первый, второй и третий график.

Для того, чтобы каждый раз при выполнении функции plot не создавалось новое графическое окно, перед ней будем выполнять команду mtlb_hold(’on’).

Листинг 4.5. Построение графиков нескольких функций в одних координатных осях с помощью команды mtlb_hold(’on’)

x=-6.28:0.02:6.28;

y=sin(x/2); z=cos(x); v=exp(cos(x));

plot(x,y);

mtlb_hold(’ on’);

plot(x,z);

mtlb_hold(’ on’);

mtlb_hold(’ on’);

plot(x,v);

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

Для формирования области в графическом окне служит команда plotframe:

plotframe(rect, tics [,grid, title, x-leg, y-leg, x, y, w, h])

где

rect - вектор [xmin, ymin, xmax, ymax], который определяет границы изменения x и y-координат области;

tics - вектор [nx, mx, ny, my], который определяет количество линий сетки по оси X (mx) и Y (my), величины nx и ny должны определять число подинтервалов по осям X и Y ;

grid - логическая переменная, которая определяет наличие (%t) либо отсутствие координатной сетки (%f). Этот параметр следует указывать для обеих осей, например, [%t,%t];

bound - логическая переменная, которая при значении true позволяет игнорировать параметры tics(2) и tics(4).

title - заголовок, который будет выводится над графической областью;

x-leg, y-leg - подписи осей графика X и Y ;

x, y - координаты верхнего левого угла области в графическом окне, w-ширина, h-высота окна.

Значения x, y, w, h измеряются в относительных единицах и лежат в диапазоне [0, 1].

После определения области в нее можно вывести график функции с помощью команды plot.

Допустим, что x изменяется на интервале [−10 : 10] с шагом 0,01. Сформруем массивы значений функций Y , Z, U, V .

Используя параметр rect как самостоятельную команду, задаем шаблон размера координатных осей каждой области построения кривой. Теперь ось X будет ограничена минимальным и максимальным значением x (зависит от конкретной функции), а ось Y для всех областей ограничивается значениями y -1 и 1.

Командой tics указываем, что на всех выводимых графиках, во всех областях на оси абсцисс, должно быть 11 основных и по 2 промежуточных деления, на оси ординат - 5 основных и по 10 промежуточных делений.

Для создания областей внутри графического окна используем функцию plotframe со всеми параметрами: прорисовыванием сетки комбинацией значений (%t) и (%f), выводом подписи графика и координатных осей, а также разметкой каждой из областей - массив, в котором первые два числа – координаты верхнего левого угла, а последние два - ширина и высота области.

Для формирования нового графика после каждого вызова функции plotframe выполняем функцию plot(x,y).

Листинг 4.6. Построение графиков нескольких функций в одном графическом окне, но каждого в своих координатных осях с помощью команды plotframe

x=[-10:0.01:10];

y=sin(2*x); z=cos(3*x); u=cos(sin(2*x)); v=sin(cos(3*x));

rect=[min(x),-1,max(x),1];

tics=[2,11,10,5];

plotframe(rect,tics,[%t,%t],["Function y=sin(2x)",..."X","Y"], [0,0,0.5,0.5]);

plot(x,y);

plotframe(rect,tics,[%f,%f],["Function y=cos(3x)",..."X","Y"], [0.5,0,0.5,0.5]);

plot(x,z);

plotframe(rect,tics,[%f,%f],["Function y=cos(sin(2x))",...X","Y"], [0,0.5,0.5,0.5]);

plot(x,u);

plotframe(rect,tics,[%t,%t],["Function y=sin(cos(3x))",..."X","Y"], [0.5,0.5,0.5,0.5]);

plot(x,v);

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

Обращение к ней имеет вид:

subplot(m,n,p) или subplot(mnp)

Выполнение функции приводит к тому, что графическое окно разбивается на m окон по вертикали и n окон по горизонтали, текущим окном становится окно с номером p.

Пусть x изменяется на интервале [−10 : 10] с шагом 0,01. Сформируем массивы значений функций Y , Z, U, V , W, R.

C помощью функции subplot разбиваем графическое окно на заданное количество областей. Определимся, что в каждом столбце по вертикали должно быть 3, а по горизонтали 2 области для вывода графиков.

Третье число в записи функции subplot указывает, в которую из областей (счет ведется по порядку_слева направо и сверху вниз) выводится график, формируемый функцией plot(x,y).

Листинг 4.7. Построение графиков нескольких функций в одном графическом окне, но каждого в своих координатных осях с помощью команды subplot

x=[-10:0.01:10];

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

u=cos(sin(x)); v=sin(cos(x));

w=exp(sin(x)); r=exp(cos(x));

subplot(3,2,1);

plot(x,y);

subplot(3,2,2);

plot(x,z);

subplot(3,2,3);

plot(x,u);

subplot(3,2,4);

plot(x,v);

subplot(3,2,5);

plot(x,w);

subplot(3,2,6);

plot(x,r);


 

А также другие работы, которые могут Вас заинтересовать

76312. Подколенная артерия, артерия голени, из топография, артериальная сеть коленного сустава 75.86 KB
  Подколенная артерия артерия голени из топография артериальная сеть коленного сустава. Подколенная артерия. Ветви: латеральная верхняя коленная артерия. genus superior lterlis к латеральной широкой и двухглавой мышцам бедра; медиальная верхняя коленная артерия.
76313. Нраужная подвздошная и бедренная артерии. Их топография, ветви и межсистемные анастомозы 16.28 KB
  Наружная подвздошная артерия a.iliaca externa, является продолжением a.iliaca communis опускается за брюшиной вдоль медиального края m.psoas major проходит под паховой связкой через lacuna vasorum на бедро под названием a.femoralis.
76316. Проблема коллатерального кровообращения и роль кафедры в ее разработке 28.98 KB
  Проблема коллатерального кровообращения и роль кафедры в ее разработке Коллатеральное кровообращениекк это процесс доставки крови по окольным путям кровотока в обход локальных нарушений проходимости магистральных сосудов. Основным источником развития коллатералей являются анастомозы сосудов.Вовлечение в окольный кровоток максимального колва сосудов до 5 суток 2. Стабилизация кк 28 мес Признаки сформировавшихся сосудовколлатералий: равномерное расширение просвета на протяжении всего анастомоза крупноволокнистая извилистость...
76317. Коллатерали — боковые или обходные пути кровотока 13.64 KB
  Для понимания коллатерального кровообращения необходимо знать те анастомозы которые соединяют между собой системы различных сосудов по которым устанавливается коллатеральный ток крови в случае их непроходимости. Анастомозы между ветвями крупных артериальных магистралей снабжаюших основные части тела аорта сонные артерии подключичные подвздошные артерии и др. Анастомозы между ветвями одной крупной артериальной магистрали ограничивающиеся пределами ее разветвления называются внутрисистемными. Не менее важны анастомозы между системами...
76318. Круги кровообращения. Особенности строения венозного русла печени 68.57 KB
  Большой круг кровообращения: Начало: левый желудочек сердца Аорта; оттуда кровь распространяется по всему телу. Верхняя и нижняя полая вены Правое предсердие Из правого предсердия кровь поступает в правый желудочек через трикуспидальный клапан откуда начинается малый круг кровообращения. Кровь поступает в желудочки; створки клапанов закрываются. Кровь проталкивается в аорту и лёгочный ствол.
76319. Особенности кровообращения у плода. Изменение кровообращения после рождения 51.86 KB
  Артериальная кровь к зародышу поступает из плаценты по пупочной вене в теле зародыша расположенной в серповидной связке печени. Плацентарная кровь поступает в нижнюю полую вену и смешивается с венозной кровью нижней половины тела плода. Эта смешанная кровь поступает в правое предсердие. По верхней полой вене к сердцу поступает венозная кровь от головы шеи и верхних конечностей.
76320. Микроциркуляторное русло, его звонья и особенности строения. Сосудистая сеть почки 6.22 KB
  Сосудистая сеть почки звенья микроциркуляторного русла: артериальное капиллярное 3венозное Артериальное звено представлено артериолами и прекапиллярами артериолы имеют 3 стенки: интимамедиа и адвентиция у прекапилляров в месте отхождения от артериол есть прекапиллярный сфинктер Капиллярное звено капилляры с непрерывной эндотелиальной выстилкой капилляры фенестрированныев почечном тельцеэндокринных органах слмзистой жктсосудистом сплетении мозга капилляры синусоидныев печениселезенкекостном мозе и коре надпочечников Венозное...