Главная / Информатика / Визуализация результатов расчетов в Scilab

Визуализация результатов расчетов в Scilab

ФБГОУВПО «Мордовский Государственный педагогический институт им. М.Е.Евсевьева»



Физико-математический факультет



Кафедра информатики и вычислительной техники









Реферат

По теме: «Визуализация результатов расчетов в Scilab. Построение двух- и трехмерных графиков в Scilab. Функции plot, plot2d, plot3d, contour, contourf. Создание графических приложений: работа с графическим окном, динамические интерфейсные элементы.»
















Выполнил: студент группы МДМ-214

физико-математического факультета

Смолькина Юлия

Проверила: Кормилицына Т.В.






Саранск 2016

Введение


Scilab – мощная интерактивная система автоматизации инженерных, научных и математических расчетов, построенная на расширенном представлении и применении матричных операций.

Пакет разработан Scilab Group INRIA-Rocquencourt Metalau Project. Свободно распространяемую версию пакета вместе с полной документацией на английском языке в формате pdf можно получить по адресу http://www.scilab.org. http://teacher.ucoz.net/index/rabota_v_pakete_scilab/0-9 сайт Алексеева

С 1994 года распространяется в виде исходных кодов через интернет. Сейчас Scilab поддерживается компанией Scilab Consortium, созданной в 2003 году. Scilab поддерживает язык программирования высокого уровня для организации технических вычислений.

Scilab позволяет работать с элементарными и большим числом специальных функций (Бесселя, Неймана, интегральные функции), имеет мощные средства работы с матрицами, полиномами (в том числе и символьно), производить численные вычисления (например, численное интегрирование) и решение задач линейной алгебры, оптимизации и симуляции, в его состав входят мощные статистические функции, а также средства для построения и работы с графиками.


Вот некоторые возможности системы:

В области математических вычислений:

матричные, векторные, логические, условные операторы;

символьные вычисления;

полиномиальные и рациональные функции;

элементарные и специальные функции;

полиномиальная арифметика.

В области реализации численных методов:

решение дифференциальных уравнений;

численное интегрирование;

поиск корней нелинейных алгебраических уравнений;

оптимизация функций нескольких переменных;

одномерная и многомерная интерполяция;

решение задач математической статистики.

В области программирования:

свыше 500 встроенных математических функций;

интерфейс к Fortran, Tcl/Tk, C, C++, Java, LabView.

В области визуализации результатов расчетов и графики:

возможности создания и редактирования двухмерных и трехмерных графиков;

проведение визуального анализа данных.

Обработка сигналов

Параллельная работа

Статистика

Работа с компьютерной алгеброй


Scilab имеет схожий с MATLAB язык программирования, в составе имеется утилита, позволяющая конвертировать документы Matlab → Scilab.

Программа доступна для различных операционных систем, включая GNU/Linux и Microsoft Windows.

Отличия от некоторых коммерческих программ:

Бесплатность

Маленький размер (дистрибутив занимает менее 120Мб против более чем двухгигабайтного пакета MATLAB)

Scilab состоит из 3-х частей:

интерпретатор

библиотека функций (Scilab-процедуры)

библиотека Fortran и С процедур































1.Основы работы в Scilab. Математические выражения. Операторы. Функции. Форматированный вывод. Главное меню системы.


1.1.Работа с Scilab в режиме диалога


Сеанс работы с с Scilab по аналогии с Matlab будем называть сессией (session). В сессии имеются строки ввода, вывода и сообщений об ошибках. Входящие в сессию определения переменных и функций, расположенные в рабочей области памяти, можно записать на диск, используя команду save. Команда load позволяет считать с диска данные рабочей области. Фрагменты сессии можно оформить в виде дневника с помощью команды diary.

Основное окно системы Scilab – это командное окно (Command Window). В нем можно вводить команды, и в него Scilab выводит результат выполнения этих команд и свои служебные сообщения.

Очистить командное окно можно, нажав клавишу F2.

