LAB 2
SCILAB. Работа с графическим окном

Методы создания равномерных векторов в Scilab

1. Оператор двоеточия (:)

Самый простой способ создания вектора с равномерным шагом.

начальное_значение:шаг:конечное_значение
    

Примеры использования оператора :

  • x = 0:10 - от 0 до 10 с шагом 1
  • x = 0:0.5:10 - от 0 до 10 с шагом 0.5
  • x = 10:-1:0 - от 10 до 0 с шагом -1

2. Функция linspace()

Создает вектор с заданным количеством точек.

linspace(начальное_значение, конечное_значение, количество_точек)
    

Примеры linspace:

  • x = linspace(0, 1, 100) - 100 точек от 0 до 1
  • x = linspace(-%pi, %pi, 50) - 50 точек от -pi до pi

3. Функция meshgrid()

Создает двумерные массивы для построения поверхностей.

X, Y = meshgrid(x, y)
    

4. Функция ndgrid()

Аналогична meshgrid, но с другим порядком индексации.

5. Функция logspace()

Создает вектор с логарифмически равномерно распределенными точками.

logspace(начальное_значение, конечное_значение, количество_точек)
    

Примеры logspace:

  • x = logspace(0, 2, 10) - 10 точек от 10^0 до 10^2
  • x = logspace(-1, 1, 5) - 5 точек от 10^-1 до 10^1

6. Функция grand()

Генерация равномерно распределенных случайных чисел.

grand(n, 'unf', минимальное_значение, максимальное_значение)
    

Практические примеры:

// Пример построения графика
x = linspace(-10, 10, 100);
y = sin(x);
plot(x, y);

// Пример создания сетки
X, Y = meshgrid(-5:0.5:5);
Z = sin(sqrt(X.^2 + Y.^2));
surf(X, Y, Z);
    

Сравнение методов:

Метод Тип последовательности Параметры Особенности
Оператор : Равномерная Начальное, шаг, конечное Простой синтаксис
linspace Равномерная Начальное, конечное, количество Фиксированное количество точек
logspace Логарифмическая Начальный логарифм, конечный логарифм, количество Логарифмический масштаб
meshgrid Двумерная сетка Векторы x и y Для 3D-графиков
ndgrid Двумерная сетка Векторы x и y Альтернативный порядок индексации
grand Случайная Размер, тип, диапазон Генерация случайных чисел

Важные замечания:

  • Оператор двоеточия поддерживает как положительные, так и отрицательные шаги
  • Функция linspace всегда создает точное количество заданных точек
  • logspace работает с логарифмической шкалой
  • grand генерирует случайные числа, а не равномерную последовательность

Дополнительные примеры:

// Генерация тестовых данных
t = linspace(0, 2*%pi, 100);
x = cos(t);
y = sin(t);
plot(x, y);

// Создание логарифмической шкалы
f = logspace(1, 5, 100); // частоты от 10^1 до 10^5
 

Рекомендации по использованию:

  • Используйте оператор : для простых последовательностей с известным шагом
  • Применяйте linspace, когда важно точное количество точек
  • Выбирайте logspace для работы с логарифмическими шкалами
  • Используйте meshgrid/ndgrid для создания сеток в 3D-графиках
Основы работы с графическими окнами
  • Графические окна в Scilab имеют уникальные номера. Для создания окна используется команда:
scf(n)  // n - номер окна
Для очистки окна применяются команды:
clf()    // очистка текущего окна
clf(n)   // очистка окна с номером n
Построение двумерных графиков
Основная функция для построения графиков:
plot(x, y, s)
где:
  • x - массив абсцисс
  • y - массив ординат
  • s - параметр форматирования (цвет, стиль линии)
x = 0:0.1:2*%pi;
y = sin(x);
plot(x, y, 'r-o')  // красный цвет, сплошная линия, маркеры-кружки

Таблица стилей линий и символов в Scilab

Стили линий

Символ Описание
- Сплошная линия
-- Пунктирная линия
: Точечная линия
-. Штрих-пунктирная

Маркеры

Символ Описание
. Точка
o Круг
x Крестик
+ Плюс
* Звездочка
s Квадрат
d Ромб
^ Треугольник вверх
v Треугольник вниз
> Треугольник вправо
< Треугольник влево

Цвета линий

