Базовые средства матпакета Scilab
.pdf--> // Построение различных видов графиков функции двух переменных
--> // zM = xM.^2 + 2 * yM.^2
-->
-->// Формирование двух матрицxMиyM
--> [xM, yM] = meshgrid(-4 : 4, -4 : 4) xM =
0.1. 2. 3.
0.1. 2. 3.
0.1. 2. 3.
0. |
1. |
2. |
3. |
|
|
|
|
|
|
--> |
|
|
|
|
|
|
|
|
|
yM |
= |
|
|
|
|
|
|
|
|
-3. -3. -3. -3. |
|
|
|
|
|
||||
-2. -2. -2. -2. |
|
|
|
|
|
||||
-1. -1. -1. -1. |
|
|
|
|
|
||||
|
0. |
0. |
0. |
0. |
|
|
|
|
|
--> |
|
|
|
|
|
|
|
|
|
--> // |
Формирование матрицыzM |
|
|
|
|
||||
-->deff('k = |
f(x, y)', 'k = x.^2 + 2 * y.^2'); |
|
|||||||
-->zM = f(xM, yM) |
|
|
|
|
|
|
|||
zM |
= |
|
|
|
|
|
|
|
|
|
48. |
41. |
36. |
33. |
32. |
33. |
36. |
41. |
48. |
|
34. |
27. |
22. |
19. |
18. |
19. |
22. |
27. |
34. |
|
24. |
17. |
12. |
9. |
8. |
9. |
12. |
17. |
24. |
|
18. |
11. |
6. |
3. |
2. |
3. |
6. |
11. |
18. |
|
16. |
9. |
4. |
1. |
0. |
1. |
4. |
9. |
16. |
|
18. |
11. |
6. |
3. |
2. |
3. |
6. |
11. |
18. |
|
24. |
17. |
12. |
9. |
8. |
9. |
12. |
17. |
24. |
|
34. |
27. |
22. |
19. |
18. |
19. |
22. |
27. |
34. |
|
48. |
41. |
36. |
33. |
32. |
33. |
36. |
41. |
48. |
--> |
|
|
|
|
|
|
|
|
|
--> // |
Формирование векторовxVиyV |
|
|
|
|||||
-->x2 = -4 : 4; y2 = -4 : 4; |
|
|
|
|
|||||
--> |
|
|
|
|
|
|
|
|
|
--> // |
Построение двумерных графиков |
|
|
|
|||||
-->scf(1); mesh(xM,yM,zM) |
// Сетчатыйграфик(окно 1) |
-->scf(2);plot3d(xV, yV, zM)//График точек, соединенных отрезками |
|
|
-->//прямых(окно 2) |
|
|
-->scf(3);surf(xM,yM,zM) |
// График сплошной поверхности (окно 3) |
|
-->scf(4); contour(xV, yV, |
zM, 7) // График контурных линий (окно |
4) |
Рис. 1.4.1-16. Построение различных видов графиков
Результатом выполнения функции meshявляется построение в окне
1графика поверхности в виде сетки(рис.1.4.1-17).
101
Рис. 1.4.1-17 Результат выполнения в окне 1функцииmesh(xM,yM,zM)
В результате выполнения функцииplot3d(рис.1.4.3-17) происходит построение в окне2графика поверхности, где точки соединены отрезками прямой, а соответствующая заливка квадратов делает изображение фигуры объемной(рис. 1.4.3-18). Функцииplot3dимеет формат:
plot3d(xV,yV,zM),
гдеxVи yV–вектора целых чисел, указывающие диапазон изменения параметров функции;zM–матрица действительных чисел значений функции, описывающей поверхность
Рис. 1.4.3-18. Результат выполнения в окне 2функцииplot3d(xV,yV,zM)
102
Функция surfвыполняет построение в окне 3 графикасплошной поверхности(рис. 1.4.3-19) и имеет следующий формат:
surf(xM,yM,zM),
гдеxMи yM–массивы целых чисел, указывающие диапазон изменения параметров функции;zM–матрица действительных чисел значений функции, описывающей поверхность z(x,y).
Рис. 1.4.1-20 Результат выполненияв окне 3функции surf(xM,yM,zM) Графикфункции двух переменных может быть представлен в виде
контурных линий(контурные линии – это линии, в каждой точке которых значение функции одинаково). Для этого в Scilab используется функция contour, имеющая формат:
contour(xV,yV,zM,n),
гдеxVиyV–массивыцелых чисел, указывающие диапазон изменения параметров функции;zM–матрица действительных чисел значений функции, описывающей поверхность z(x,y);n–целочисленныйпараметр, который устанавливает количество контурных линий.
Функцияcontourпозволяет не только построитьв окне 4 график контурных линий, но и нанести в отдельных точках контурных линий значения функции (рис. 1.4.1-21). В этом примере получен график из 7-ми контурных линий, на каждой из которых отмечены значения функции.
103
Рис. 1.4.1-21 Результат выполнения в окне 4 функцииcontour(xV,yV,zM,7)
С использованием функцииmtlb_hold('on')(эта функция уже была применена раньше при построении графиков функции от одной переменной) в одном графическом окне можно построить несколько графиков функций от двух переменных. Например, построим в одном окне графики двух функций
(рис.1.4.1-22).
104
Рис.1.4.1-22 Построение двух графиков в одном графическом окне
С использованием функцииsubplotв одном графическом окне можно расположить несколько графиков. В этом случае перед построением каждого графика выполняется функцияsubplot(n,m,k),в которой указывается область построения текущего графика.
105
Рис.1.4.1-23. Построения в одном окне 4-х графиков
На рис.1.4.1-23 приведены командные строки, позволяющие в одном окне произвести построение четырех графиков. Для этого графическое окно разбито на четыре области (две строкиn=2и два столбцаm=2). Последний параметр (k)указывает номер области построения текущего графика. Нумерация областей осуществляется по строкам, начиная с 1. Результат выполнения функций subplotприведен на рис. 1.4.3-24.
Рис. 1.4.1-24. Построение 4-х графиков в одном графическом окне
Для построения графика в полярных координатах применяется функцияpolarplot, имеющая в простейшем случае два обязательных параметра:
polarplot(phi,ro),
где:phi–диапазон значений угла;ro–функция от полярного угла.
106
На рис.1.4.1-25 приведен пример построения в полярных координатах графика функцииro=4*cos(3*fi), где fi(полярный угол) изменяется на интервале[0;2π]с шагом0.01.
--> // РИС14125: Построение графика в полярной системе координат
-->
--> fi=0:0.01:2*%pi; -->polarplot(0:0.01:2*%pi,4*cos(3*fi))
Рис.1.4.1-25 Построение графика функции в полярнойсистеме координат
-->// РИС14126:
-->// остроение 2D-гистограммы
--> -->hist3d(10*rand(10,10));
Рис.1.4.1-26 Построение 2D-гистограммы в виде 2D-графика с помощью функцииhist3d
Подробную информацию о рассмотренных выше графиках и других возможностях визуализации вычислений можно получить в справочной
107
системе пакета Scilab. Если вас интересует описание и примеры использования функции, название которой вы уже знаете, то достаточно в командной строке ввести, например,helphist3d,или ввести имя функции в
окнеСправочная система.
ВПриложении 1.4, табл. 1.4.1-2 представлены описания всех графических функций, используемых в этом разделе. Более полную справочную информацию о графических средствах и функциях Scilabможно получить на сайтеscilab.org[13].
Глобальное свойство графических объектов
Свойство графических объектов – GlobalProperty (ГлобальноеСвойство) – это необязательный аргумент, который может использоваться в графических функциях и позволяет осуществить глобальную настройку построения всех новых линий и поверхностей. Он может быть указан вplot или surf виде следующих пар:
'ИмяСвойства1',ЗначениеСвойства1,…,'ИмяСвойстваn',ЗначениеСвойстваn,
где:ИмяСвойстваn должно быть строкой, не чувствительной к регистру и определяющей то свойство, которое необходимо установить, а ЗначениеСвойстваn может быть вещественным, целочисленным или строкой (скаляром или матрицей) в зависимости от типа используемого свойства. Например, чтобы определить красную (цвет) штрихпунктирную линию с длинными штрихами (стиль линии) с маркерами в виде ромба (маркер), последовательность должна быть следующей:
'Color','red', 'LineStyle','-.', 'Marker','diamond'.
ВПриложении 1.4.1, табл.1.4.1-3 приведен полный список
ИмёнСвойстви их возможные значения – ЗначенияСвойства, которые можно установить при использовании plot или surf.
Иногда можно использовать два ИмениСвойства, соответствующих одному свойству: первое из них используется по умолчанию в Matlab, а второе имя по умолчанию используется в Scilab (например, Color или Foreground для линии).
На рис. 1.4.1-27 рассмотрен пример, в котором для построения двух графиков функций в одном графическом окне учтены и прокомментированы все описанные выше свойства графических объектов. Обратите внимание, что перед построением графика проведена очистка окнаОбозревателя переменных, Командного окнаиГрафических окон, а установка свойств графика (тип и ширина линии, тип точки (маркер) размер шрифта и др.) выполнена с использованием параметров функции plot, что является альтернативой средств графического редактора.
108
--> exec("РИС14127.sce", 0)
109
Рис.1.4.1-27. Построение и отображение графиков двух функций с использованием графических средств Scilab
Примеры построения содержательных графиков
Графические средства Scilabиспользуются для изучения многих дисциплин [14]. Приведем несколько примеров, иллюстрирующих построение графиков с использованием описанных выше функций, при изучении дисциплины «Теория электрических цепей» [15, 16, 17].
Построить два периода графика синусоидального напряжения
( ) = ( + )B,с амплитудойUm=5 В, угловой частотойω=4рад/си
сначальной фазойφ=300(рис.1.4.1-28).
--> exec("РИС14128.sce", 0)
110