Компьютерные технологии в науке и образовании    

План лекции "Введение в SciLab"

1. Запуск, интерфейс, блокнотик (SciNotes).

exec, help, diary

2. Переменные, операции, функции.
Точка с запятой и запятая – разделение операторов.
Комплексные числа (мнимая единица – %i).
 

3. Массивы (индексы от 1).

a = [1 2 3]		// строка (1x3)
a = [1,2,3]		// строка (1x3)
a = [1;2;3]		// столбец (3x1)
b = [1,2,3; 4,5,6]	// матрица (2x3)
Обращение к элементу матрицы (вторая строка, второй столбец):
b(2,2)
Ряды:
a = min:step:max
a = min:max		// step = 1 
Фрагменты матрицы:
a(1:3)			// элементы a(1), a(2), a(3)
a([3:-1:1])		// элементы a(3), a(2), a(1)
Операции с матрицами:
a+b			// поэлементное сложение
a*b			// матричное умножение
a.*b			// поэлементное умножение
a'			// транспонирование

4. Полиномы. Определение:

poly(список,символ, c или r)
'c' – список [a0 a1 a2 ...] задаёт коэффициенты полинома: a0 + a1x + a2x2 + ...
'r' – список [b0 b1 b2 ...] задаёт корни полинома: (x – b0)(x – b1)(x – b2)...

Операции над полиномами:

roots(полином)		// корни полинома
coeff(полином)		// коэффициенты полинома
[R,Q] = pdiv(Pn, Pd)	// деление полиномов Pn/Pd r - остаток, q - частное)
factors(полином)	// разложение полинома на множители

5. Рациональные функции (дроби из полиномов).
Внутреннее представление – структура из четырёх элементов:

  1. описание (тип, числитель, знаменатель, представление);
  2. полином-числитель;
  3. полином-знаменатель;
  4. представление.
pn = poly(...);
pd = poly(...);
r = pn/pd;
    или
r = tlist(['r' 'num' 'den' 'dt'], pn, pd, []);
Разные функции:
numer(r)		// полином-числитель r = r(2)
denom(r)		// полином-знаменатель r = r(3)
horner(r,x)		// подстановка x в полином или рац.ф. r
derivat(r)		// производная полинома или рац.ф.

5. Управляющие конструкции.

if выр1 then оп1 elseif выр2 then оп2 else оп3 end

for переменная=список, оп1, оп2, ..., end

while выражение, оп1, оп2, ..., end

printf(...)

6. Графики:

plot или plot2d
Несколько графиков в одном окне – каждая функция задаётся столбцом:
x=0:0.1:3.1;
y1=sin(x);
y2=cos(x);
plot2d(x,[y1' y2']);
Дополнительные аргументы для plot2d:
plot2d(x,[y1' y2'],style=[2 -1],leg='sinus@cosinus',logflag='nl')
Для уже существующего окна с графиками можно задать заголовок:
xtitle('Заголовок','Подпись OX','Подпись OY')
Для уже существующего окна с графиками можно задать легенду:
// legends(строки, стили, положение) - например:
legends(['синусы' 'косинусы'], [2 -1], 'ur')
Положение может быть: 'ur' (upper right), 'ul' (upper left), 'lr' (lower right), 'll' (lower left) либо '?' (спросить у пользователя).

Переключиться (сделать текущим) окно с номером id:

scf(id)
При этом, если окно не существует, оно будет создано.

Очистка существующего окна:

clf(id)
Для создания графического окна, в котором будет "таблица" графиков, и выбора текущей ячейки в этой таблице:
subplot(mnp)
m задаёт число строк, n задаёт число столбцов, p задаёт номер текущей ячейки.

Например, чтобы построить зелёный график на поле 4х3 использована функция:

subplot(435)
Пример subplot