Система Scilab позволяет любые вычисления выполнять в интерактивном режиме. Работа с системой в этом случае реализуется по принципу «задал вопрос – получил ответ». Пользователь набирает на клавиатуре вычисляемое выражение, редактирует (при необходимости) его и завершает ввод нажатием клавиши Enter.

Если система готова к вводу данных, в командном окне появляется символ --> в начале строки. Данные вводят с помощью простейшего строчного редактора. Для блокировки вывода результата вычислений некоторого выражения после него нужно поставить ; (точку с запятой). Если не указать имя переменной, которой надо присвоить значение результата вычислений, то Scilab присвоит этой переменной имя ans. В качестве знака присваивания в системе используется знак равенства =. Встроенные функции (например, sin) вводят строчными буквами и указывают их аргументы в круглых скобках. Результат вычислений выводится в строках вывода (без знака -->). Переменные a и A в среде Scilab – это разные переменные.

Примеры:

--> v=[1 2 3 4]

v =

1. 2. 3. 4.

--> m=[1, 2; 3, 4]

m =

1. 2.

3. 4.

--> sin(v)

ans =

0.8414750 0.9092974 0.1411200 -0.7568025

--> 3*v

ans =

3. 6. 9. 12.

Две записи вектора v=[1 2 3 4] и v=[1, 2, 3, 4] являются идентичными.

В некоторых случаях вводимое математическое выражение может не уместиться в одной строке. Часть выражения можно перенести на новую строку с помощью знака двоеточие, например:

--> s=1+2+1/3+..

+4

s =

7.3333333


1.2.Математические выражения в Scilab


Математические выражения состоят из чисел, констант, переменных, операторов, функций и спецзнаков. Числа могут быть целыми, дробными, с фиксированной и плавающей точкой. Примеры: -3 2.453 123.12е-3. Последнее число – это 123.12*10-3, т.е. 0,12312. Для разделения целой и десятичной части числа используется точка. Числа могут быть вещественными и комплексными. Кроме того, в Scilab существуют так называемые системные переменные и символьные константы:

%i – мнимая единица (%i=hello_html_m5d5e39b9.gif);

%pi – число π=3,1415927;

%eчисло е=2,71828184;

%eps – 2.22d-16;

%inf – значение машинной бесконечности;

ans – переменная, хранящая результат последней операции;

%nan – указание на нечисловой характер данных (not-a-number).

Примеры:

--> 1/0

! – error 27

division by zero

--> 0/0

! – error 27

division by zero

Системные переменные нельзя переопределить, например, переменной %eps нельзя присвоить другое значение:

-->%eps = 0.1

! – error 13

redefining permanent variable


Символьная константа – это цепочка символов, заключенная в апострофы, например, ‘Hello’.

В Scilab наглядность описания сложных выражений достигается с помощью текстовых комментариев, которые вводят с помощью символов //.

Переменная в Scilab может иметь имя, содержащее сколько угодно символов, но система запоминает и идентифицирует только первые 24 символа. Имя должно начинаться с буквы и может содержать буквы, цифры и символ подчеркивания _.

В памяти компьютера переменные занимают определенное место, называемое рабочим пространством (Workspace). Для очистки рабочего пространства используют функцию clear:

clear – уничтожение определений всех переменных;

clear x – уничтожение определения переменной x;

clear a, b, c – уничтожение определений нескольких переменных.

Примеры:

--> v=[1 2 3 4 5];

--> clear v

--> v

!- - error 4

undefined variable : v

Большинство операций в Scilab являются матричными операциями, а соответствующие им операторы относятся к матричным операторам. Например, с помощью операторов умножения * и деления / вычисляют произведение и частное от деления двух массивов (векторов или матриц). Есть ряд спецоператоров, например, оператор \ используют для деления справа налево, а операторы .* и ./ – для поэлементного умножения и деления массивов.

Примеры:

--> v1=[2 4 6 8]; v2=[1, 4, 12, 24]; p=v1/v2, t=v1.*v2, r=v1./v2, h=v1.\v2

p =0.3826323

t = 2 16 72 192

r = 2. 1. 0.5 0.3333333

h = 0.5 1. 2. 3.

