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);


 

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

18529. Меры погрешности решения 359 KB
  Меры погрешности решения Пусть x вычисленное решение СЛАУ Ax=b. Существуют две общеупотребительные меры погрешности в х: вектор ошибки е = х х 1 и невязка r = b Ax = Ax x = Ae
18530. Основні прийоми роботи та підготовки документів в системі MATHCAD 411.5 KB
  Мат. моделювання в САПР. Основні прийоми роботи та підготовки документів в системі MATHCAD. Основні прийоми роботи та підготовки документів в системі MATHCAD. Методичні матеріали до лабораторної роботи № 1 з курсу: €œМатематичне моделювання в САПР€ для студенті
18531. Розв’язування звичайних диференціальних рівнянь в системі MATHCAD 391.5 KB
  Розв’язування звичайних диференціальних рівнянь в системі MATHCAD Розв’язування звичайних диференціальних рівнянь в системі MATHCAD. Методичні матеріали до лабораторної роботи № 2 з курсу: €œМатематичне моделювання в САПР€ для студенті
18532. Розв’язування диференціальних рівнянь з частинними похідними в системі MATHCAD 414.5 KB
  Розв’язування диференціальних рівнянь з частинними похідними Розв’язування диференціальних рівнянь з частинними похідними в системі MATHCAD. Методичні матеріали до лабораторної роботи № 3 з курсу: €œМатематичне моделювання в САПР€ д
18533. Символьные последовательности 18.96 KB
  Лабораторная работа № 3. Тема Символьные последовательности Если для решения задачи достаточно просмотреть исходный текст один раз то обычно текст вводится и обрабатывается посимвольно и не хранится целиком в памяти в виде массива. В программе используется перем
18534. Одномерные массивы. Упорядоченная совокупность однотипных данных 20.3 KB
  Лабораторная работа № 4. Одномерные массивы Массив используется когда дана упорядоченная совокупность однотипных данных чисел символов строк символов и т.д. с ограниченным числом элементов. Примеры описаний массивов: char text[10];/ массив из 10 символов/ int a[50];/ мас...
18535. Двумерные массивы (матрицы) 29.09 KB
  Лабораторная работа № 5. Двумерные массивы матрицы Массивы в С могут быть не только одномерными т.е. когда данные визуально выстроены в одну линию. Массивы также могут быть и двумерными трехмерными и так далее. С компиляторы поддерживают как минимум 12ти мерные масси...
18536. Подпрограммы (функции) 197.24 KB
  Лабораторная работа № 6 Функции Вы уже знакомы с некоторыми библиотечными функциями такими как printf scanf getchar putchar gets sin cos ... . Теперь нужно знать как создавать свои собственные функции. Функция – это самостоятельная единица программы предназначенн...
18537. Символьные строки и функции обработки строк 223.01 KB
  Лабораторная работа № 7 Символьные строки и функции обработки строк Строка символов это последовательность символов произвольной длины завершающаяся нульсимволом все биты в байте нулевые. Строковые константы записываются в кавычках например: Как Ва...