Символ Цвет
r Красный
g Зеленый
b Синий
c Голубой
m Пурпурный
y Желтый
k Черный
w Белый

Комбинированные стили

Можно комбинировать параметры в одном выражении:

plot(x, y, 'r-o') // красная линия со сплошными маркерами-кругами
plot(x, y, 'b:s') // синяя точечная линия с квадратными маркерами
plot(x, y, 'g--d') // зеленая пунктирная линия с ромбовидными маркерами
 

Дополнительные параметры стиля

Параметр Описание
thickness Толщина линии
mark_size Размер маркеров
mark_foreground Цвет маркеров
line_style Стиль линии (числовой код)
mark_mode Режим отображения маркеров

Таблица числовых кодов стилей

Код Стиль линии
1 Сплошная
2 Штрихпунктир
3 Пунктир
4 Точки

Таблица числовых кодов цветов

Код Цвет
1 Синий
2 Зеленый
3 Красный
4 Голубой
5 Пурпурный
6 Желтый
7 Черный
8 Белый

Практические рекомендации

  • Используйте понятные комбинации стилей для лучшей читаемости
  • При построении нескольких графиков на одном рисунке используйте разные стили
  • Для важных данных выбирайте контрастные цвета
  • При работе с печатью учитывайте, что некоторые стили могут плохо воспроизводиться в черно-белом варианте
Основные команды оформления графиков в ScilabУправление заголовками
xtitle() - установка заголовков графика
  • Синтаксис:
xtitle(title, xlabel, ylabel)


Параметры:

title - основной заголовок графика

xlabel - подпись оси X

ylabel - подпись оси Y

x = 0:0.1:10;
y = sin(x);
plot(x, y);
xtitle("График функции синуса", "Ось X", "Ось Y");
Оформление сетки
xgrid() - добавление сетки на график
  • Варианты использования:
xgrid(); // сетка по умолчанию
xgrid(color); // сетка определенного цвета
xgrid(color, thickness); // сетка с заданной толщиной
xgrid(color, thickness, style); // сетка с заданным стилем


plot(x, y);
xgrid(color('black')); // черная сетка
Добавление легенды
  • legend() - создание легенды для графика
legend(labels, pos)

Параметры:
  • labels - массив текстовых меток
  • pos - положение легенды:
  • 1 - верхний правый угол
  • 2 - верхний левый угол
  • 3 - нижний левый угол
  • 4 - нижний правый угол
  • “in” - автоматическое размещение внутри графика
x = 0:0.1:10;
plot(x, sin(x), 'r*');
plot(x, cos(x).^2, 'b*');
legend(["Синус", "Косинус"], 4);

Комбинации пример:
// Пример полного оформления графика
x = 0:0.1:10;
plot(x, sin(x), 'r-');
plot(x, cos(x), 'b--');

// Добавляем заголовок и подписи
xtitle("Тригонометрические функции", "Время (сек)", "Значение функции");

// Добавляем сетку
xgrid(color('gray'), 1, 1);

// Создаем легенду
legend(["Синус", "Косинус"], "in");
Разбиение графического окна в Scilab
Команда subplot
Для размещения нескольких графиков в одном окне используется команда subplot. Она позволяет разбить окно на несколько подокон с собственными координатными осями.
Разбиение графического окна в Scilab
Команда subplot
Для размещения нескольких графиков в одном окне используется команда subplot. Она позволяет разбить окно на несколько подокон с собственными координатными осями.

Синтаксис команды:
subplot(m,n,p)
где:
  • m - количество подокон по горизонтали
  • n - количество подокон по вертикали
  • p - номер подокна (отсчет идет слева направо, сверху вниз)\
// Создаем четыре графика в одном окне
subplot(2,2,1)
plot(sin(x))

subplot(2,2,2)
plot(cos(x))

subplot(2,2,3)
plot(tan(x))

subplot(2,2,4)
plot(cotg(x))
Практические примеры
Пример 1: Два графика друг под другом
x = 0:0.1:2*%pi;
subplot(2,1,1)
plot(x, sin(x))
xtitle('График синуса')

subplot(2,1,2)
plot(x, cos(x))
xtitle('График косинуса')
Построение графиков в полярных координатах в Scilab

Основы полярных координат
Полярные координаты определяются двумя параметрами:
  • Полярный радиус ® - расстояние от начала координат
  • Полярный угол (θ) - угол поворота от полярной оси