-->(2*1+4*4+6*12+8*24)/(1^2+12^2+4^2+24^2)

ans =0.3826323

Обратите внимание на результат операции:

-->x=[1 2 3 4 5 6];y=1/x

y =

0.0109890

0.0219780

0.0329670

0.0439560

0.0549451

0.0659341

В данном случае вычисляются не величины, обратные элементам вектора х, а каждый элемент вектора х делится на сумму квадратов всех элементов вектора. Результат же операции y=x^(-1) дает то, что надо:

-->x=[1 2 3 4 5 6];y=x^ (-1)

y = 1. 0.5 0.3333333 0.25 0.2 0.1666667


Функции – это имеющие уникальные имена подпрограммы, выполняющие определенные преобразования над своими аргументами и при этом возвращающие результаты этих преобразований.

Функции (макросы) в Scilab похожи на те, что встречаются в других языках программирования. Функции могут иметь аргумент, сами являться аргументом другой функции, быть членом списка, участвовать в операциях сравнения, вызываться рекурсивно. Функция начинается со слова function и заканчивается словом endfunction.

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

function var=my_name(x1,...,xk),

где var - имя переменной, а xi - входные переменные.


Ниже приведен пример функции, вычисляющей сумму положительных элементов в массиве v.

function g=f(v)

s=0; n=length(v);

for i=1:n

if v(i)>0 then

s=s+v(i);

end

end

g=s;

endfunction

Для использования этой функции ее нужно сначала сохранить на диске в файле с именем f.sci, выполнить пункт меню Execute/Load into Scilab, а затем вызвать ее:

--> x=[1 2 5 -3 7 -9 12]; t=f(x)

t =

27

Если функция должна возвращать несколько значений, то ее надо определить в формате:

function[y1, y2, …] = func(x1,x2,…)

……………………. тело функции

endfunction

Здесь y1, y2, – список выходных аргументов, x1, x2, … – список входных аргументов, func – имя функции.

Функцию средствами пакета Scilab можно создать так:

С помощью команды deff.

Пример. Создадим в редакторе функцию с именем fun двух аргументов t и y, результатом которой будет трехмерный вектор, первый элемент которого равен t+y, второй элемент равен t-y, а третий элемент равен t*y. deff('[w]=fun(t,y)',[
'w(1)=t+y;';
'w(2)= t-y;'; 'w(3)= t*y;']) //Вызовем эту функцию q=fun(5,7)

В математических выражениях часто встречается оператор : (двоеточие), имеющий следующий формат:

Начальное_значение: Шаг: Конечное_значение

Если Шаг не указан, то считается, что он равен 1.

Примеры:

--> 1:3

ans =1. 2. 3.

--> j=10:-2:2

j =10. 8. 6. 4. 2.

--> x=1:.2:1.4, sin(x)

x =1. 1.2 1.4

ans = 0.8415470 0.9320391 0.9854497

Если в математическом выражении допущена ошибка или предписываемые вычисления некорректны, Scilab выводит в командное окно соответствующие сообщения. Для возвращения к ранее набранным строкам с целью их корректировки используют клавиши  и .

По умолчанию Scilab представляет результат вычислений с 8 значащим цифрами. Для того, чтобы контролировать количество выводимых разрядов числа на печать, можно использовать команду printf с заданным форматом.

Примеры:

-->c=678.5556696777888899 // Будет напечатано 8 цифр

c =678.55567

-->printf(“%4.8f”,c)

678.55566968

Аналогичный результат дадут команды printf(“%1.8f”,c), printf(“%5.8f”,c)

-->printf(“%4.1f”,c)

678.6

-->d=56.6789

-->printf(‘%3.6f’,d) // 6 знаков после запятой

56.678900


-->c=678.55566969;d=56.6789;

-->printf('%4.3f %4.1f',c,d)

678.556 56.7

Для завершения работы с системой можно использовать команды Quit и Exit.


1.3.Главное меню


Меню File

Команда New Scilab открывает новое окно Scilab, фактически пакет запускается повторно.

