Soft/Scilab: различия между версиями
(→Цикл) |
Нет описания правки |
||
(не показана 61 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
{ | {|class="wikitable" style="float: right; margin-left: 2em" | ||
Установка | ! colspan="2" | Scilab | ||
apt-get install scilab | |- | ||
| colspan="2" | [[Изображение: User-menu-Scilab.png |64px|center| Логотип Scilab]] | |||
|- | |||
| colspan="2" | [[Изображение: Scilab-screen.png |300px|center]] | |||
|- | |||
| '''Разработчик(и)''' | |||
| Scilab Enterprises | |||
|- | |||
| '''Первый выпуск''' | |||
| 1990 | |||
|- | |||
| '''Лицензия''' | |||
| GPLv2 | |||
|- | |||
| '''Сайт''' | |||
| [https://www.scilab.org/ scilab.org] | |||
|- | |||
| '''Репозиторий''' | |||
| [https://packages.altlinux.org/scilab/ scilab] | |||
|} | |||
'''Scilab''' — пакет прикладных математических программ, предоставляющий открытое окружение для инженерных (технических) и научных расчётов. | |||
==Установка== | |||
$ su - | |||
# apt-get install scilab | |||
==Общее== | ==Общее== | ||
Если не описывается очистка экрана, значений, начало и конец цикла, в конце строки всегда ставится точка с запятой. | |||
===Ввод=== | |||
x=input('Введите икс:'); | |||
===Вывод=== | ===Вывод=== | ||
disp(a) | Числа: | ||
disp(a); | |||
Текста: | |||
mprintf('Решений нет.') | |||
Текста и числа: | |||
mprintf(''''Текст'''%f\n','''a''') | |||
{|class="mw-collapsible mw-collapsed" | |||
!Пример: | |||
|- | |||
| | |||
Код: | |||
a=3; | |||
mprintf('А а равно2:'''%f\n'''',a) | |||
Вывод: | |||
А а равно2:3.000000 | |||
|} | |||
===Цикл=== | ===Цикл=== | ||
Строка 11: | Строка 56: | ||
<тело> | <тело> | ||
end | 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: | ||
'''a^n''' | |||
====Корень квадратный==== | |||
sqrt(x) | |||
====Корень==== | |||
nthroot(x,n) | |||
===Абсолютная величина=== | |||
'''abs(x)''' | |||
===Описание функции=== | ===Описание функции=== | ||
'''function name(a)''' | '''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 в код: | ASCII в код: | ||
code2A=ascii(str1) | '''code2A=ascii(str1)''' | ||
'''code2A=ascii('word')''' | |||
==Примеры программ== | ==Примеры программ== | ||
===Построить график линейной функции=== | |||
y=x+2 | |||
x∈[-2:5] | |||
{|class="mw-collapsible mw-collapsed" | {|class="mw-collapsible mw-collapsed" | ||
!source code: | !source code: | ||
|- | |- | ||
| | | | ||
clear, clc, close | |||
x=[-2:5]; | |||
y=x+2; | |||
plot(x,y), xgrid | |||
|} | |||
===Построить график параболы=== | |||
y=(x-2)^2 | |||
x∈[-2:5] | |||
{|class="mw-collapsible mw-collapsed" | |||
!source code: | |||
|- | |||
| | |||
clear, clc, close | |||
x=[-2:6]; | |||
y=(x-2)^2; | |||
plot(x,y), xgrid | |||
|} | |||
===Решение квадратного уравнения=== | |||
{|class="mw-collapsible mw-collapsed" | |||
!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 | |||
====Графическое решение квадратного уравнения==== | |||
{|class="mw-collapsible mw-collapsed" | |||
!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.Строим графики | |||
{|class="mw-collapsible mw-collapsed" | |||
!source code: | |||
|- | |||
| | |||
x=[-2:5]; | |||
y=x+2; | |||
plot(x,y), xgrid | |||
x2=[-2:5]; | |||
y2=(x-2)^2; | |||
plot(x2,y2), xgrid | |||
|} | |||
2.Инструменты>Увеличить область | |||
Не выделяем/ не нажимаем! | |||
Наводим на точки пересечения графиков и в строке состояния смотрим их координаты. | |||
{{Category navigation|title= | {{Category navigation|title=Софт в ALT Linux|category=Soft|sortkey={{SUBPAGENAME}}}} | ||
[[Категория:Использование ПО]] |
Текущая версия от 00:07, 27 октября 2024
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.Инструменты>Увеличить область
Не выделяем/ не нажимаем!
Наводим на точки пересечения графиков и в строке состояния смотрим их координаты.