kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

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

Нажмите, чтобы узнать подробности

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

Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Наладить дисциплину на своих уроках.
Получить возможность работать творчески.

Просмотр содержимого документа
«Визуализация результатов расчетов в Scilab.»




РЕФЕРАТ



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






































Содержание



Введение 3

1.Основы работы в Scilab 6

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

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

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

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

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

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

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

Заключение 22

Список использованных источников 23







Введение

Scilab (/ˈsaɪlæb/) – пакет прикладных математических программ, предоставляющий открытое окружение для инженерных (технических) и научных расчётов. Это самая полная общедоступная альтернатива MATLAB.

С 1994 года распространяется вместе с исходным кодом через Интернет. В 2003 году для поддержки Scilab был создан консорциум Scilab Consortium. Сейчас в него входят 25 участников, в том числе Mandriva, INRIA и ENPC (Франция).

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

Scilab был спроектирован как открытая система, и пользователи могут добавлять в него свои типы данных и операции путём перегрузки.

В системе доступно множество инструментов:

  • 2D и 3D графики, анимация

  • Линейная алгебра, разреженные матрицы (sparse matrices)

  • Полиномиальные и рациональные функции

  • Интерполяция, аппроксимация

  • Симуляция: решение ОДУ и ДУ

  • Scicos: гибрид системы моделирования динамических систем и симуляции

  • Дифференциальные и не дифференциальные оптимизации

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

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

  • Статистика

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

  • Интерфейс к Fortran, Tcl/Tk, C, C++, Java, LabVIEW

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

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

Для численных расчётов используются библиотеки Lapack, LINPACK, ODEPACK , Atlas и другие.

В состав пакета также входит Scicos – инструмент для редактирования блочных диаграмм и симуляции (аналог simulink в пакете MATLAB). Имеется возможность совместной работы Scilab с программой LabVIEW.

Программа доступна для различных операционных систем, включая Linux, Microsoft Windows и Mac OS X. Возможности Scilab могут быть расширены внешними программами и модулями, написанными на разных языках программирования. Программа имеет открытый исходный код, что позволяет как свободное коммерческое использование и распространение неизменённых версий, так и некоммерческое распространение измененных версий, которые должны включать в себя исходный код. Для коммерческого распространения измёненных версий необходимо согласование с INRIA.

Начиная с версии 5.0 программа распространяется под совместимой с GNU GPL 2 лицензией CeCILL.

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

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

  • Свободность (с версии 5.0).

  • Маленький размер – дистрибутив 4 версии занимал менее 20 МБ против более чем двухгигабайтного пакета MATLAB. Инсталлятор 5 версии (5.4.1) увеличился в объёме до 117 МБ.

  • Возможность запуска в консоли без использования графического интерфейса, в том числе в версии под Windows (в UNIX и Windows версиях MatLab-а эта возможность присутствует тоже). Это позволяет производить автоматизированные вычисления, есть пакетный режим.



1.Основы работы в Scilab



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



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

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

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

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

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



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



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

· %i – мнимая единица (%i= );

· %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.

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

--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=0n=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,…)

Здесь

fun - имя функции,

xi - входные аргументы функции (их m штук),

yi - выходные аргументы функции (их n штук).

 

Пример.

Вычисление факториала.

function [x]=fact(k)

k=int(k)

if k

x=1;

for j=1:k,x=x*j;end

endfunction

Наберем этот текст в любом текстовом редакторе и сохраним его в файле с именем fact.sci. Расширение *.sci является для Sclab "родным", но не обязательным. Затем следует вызвать эти файлы из Scilab c помощью команд getf(filename) или exec(filename,-1); Те же операции можно произвести с помощью команд меню File-getf или File-exec.

До вызова функции желательно проверить, не была ли уже загружена такая функция ранее. Для этого:

exists('fact')

Результат:

ans =

0.

После загрузки файла

--exec('C:\fact');

набираем

--x=fact(5)

x =

120

Пример:

function z=fun(x, y)

// Определение функции

z=x.^2 + y.^2;

endfunction

Сохраним эту функцию под именем fun.sci. После загрузки функции в Scilab мы можем обратиться к ней:

--fun(1,2)

ans =

 

Для создания временной задержки выполнения программы служит команда xpause, которая приостанавливает текущий процесс на число микросекунд, указанных в скобках

· хpause(microsecs)

 

Пример:

xbasc();

xset("color",12);

xstring(1,1,"Blue");

xpause(5.e6); // временная задержка на 5 секунд

xbasc();