Команда Open открывает окно для загрузки созданного ранее файла, рисунка или модели.

Команда Load открывает окно для загрузки файлов, информация в которых хранится в виде машинных кодов, при их открытии в память компьютера загружаются определенные ранее переменные и функции.

Команда Save: сохранение всех определенных в данной сессии переменных и функций в виде файла с расширением sav или bin.

Команда Change Directory меняет текущий каталог.

Команда Get Current Directory выдает в командную строку имя текущего каталога.

Команды Print Setup и Print задают опции печати.

Команда Exit - выход из системы.

Пункт меню Edit предназначен для редактирования текста программ. С его помощью можно выделять, копировать, вставлять текст, очищать буфер обмена, просматривать список ранее введенных команд (History).

С помощью пункта Preferences можно при наличии возможности поменять язык в системе, цвет текста и заднего плана, восстановить прежние цвета, показать или скрыть кнопки панели инструментов, установить типы поддерживаемых форматов, выбрать фонт шрифта, очистить предысторию, очистить командное окно, вызвать консоль scilab и настроить ее.

Пункт меню Editor позволяет открыть окно редактора.

Пункт меню ? позволяет получить справку по системе Scilab и просмотреть демонстрационные примеры. В справочной системе информацию можно искать, воспользовавшись содержанием, в списке, упорядоченном по алфавиту, по ключевому слову или фразе.



2. Построение графиков plot, plot2D,plot3D


2.1.Построение графиков функций одной переменной


Пусть x принимает значения от 0 до 10 с шагом 0,1. Чтобы построить график функции y=sin(x), можно набрать следующую строку:

-->x=0:0.1:10; plot(x, sin(x))

Для построения графиков сразу нескольких функций (например, y1=sin(x); hello_html_m7c97e60.gif) в одном графическом окне можно воспользоваться разновидностью команды plot:

--> x=0:0.1:2*%pi; y1=sin(x); y2=sin(x)./(x+1); plot(x, y1, x, y2)

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

-->x=0:0.1:2*%pi; y1=sin(x); y2=sin(x)./(x+1); plot(x, y1), plot(x, y2)

Линии в этом случае будут одного цвета.

Очистить графическое окно можно операторами xbasc(), xclear() или clf().

Примеры:

-->xbasc(1:3) //очищаются три окна с номерами 1, 2 и 3.

-->xbasc([1,3,5]) // очищаются окна с номерами 1, 3 и 5.

Оператором xbasc() очищается текущее окно.

Уничтожаются изображения, а не сами окна.

Для построения графиков функций в разных графических окнах используют оператор xset.

Пример:

-->x=0:.1:2*%pi; y=sin(x); plot(x,y); xset('window',1); z=cos(x); plot(x, z)

Заголовок текущего окна можно изменить командой xname.

Пример:

-->xname('yyy')

В графическом окне есть своя панель меню, позволяющая открывать новые окна (File/New), записывать содержимое окна в родном формате .scg (File - Save), конвертировать в другие форматы (File - Export), загружать в окно картинки в формате .scg с диска (File - Load), печатать на принтере и др.

Команды меню Zoom и UnZoom служат для увеличения или уменьшения масштаба в графическом окне.

Команда меню 3D Rot позволяет вращать 3D-объекты.




В результате работы программы

x=[0:0.1:2*%pi]';

xbasc()

plot2d2(x,sin(x))

получим

hello_html_2f691600.gif

Добавить к графику сетку можно командой xgrid.

Синтаксис xgrid([style])

Параметры

style : целое число. Указывает на стиль изображения вспомогательной сетки. Это - цвет или тип черной штрихованной линии, предварительно задаваемый с помощью команды xset() для текущего графического окна.

Пример:

xbasc()

x=[0:0.1:2*%pi]';

plot2d(sin(x));

xgrid(2)

hello_html_m6f1427a9.png

Для редактирования графическое окно имеет специальный инструментарий, который содержится в разделе Edit главного меню окна

Figure Properties свойства графика;

Current Axes Properties – установка параметров осей координат;

Erase figure - стереть график;

