Soft/Scilab
Scilab | |
---|---|
Разработчик(и) | Scilab Enterprises |
Первый выпуск | 1990 |
Лицензия | GPLv2 |
Сайт | scilab.org |
Репозиторий | scilab |
Scilab — пакет прикладных математических программ, предоставляющий открытое окружение для инженерных (технических) и научных расчётов.
Установка
$ su - # apt-get install scilab
Общее
Если не описывается очистка экрана, значений, начало и конец цикла, в конце строки всегда ставится точка с запятой.
Ввод
x=input('Введите икс:');
Вывод
Числа:
disp(a);
Текста:
mprintf('Решений нет.')
Текста и числа:
mprintf('Текст%f\n',a)
Пример: |
---|
Код: a=3; mprintf('А а равно2:%f\n',a) Вывод: А а равно2:3.000000 |
Цикл
for k=1:3, <тело> end
Условный оператор
if <усл> then <тело> end
Очистка экрана, значений
Очистка переменных
clear
Очистка экрана
clc
Закрытие экранов графиков
close
Математика
Операции
+ — Плюс & — Логическое И : — Двоеточие .\ — Поэлементное левое деление .* — Поэлементное умножение .^ — Поэлементная экспонента ./ — Поэлементное правое деление .' — Поэлементное транспонирование == — Логическое равно > — Больше, чем >= — Больше или равно \ — Левое деление < — Меньше, чем <= — Меньше или равно * — Умножение ~ — Отрицание ~= — Не равно | — Логическое ИЛИ ^ — Экспонента / — Правое деление - — Минус ' — Транспонирование
Числа
%e - экспонента %pi - 𝜋
Переменная
a=3; b=0.2; c=0.563;
Матрица
Простая с тремя элементами в строчку:
a=[1 2 4]
Простая с двумя элементами в столбец:
b=[-7;2];
Трехстрочная:
b=[1,2,3; 4,5,6; 7,8,9];
От -2 до 5:
c=[-2:5]
Использование элемента
Первая строка, второй столбец матрицы a:
a(1,2)
Сумма матрицы
sum_a=sum(a);
Операции над матрицами
Так же над матрицами можно выполнять математические операции.
Поворот вправо/влево
A(:,$:-1:1)
Поворот вверх/вниз
A($:-1:1,:)
Обратная матрица
inv(A)
Длина матрицы
m=length(a)
Min значение
min=min(a);
Max значение
max=max(a);
Тригонометрия
sin
sin(a)
cos
cos(a)
tg
tan(a)
ctg
cotg(a)
arcsin
asin(a)
arccos
acos(a)
arctg
atan(a)
arcctg
acot(a)
Остаток
Остаток деления первого значения на второе.
pmodulo(a,b)
Разложение на простые числа
factor(a)
Степень
a в степени n:
a^n
Корень квадратный
sqrt(x)
Корень
nthroot(x,n)
Абсолютная величина
abs(x)
Описание функции
function name(a) <тело> endfunction
Вывод графика
plot(x,y), xgrid
Случайное число
Генерируется матрица с размером указанным в скобках и из него берется случайное число.
r = rand(5,2)
Факториал
f = factorial (n)
Логарифм
Натуральный
y=log(x)
Десятичный
y=log10(x)
Конвертирование чисел
Можно подставлять как числа, так и матрицы.
- из двоичной в десятичную:
y=bin2dec(str)
- из десятичной в двоичную:
y=dec2bin(x)
- из десятичной в шестнадцатеричную:
h=dec2hex(d)
- из десятичной в восьмеричную:
o=dec2oct(d)
- из шестнадцатеричной в десятичную:
d=hex2dec(h)
- из восьмеричной в десятичную:
d=oct2dec(o)
Строки
Обработка строк
ASCII в код:
code2A=ascii(str1)
code2A=ascii('word')
Примеры программ
Построить график линейной функции
y=x+2 x∈[-2:5]
source code: |
---|
clear, clc, close x=[-2:5]; y=x+2; plot(x,y), xgrid |
Построить график параболы
y=(x-2)^2 x∈[-2:5]
source code: |
---|
clear, clc, close x=[-2:6]; y=(x-2)^2; plot(x,y), xgrid |
Решение квадратного уравнения
source code: |
---|
clear, clc a=input('a='); b=input('b='); c=input('c='); d=b^2-4*a*c; if d>0 then x1=(-b+sqrt(d))/2/a; x2=(-b-sqrt(d))/2/a; mprintf('x1=%f\n',x1,'\n'); mprintf('x2=%f\n',x2); else if d==0 x1=(-b+sqrt(d))/2/a; mprintf('x=%f\n',x1); else mprintf('Решений нет.'); end end |
Проверка:
- Два решения:
- a=1, b=2, c=-3
- Одно решение:
- a=1, b=2, c=1
- Нет решений:
- a=1, b=1, c=1
Графическое решение квадратного уравнения
source code: |
---|
clc, clear, close; deff('y2=fn(x) ','y2=(x-2)^2-7') //описывается функция и формула x=linspace(-3,7,100); x0 = [-3;3] xk = fsolve(x0,fn) //решение функции plot(x,fn(x),xk,fn(xk),'o') //построение графика |
Точки пересечения графиков
1.Строим графики
source code: |
---|
x=[-2:5]; y=x+2; plot(x,y), xgrid x2=[-2:5]; y2=(x-2)^2; plot(x2,y2), xgrid |
2.Инструменты>Увеличить область
Не выделяем/ не нажимаем!
Наводим на точки пересечения графиков и в строке состояния смотрим их координаты.