Soft/Scilab: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показана 61 промежуточная версия этого же участника)
Строка 1: Строка 1:
{{Stub}}
{|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:
'''a^n'''
====Корень квадратный====
sqrt(x)
====Корень====
nthroot(x,n)
 
===Абсолютная величина===
'''abs(x)'''
 
===Описание функции===
===Описание функции===
'''function name(a)'''
'''function name(a)'''
        '''<тело>'''
'''endfunction'''


'''<nowiki>    <тело></nowiki>'''
===Вывод графика===
plot(x,y), xgrid
===Случайное число===
Генерируется матрица с размером указанным в скобках и из него берется случайное число.
r = rand(5,2)
===Факториал===
f = factorial (n)


'''endfunction'''
===Логарифм===
===Массив===
====Натуральный====
a=[1 2 4]
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:
|-
|-
|
|
<code>clear, clc
clear, clc, close
x=[-2:5];
y=x+2;
plot(x,y), xgrid
|}


code_97_122=97:122 //числа в массив с 97 по 122 значение
===Построить график параболы===
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
|}


str_97_122=char(code_97_122) //в новую переменную символы с порядковыми номерами из массива
===Решение квадратного уравнения===
{|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') //построение графика
|}


disp(code_97_122) //вывод номеров
===Точки пересечения графиков===
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.Инструменты>Увеличить область


disp(str_97_122) //вывод символов</code>
Не выделяем/ не нажимаем!
|}
 
Наводим на точки пересечения графиков и в строке состояния смотрим их координаты.


{{Category navigation|title=Использование ПО|category=Использование ПО|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Софт в ALT Linux|category=Soft|sortkey={{SUBPAGENAME}}}}
[[Категория:Использование ПО]]

Текущая версия от 00:07, 27 октября 2024

Scilab
Логотип Scilab
Scilab-screen.png
Разработчик(и) 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.Инструменты>Увеличить область

Не выделяем/ не нажимаем!

Наводим на точки пересечения графиков и в строке состояния смотрим их координаты.