Выполнив команду Figure Properties, мы получаем окно, в котором можем задать, что именно мы хотим редактировать: figure, axes, compound, polyline.

Выбрав вариант figure, мы можем поменять название графика, его размещение на экране (X position=0, Y position=0 – левый верхний угол); размеры графика, сжав его по любой из осей; задать цвет заднего плана, поменять цветовую гамму.

Выбрав редактирование осей axes, мы можем редактировать каждую из осей X, Y, Z: задать название оси (Label:); цвет (при этом меняется цвет у названия оси, сетки и разметки оси); задать размещение названия оси: наверху (: top) или внизу (: bottom) или в середине (: middle)– для оси X , слева, в середине или справа – для оси Y; цвет метки, угол поворота, ее размер, фонт, задать расстояние между линиями сетки, установить насечку между линиями, задать заголовок графика, его цвет, размер, стиль, установить цвета разметки осей, цвет внутренней части графика, размер и вид сетки. Пункты меню Aspect Isoview и Tight limits позволяют менять расположение графика относительно прямоугольной области, внутри которой он построен. Пункт меню Boxes позволяет задать рамку для этой области, Viewpoint – повернуть график на определенный угол.

Выбрав последовательно подпункты меню Figure Properties axes и compound, мы обнаруживаем подпункт polyline, в котором можем поменять вид и размеры маркеров и аппроксимировать наш график различными кривыми.

В меню File есть командa Copy to clipboard – копирование рисунка в буфер обмена, откуда потом его можно вставить в Word или другой текстовый редактор.

Рассмотрим другие варианты команды plot:

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

plot(x1, y1, s1, x2, y2, s2, …) – строит в одном графическом окне несколько графиков.

Пример:

-->x=-2*%pi:.1*%pi:2*%pi;

-->y1=sin(x);y2=sin(x).^2;plot(x,y1, '-m', x, y2, '-.+r')

График функции y1 строится сплошной фиолетовой линией, график функции y2 строится штрихпунктирной линией с точками в виде знака «+» красного цвета.


2.2.Графики в полярной системе координат


В полярной системе координат любая точка представляется как конец радиус-вектора, исходящего из начала системы координат, имеющего длину ρ и угол θ. Для построения графика функции ρ(θ) используется команда polarplot:

polarplot(theta, rho,[key1=value1,…,keyn=valuen]) – строит график, представляющий собой положение конца радиуса-вектора длиной rho и углом theta.

Пример: Построить графики двух функций: hello_html_m185e0091.gif

Программа:

fi=0:.01:2*%pi;

ro=3*cos(5*fi);ro1=3*cos(3*fi);

polarplot(fi,ro,style=color("red"));

polarplot(fi,ro1,style=color("blue")); hello_html_m45435e93.gif


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

Построить графики функций y=sin(x) и y1=cos(x) . Модифицировать масштаб координатных осей графика.

Сформируем массив Х приняв, что х изменяется в диапазоне [-8:8] с шагом 0,1, затем совместно сформируем массивы значений заданных функций с помощью следующей записи y=[sin(x); cos(x)].

С помощью функции plot2d построим графики функций y=sin(x) и y1=cos(x), установив значение параметра nax=[4,9,3,6]. Таким образом, ось X будет разбита 9 основными делениями (засечками), каждое основное 4 промежуточными, а ось Y соответственно - 6 и 3 (см. рис.).


x=[-8:0.1:8];

y=[sin(x); cos(x)];

