План лекции "Введение в 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. Рациональные функции (дроби из полиномов).
Внутреннее представление – структура из четырёх элементов:
- описание (тип, числитель, знаменатель, представление);
- полином-числитель;
- полином-знаменатель;
- представление.
Разные функции: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Несколько графиков в одном окне – каждая функция задаётся столбцом:
Дополнительные аргументы для plot2d:x=0:0.1:3.1; y1=sin(x); y2=cos(x); plot2d(x,[y1' y2']);
- style – стиль линии (положительные числа определяют непрерывную линию заданного цвета, отрицательные числа определяют метки заданного вида);
- logflag – логарифмическая шкала ('l') или нормальная ('n'), задаётся отдельно для оси абсцисс и ординат;
- rect – прямоугольник видимой части графика [Xmin, Ymin, Xmax, Ymax];
- leg – подписи рядов данных (разделяются @).
plot2d(x,[y1' y2'],style=[2 -1],leg='sinus@cosinus',logflag='nl')Для уже существующего окна с графиками можно задать заголовок:
xtitle('Заголовок','Подпись OX','Подпись OY')Для уже существующего окна с графиками можно задать легенду:
Положение может быть: 'ur' (upper right), 'ul' (upper left), 'lr' (lower right), 'll' (lower left) либо '?' (спросить у пользователя).// legends(строки, стили, положение) - например: legends(['синусы' 'косинусы'], [2 -1], 'ur')
Переключиться (сделать текущим) окно с номером id:
scf(id)При этом, если окно не существует, оно будет создано.
Очистка существующего окна:
clf(id)Для создания графического окна, в котором будет "таблица" графиков, и выбора текущей ячейки в этой таблице:
subplot(mnp)m задаёт число строк, n задаёт число столбцов, p задаёт номер текущей ячейки.
Например, чтобы построить зелёный график на поле 4х3 использована функция:
subplot(435)