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

Материал из ALT Linux Wiki
Нет описания правки
 
(не показаны 44 промежуточные версии этого же участника)
Строка 1: Строка 1:
{{Stub}}
Установка:  
Установка:  
  apt-get install scilab
  apt-get install scilab
Строка 5: Строка 4:
==Общее==
==Общее==
Если не описывается очистка экрана, значений, начало и конец цикла, в конце строки всегда ставится точка с запятой.
Если не описывается очистка экрана, значений, начало и конец цикла, в конце строки всегда ставится точка с запятой.
===Ввод===
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
|}


===Цикл===
===Цикл===
Строка 19: Строка 37:


===Очистка экрана, значений===
===Очистка экрана, значений===
  clear, cls
====Очистка переменных====
  clear
====Очистка экрана====
clc
 
====Закрытие экранов графиков====
close


==Математика==
==Математика==
===Операции===
    + — Плюс
    & — Логическое И
    : — Двоеточие
    .\ — Поэлементное левое деление
    .* — Поэлементное умножение
    .^ — Поэлементная экспонента
    ./ — Поэлементное правое деление
    .' — Поэлементное транспонирование
    == — Логическое равно
    > — Больше, чем
    >= — Больше или равно
    \ — Левое деление
    < — Меньше, чем
    <= — Меньше или равно
    * — Умножение
    ~ — Отрицание
    ~= — Не равно
    | — Логическое ИЛИ
    ^ — Экспонента
    / — Правое деление
    - — Минус
    ' — Транспонирование
===Числа===
    %e - экспонента
    %pi - 𝜋
===Переменная===
===Переменная===
  a=3; b=0.2; c=0.563;
  a=3; b=0.2; c=0.563;


===Массив===
===Матрица===
Простая с тремя элементами в строчку:
  a=[1 2 4]
  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);
  sum_a=sum(a);


====Длина массива====
====Операции над матрицами====
Так же над матрицами можно выполнять математические операции.
=====Поворот вправо/влево=====
A(:,$:-1:1)
=====Поворот вверх/вниз=====
A($:-1:1,:)
=====Обратная матрица=====
inv(A)
 
====Длина матрицы====
  m=length(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)


===Абсолютная величина===
===Абсолютная величина===
Строка 47: Строка 154:
   
   
  '''endfunction'''
  '''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)


==Строки==
==Строки==
Строка 52: Строка 187:
ASCII в код:
ASCII в код:
  '''code2A=ascii(str1)'''
  '''code2A=ascii(str1)'''
'''code2A=ascii('word')'''


==Примеры программ==
==Примеры программ==
===Построить график линейной функции===
y=x+2
x∈[-2:5]
{|class="mw-collapsible mw-collapsed"
!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"
{|class="mw-collapsible mw-collapsed"
!source code:
!source code:
Строка 59: Строка 223:
|
|
  clear, clc
  clear, clc
   
  a=input('a=');
  code_97_122=97:122 //числа в массив с 97 по 122 значение
b=input('b=');
   
c=input('c=');
str_97_122=char(code_97_122) //в новую переменную символы с порядковыми номерами из массива
  d=b^2-4*a*c;
   
if d>0 then
  disp(code_97_122) //вывод номеров
    x1=(-b+sqrt(d))/2/a;
   
    x2=(-b-sqrt(d))/2/a;
  disp(str_97_122) //вывод символов</code>
    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=Использование ПО|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Использование ПО|category=Использование ПО|sortkey={{SUBPAGENAME}}}}

Текущая версия от 21:16, 19 марта 2024

Установка:

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.Инструменты>Увеличить область

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

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