plot2d(x,y',style=[color("red"),color("blue")],axesflag=1, nax=[4,9,3,6]);

hello_html_58ec099e.gif

axesflag - значение параметра keyn=valuen функции plot2d - определяет наличие рамки вокруг графика. Необходимо выделить следующие базисные значения этого параметра:

0 - нет рамки, нет изображения осей;

1 или 4 - изображение рамки, ось y слева (по умолчанию);

2 - изображение рамки, изображения осей нет;

3 - изображение рамки нет, ось y справа;

5 - изображение осей, проходящих через точку (0,0).

Построим графики функций y=sin(x) и y1=cos(x) с пересечением осей X и Y в точке (0,0) - значение параметра axesflag=5, выведем легенду с подписями для обеих кривых

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

y=[sin(x); cos(x)];

plot2d(x,y',axesflag=5, leg="sin(x)@cos(x)");

hello_html_m1cdce0fc.gif


2.3.Построение графиков трехмерных поверхностей


Для построения трехмерных графиков используют операторы plot3d, plot3d1 и mesh.

Обращение к ним следующее:

plot3d(x,y,z,[theta,alpha,leg,flag,ebox][keyn=valuen]),

plot3d1(x,y,z,[theta,alpha,leg,flag,ebox][keyn=valuen])


Здесь x - вектор - столбец значений абсцисс;

y - вектор - столбец значений ординат;

z - матрица значений функции;

theta, alpha - действительные числа, которые определяют в градусах сферические координаты угла зрения на график. Попросту говоря, это угол, под которым наблюдатель видит отображаемую поверхность;

leg - подписи координатных осей графика - символы, отделяемые знаком @. Например , 'X@Y@Z'.

flag – массив, состоящий из 3 целочисленных параметров [mode,type,box]. Здесь mode устанавливает цвет поверхности.

Значения параметра mode

>0 - поверхность имеет цвет «mode», выводится прямоугольная сетка.

0 - выводится прямоугольная сетка, заливка отсутствует (белый цвет).

<0 - поверхность имеет цвет «mode», отсутствует прямоугольная сетка.

По умолчанию, равен 2 - цвет заливки синий, прямоугольная сетка выводится.

type - позволяет управлять масштабом графика, по умолчанию имеет значение 2.

Значения параметра type

0 - применяется способ масштабирования, как у ранее созданной графики.

1 - границы графика указываются вручную с помощью параметра ebox.

2 - границы графика определяют исходные данные.

Box - определяет наличие рамки вокруг отображаемого графика. По умолчанию равен 4.

Значения параметра box

0 и 1 - нет рамки

2 - только оси, находящиеся за поверхностью

3 - выводится рамка и подписи осей

4 - выводится рамка, оси и их подписи.

ebox - определяет границы области, в которую будет выводиться поверхность, как вектор [xmin,xmax,ymin,ymax,zmin,zmax]. Этот параметр может использоваться только при значении параметра type=1.

keyn=valuen - последовательность значений свойств графика key1=value1,key2=value2,...,keyn=valuen, таких как толщина линии, ее цвет, цвет заливки фона графического окна, наличие маркера и др. Таким образом, функции plot3d (plot3d1) в качестве параметров необходимо передать прямоугольную сетку и матрицу значений в узлах сетки.

Примеры:

-->[x, y]=meshgrid([-3:0.15:3]); z=x.^2+y.^2; plot3d(x, y, z)

Задается опорная плоскость для построения трехмерной поверхности, переменные x, y меняются от –3 до 3 с шагом 0,15.

hello_html_6057d952.gif

xbasc()

[x, y]=meshgrid([-3:0.15:3]); z=x.^2+y.^2; plot3d(x, y, z,flag=[5,2,3])

Цвет заливкикрасный.

xbasc();[x, y]=meshgrid([-3:0.15:3]); z=x.^2+y.^2; plot3d(x, y,z,flag=[5,1,4], ebox=[-5,5,-4,4,-1,20])

hello_html_m6932af72.gif

xbasc()

t=-%pi:.3:%pi;

plot3d(t,t,sin(t)'*cos(t),35,45,'x@y@z',[5,2,4]);


hello_html_m5001334.gif

Для формирования прямоугольной сетки впервые в Scilab 4.0 появилась функция meshgrid. Обращение к ней имеет вид:

[X,Y[,Z]]=meshgrid(x,y[,z])

здесь x,y [,z] - массивы 2(3) исходных параметров X, Y (,Z), указываемые через запятую; X, Y [,Z] - матрицы в случае 2 и массивы в случае 3 входных величин.


После формирования сетки вывести в нее графику можно с помощью функции surf либо mesh. Так же, как и в случае с функциями plot3d и plot3d1, surf строит поверхность, заливая каждую ячейку цветом, который зависит от конкретного значения функции в узле сетки, а mesh заливает ее одним цветом.

Таким образом, mesh является полным аналогом функции surf со значением параметров Сolor mode=индекс белого цвета в текущей палитре цветов и Сolor flag=0.


-->[x, y]=meshgrid(-2:0.2:2, -3:.2:3); z=x.^2+y.*sin(x); mesh(x,y,z)


hello_html_5b3cbdaa.gif

-->[x, y]=meshgrid(-2:0.2:2, -3:.2:3); z=x.^2+y.*sin(x); surf(x,y,z)

hello_html_345024a4.gif

Программа, приведенная ниже, показывает, как можно в одном окне построить графики двух трехмерных функций (оператор mtlb_hold('on');). Правда, и без этого оператора график остается таким же.

[x y]=meshgrid(-2:0.2:2,-2:0.2:2);

z=3*x.^2+4*y.^2-1;

z1=-3*x.^2-4*y.^2-1;

surf(x,y,z);

mtlb_hold('on');

mesh(x,y,z1);

hello_html_m4d2e8a4f.gif

Сферу можно построить так:

u = linspace(-%pi/2,%pi/2,40);

v = linspace(0,2*%pi,20);

X = cos(u)'*cos(v);

Y = cos(u)'*sin(v);

Z = sin(u)'*ones(v);

plot3d2(X,Y,Z);

Оператор v = linspace(0,2*%pi,20);задает вектор v, состоящий из 20 значений с шагом π/10.


hello_html_4643d4ca.gif

Замена последней строки программы на plot3d3(X,Y,Z); дает

hello_html_m7f5490c6.gif



2.4.Оформление и комбинирование графиков


После того, как график построен, Scilab позволяет выполнить его форматирование.

Для установки над графиком титульной надписи используется команда title

title(‘string’)

Пример: -->title('График функции sin(x)')

clc

xbasc()

x=1:.1:4;plot(x,sin(x))

xtitle("График функции y=f(x)", "Ось X","Ось Y")

hello_html_m3d1868ed.gif

Для установки надписей возле осей x, y и z используются команды

label(‘string’):

xlabel(‘Ось Х’)

ylabel(‘Ось Y’)

zlabel(‘Ось Z’)

Для создания легенды используются различные варианты команды legend.

Одна из них:

legend([‘string1’,’string2’,’string3’,….],a=pos)

Если pos=1, то легенда помещается в верхний правый угол,

pos=2, то в левый верхний угол,

pos=3, то в левый нижний угол,

pos=4, то в нижний правый угол,

pos=5, легенда перетаскивается мышью.

Пример: -->legend(['sin(x)';'cos(x)';'sin(x)'],a=3);

Для расположения нескольких графиков в одном окне без наложения их друг на друга используется команда subplot. Она должна стоять до оператора построения графика.

subplot(m,n,p) или subplot(mnp) : m окон по горизонтали, n – по вертикали, p – номер окна, в которое будет выводиться текущий график (нумерация ведется по строкам).

clf reset удаляет все подокна и возвращают графическое окно в обычное положение.

Пример.

x=1:.1:3;

subplot(211),plot(x,sin(x));subplot(212),plot(x,cos(x))

hello_html_7ab18da8.gif






2.5.Построение графиков в виде ступенчатой линии


Для изображения графика в виде ступенчатой линии в Scilab существует функция plot2d2(x,y). Она полностью совпадает по синтаксису с функцией plot2d. Главное отличие состоит в том, что X и Y могут быть независимыми друг от друга функциями, важно лишь, чтобы массивы X и Y были разбиты на одинаковое количество интервалов.

ЗАДАЧА

Имеются детальные наблюдения за ростом народонаселения на планете за период с 1947 по 2006 годы, млн. чел. Построить график, отражающий динамику процесса на основании данных 1947, 1958, 1970, 1980, 1999, 2006 года.

Поэлементно введем массивы X и Y и воспользуемся функцией plot2d2(x,y):

x=[1947 1958 1970 1980 1999 2006];

y=[2.003 3.1 3.6 4.7 5.2 5.4];

plot2d2(x,y);

hello_html_m30cd22d3.gif

Гистограмму можно построить с помощью оператора histplot.

Пример:

histplot([-4.5:0.25:4.5],rand(1,20000,'n'),style=2);

deff('[y]=f(x)','y=exp(-x.*x/2)/sqrt(2*%pi);');

x=-4.5:0.125:4.5;x=x';plot2d(x,f(x),26,"000");

titre= 'macro histplot : (normalized) histogram plot';

xtitle(titre,'C (Classes)','N(C)/(Nmax length(C))');

legends(['gaussian random sample histogram' 'exact gaussian density'],[2 26],1)

hello_html_m32bd984d.gif

Для построения трехмерных гистограмм в Scilab используется функция hist3d:

hist3d(f,[theta,alpha,leg,flag,ebox])

Здесь f - матрица (m:n), задающая гистограмму f (i , j)=F( xi,yj) Параметры theta,alpha,leg,flag,ebox управляют теми же свойствами, как и у функции plot3d.

ЗАДАЧА. Построить трехмерную гистограмму при помощи команды hist3d.

Для формирования матрицы входных данных воспользуемся командой rand. Напомним, чтобы создать матрицу размером (m,n), необходимо использовать конструкцию rand(m,n)

Полученная гистограмма изображена на рис.

hist3d(9.7*rand(10,10),20,35);

hello_html_m2656d8a1.gif






































Заключение



Надеюсь, функционала, рассмотренного на протяжении всей работы, будет достаточно для решения многих задач, а также для того, чтобы черпать дальнейшие сведения из документации — ведь мы уже изучили такие вещи, благодаря которым Scilab становится не просто «вычислялкой» отдельных небольших примеров, а настоящей «средой программирования с математическим уклоном», позволяющей создавать свои собственные математические «типы данных» — числовые системы, функционалы и прочая и прочая — и полноценные программные модули, которые могут использовать весь встроенный (или также собственноручно достроенный) функционал Scilab.













































Литература



1. Ярушкина Н.Г., Ястребова Н.Н., Чекина А.В. Нечеткие интеллектуальные системы в среде SciLab 

2. М.И.Павлова. Руководство по работе с пакетом SCILAB
3.
Е.Р.Алексеев, О.В.Чеснокова. Scilab - теория и практика на русском языке
4.
Е.Р.Алексеев, О.В. Чеснокова, Е.А. Рудченко. Scilab. Решение инженерных и математических задач. М., ALT Linux, Бином, 2008.
5.
Константин Носов. Scilab: серьезная математика, доступная всем.
6.
И.С. Тропин, О.И. Михайлова, А.В. Михайлов. Численные и технические расчеты в среде Scilab. (ПО для решения задач численных и технических вычислений). М., 2008.

Визуализация результатов расчетов в Scilab
  • Информатика
Описание:

Scilab – мощная интерактивная система автоматизации инженерных, научных и математических расчетов, построенная на расширенном представлении и применении матричных операций.

Пакет разработан Scilab Group INRIA-Rocquencourt Metalau Project. Свободно распространяемую версию пакета вместе с полной документацией на английском языке в формате pdf можно получить по адресу http://www.scilab.org. http://teacher.ucoz.net/index/rabota_v_pakete_scilab/0-9 сайт Алексеева

С 1994 года распространяется в виде исходных кодов через интернет. Сейчас Scilab поддерживается компанией Scilab Consortium, созданной в 2003 году. Scilab поддерживает язык программирования высокого уровня для организации технических вычислений.

Автор Смолькина Юлия Евгеньевна
Дата добавления 08.11.2016
Раздел Информатика
Подраздел Конспекты
Просмотров 64
Номер материала MA-068383
Скачать свидетельство о публикации

Оставьте свой комментарий:

Введите символы, которые изображены на картинке:

Получить новый код
* Обязательные для заполнения.


Комментарии:

↓ Показать еще коментарии ↓