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

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 12 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{Stub}}
Установка:  
Установка:  
  apt-get install scilab
  apt-get install scilab
Строка 41: Строка 40:
  clear
  clear
====Очистка экрана====
====Очистка экрана====
  cls
  clc
 
====Закрытие экранов графиков====
====Закрытие экранов графиков====
  close
  close
Строка 69: Строка 69:
     - — Минус
     - — Минус
     ' — Транспонирование  
     ' — Транспонирование  
===Числа===
    %e - экспонента
    %pi - 𝜋
===Переменная===
===Переменная===
  a=3; b=0.2; c=0.563;
  a=3; b=0.2; c=0.563;
Строка 86: Строка 91:


====Использование элемента====
====Использование элемента====
Первая строка, второй столбец массива a:
Первая строка, второй столбец матрицы a:
  a(1,2)
  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 значение====
Строка 149: Строка 161:
  r = rand(5,2)
  r = rand(5,2)
===Факториал===
===Факториал===
  f = factorial ( n )
  f = factorial (n)
 
===Логарифм===
===Логарифм===
====Натуральный====
====Натуральный====
Строка 174: Строка 187:
ASCII в код:
ASCII в код:
  '''code2A=ascii(str1)'''
  '''code2A=ascii(str1)'''
'''code2A=ascii('word')'''


==Примеры программ==
==Примеры программ==
Строка 183: Строка 198:
|-
|-
|
|
  clear, clc
  clear, clc, close
  x=[-2:5];
  x=[-2:5];
  y=x+2;
  y=x+2;
Строка 196: Строка 211:
|-
|-
|
|
  clear, clc
  clear, clc, close
  x=[-2:5];
  x=[-2:6];
  y=(x-2)^2;
  y=(x-2)^2;
  plot(x,y), xgrid
  plot(x,y), xgrid
|}
|}
===Решение квадратного уравнения===
===Решение квадратного уравнения===
{|class="mw-collapsible mw-collapsed"
{|class="mw-collapsible mw-collapsed"
Строка 212: Строка 228:
  d=b^2-4*a*c;
  d=b^2-4*a*c;
  if d>0 then
  if d>0 then
x1=(-b+sqrt(d))/2/a;
    x1=(-b+sqrt(d))/2/a;
x2=(-b-sqrt(d))/2/a;
    x2=(-b-sqrt(d))/2/a;
    mprintf('x1=%f\n',x1,'\n');
    mprintf('x2=%f\n',x2);
  else
  else
     if d==0
     if d==0
         x1=(-b+sqrt(d))/2/a;
         x1=(-b+sqrt(d))/2/a;
        mprintf('x=%f\n',x1);
     else
     else
         mprintf('Решений нет.');
         mprintf('Решений нет.');
     end
     end
  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') //построение графика
|}
|}


Строка 229: Строка 267:
|-
|-
|
|
x=[-2:5];
x=[-2:5];
y=x+2;
y=x+2;
plot(x,y), xgrid
plot(x,y), xgrid
x2=[-2:5];
x2=[-2:5];
y2=(x-2)^2;
y2=(x-2)^2;
plot(x2,y2), xgrid
plot(x2,y2), xgrid
|}
|}
2.Инструменты>Увеличить область
2.Инструменты>Увеличить область

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

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

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