Основные функции
Для построения графиков в полярных координатах используется функция polarplot.
polarplot(theta, rho)
где:
  • theta - массив углов (в радианах)
  • rho - массив радиусов
Базовый пример
Построение спирали Архимеда:
theta = 0:0.1:2*%pi;
rho = theta;  // уравнение спирали Архимеда
polarplot(theta, rho)
Примеры математических кривых
Кардиоида:
theta = 0:0.01:2*%pi;
rho = 1 - cos(theta);
polarplot(theta, rho)

disp(modulo(A, B)); // [1 3 0]
disp(pmodulo(A, B));// [1 3 0]
Полярная роза:
theta = 0:0.01:2*%pi;
rho = cos(3*theta);
polarplot(theta, rho)

Окружность
theta = 0:0.01:2*%pi;
rho = ones(theta);  // радиус = 1
polarplot(theta, rho)
Построение графиков в логарифмическом масштабе в ScilabОсновные команды
В Scilab существует три основных способа построения графиков в логарифмическом масштабе:
  1. loglog - логарифмический масштаб по обеим осям
  2. semilogx - логарифмический масштаб по оси X
  3. semilogy - логарифмический масштаб по оси Y
loglog(x, y)    // логарифмический масштаб по обеим осям
semilogx(x, y)  // логарифмический масштаб по X
semilogy(x, y)  // логарифмический масштаб по Y

Пример
x = logspace(-1, 3);  // создаем массив значений в логарифмическом масштабе
y = exp(x)./x;
loglog(x, y)
xgrid()  // добавляем сетку
Важные замечания
  • При работе с логарифмическим масштабом все значения должны быть положительными
  • Логарифмическая шкала особенно полезна при работе с данными, изменяющимися на несколько порядков
  • Сетка в логарифмическом масштабе имеет неравномерное расположение линий
  • Для создания равномерно распределенных точек в логарифмическом масштабе используйте функцию logspace
Функция logspace
Для создания массива значений в логарифмическом масштабе используется функция:
x = logspace(a, b, n)


где:

a - начальное значение (10^a)

b - конечное значение (10^b)

n - количество точек (опционально, по умолчанию 50)
Создание анимированных графиков в Scilab
Основные инструменты анимации
В Scilab существует несколько способов создания анимированных графиков:
  1. Функция comet - для создания анимации движения по кривой
  2. Параметрическая анимация - через последовательное построение кадров
  3. Функция paramfplot2d - для параметрических кривых
comet(y)
comet(x, y)
comet(x, fun)
comet(x, y, p)


где:

x, y - векторы координат

fun - функция

p - параметр длины тела кометы (от 0 до 1)
// Создание анимации спирали
t = linspace(0, 10*%pi, 500);
clf();
set(gca(), "isoview", "on"); // равномасштабные оси
comet(t.*sin(t), t.*cos(t))
Построение гистограмм в Scilab
Синтаксис функции histplot
  1. Основная функция для построения гистограмм:
histplot(n, data [,normalization] [,polygon], <opt_args>)



histplot(x, data [,normalization] [,polygon], <opt_args>)
Параметры функции
  • n - количество интервалов (классов)
  • x - вектор границ интервалов
  • data - массив данных для анализа
  • normalization - флаг нормализации (%t или %f)
  • polygon - флаг построения полигона частот
  • opt_args - дополнительные параметры plot2d
// Генерация случайных данных
data = rand(1,1000,'normal');

// Построение гистограммы
histplot(20, data);
xtitle('Гистограмма нормального распределения');


// Нормальная случайная матрица
G = randn(3, 3);
  • Построение круговой диаграммы (pie chart) в Scilab
Основные возможности
  • Круговая диаграмма (pie chart) — это способ визуализации данных в виде круга, разделенного на сектора, где каждый сектор представляет определенную категорию данных.
Базовый синтаксис
Основная функция для построения круговой диаграммы:
pie(x)
где x — вектор значений, определяющих размер каждого сектора
// Пример данных
data = [30 20 15 35];

// Построение круговой диаграммы
pie(data);
Задание
  • часть 1:
    описание:
    • задания блок А в соответствии с вариантом
  • часть 2:
    описание:
    • задания блок B в соответствии с вариантом
Made on
Tilda