xset("color",5);

xstring(0,1,"Red");

 

В результате мы видим в графическом окне вначале надпись "Blue", а затем она исчезает и мы видим сдвинутую по горизонтали надпись "Red".

Некоторые полезные функции Scilab для вычисления целой части числа:

int(1.9999)=1=int(1.1) int(-1.9999)=-1 int(-0.00001)=0

floor(1.5)=1=floor(1.9)=floor(1.1) floor(-1.1)=-2=floor(-1.8)

ceil(1.1)=ceil(1.9)=2 ceil(-1.9)=-1=ceil(-1.2)

fix(-1.2)=-1=fix(-1.7) fix(1.7)=1=fix(1.2)




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. Построение графиков функций одной переменной



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

Возьмем вначале простейший пример – построение графика синусоиды. Следует помнить, что MATLAB (как и другие СКМ) строит графики функций по ряду точек, соединяя их отрезками прямых, т. е. осуществляя линейную интерполяцию функции в интервале между смежными точками. Зададим интервал изменения аргумента х от 0 до 10с шагом 0.1. Для построения графика достаточно вначале задать вектор х = 0:0.1:10, а затем использовать команду построения графиков plot(sin(x)).

Вектор х задает интервал изменения независимой переменной от 0 до 10 с шагом 0.1. Почему взят такой шаг, а не, скажем, 1? Дело в том, что plot строит не истинный график функции sin(x), а лишь заданное числом элементов вектора х число точек. Эти точки затем просто соединяются отрезками прямых, т. е. осуществляется кусочно-линейная интерполяция данных графика. При 100 точках полученная кривая глазом воспринимается как вполне плавная, но при 10–20 точках она будет выглядеть состоящей из отрезков прямых.

Графики MATLAB строит в отдельных окнах, называемых графическими окнами. С первого взгляда видны отличия графического окна, от командного окна MATLAB. В главном меню окна появилась позиция Tools (Инструменты), которая позволяет вывести или скрыть инструментальную панель, видимую в верхней части окна графики на рис. 1. Средства этой панели (мы их рассмотрим полнее в дальнейшем) позволяют легко управлять параметрами графиков и наносить на них текстовые комментарии в любом месте.


Рисунок 1.  Пример построения графика синусоиды





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

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

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

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

Программа:

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


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

Построить графики функций 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]);

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







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 - выводится прямоугольная сетка, заливка отсутствует (белый цвет).

По умолчанию, равен 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) в качестве параметров необходимо передать прямоугольную сетку и матрицу значений в узлах сетки.

Примеры:

Программа, приведенная ниже, показывает, как можно в одном окне построить графики двух трехмерных функций (оператор 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);

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

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.


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




















Заключение


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









































Список использованных источников


  1. Е.Р.Алексеев, О.В.Чеснокова. Scilab - теория и практика на русском языке

  2. Е.Р.Алексеев, О.В. Чеснокова, Е.А. Рудченко. Scilab. Решение инженерных и математических задач. М., ALT Linux, Бином, 2008.

  3. Константин Носов. Scilab: серьезная математика, доступная всем.

  4. М.И.Павлова. Руководство по работе с пакетом SCILAB

  5. И.С. Тропин, О.И. Михайлова, А.В. Михайлов. Численные и технические расчеты в среде Scilab. (ПО для решения задач численных и технических вычислений). М., 2008.

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


Получите в подарок сайт учителя

Предмет: Прочее

Категория: Прочее

Целевая аудитория: Прочее

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

Автор: Астафьева Арина Александровна

Дата: 16.06.2020

Номер свидетельства: 553444

Похожие файлы

object(ArrayObject)#851 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(214) "Визуализация результатов расчетов в Scilab. Построение двух- и трехмерных графиков в Scilab. Функции plot, plot2d, plot3d, contour, contourf."
    ["seo_title"] => string(80) "vizualizatsiia_riezul_tatov_raschietov_v_scilab_postroieniie_dvukh_i_triekhmiern"
    ["file_id"] => string(6) "396367"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1488229905"
  }
}
object(ArrayObject)#873 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(74) "Визуализация результатов расчетов в Scilab"
    ["seo_title"] => string(46) "vizualizatsiia_rezultatov_raschetov_v_scilab_1"
    ["file_id"] => string(6) "553447"
    ["category_seo"] => string(7) "prochee"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1592333291"
  }
}


Получите в подарок сайт учителя

Видеоуроки для учителей

Курсы для учителей

ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Ваш личный кабинет
Проверка свидетельства