Мiнiстерство освiти і науки України
Національний університет “Львівська політехніка”
Лабораторна робота №1
з диципліни: «Методи та засоби опрацювання сигналів»
на тему: «ВИКОНАННЯ ЕЛЕМЕНТАРНИХ ОПЕРАЦІЙ НАД СИГНАЛАМИ В СИСТЕМІ SCILAB»
Мета роботи: виконати операції над матрицями та векторами в системи SCILAB. Здобути навики роботи в даному середовищі.
Завдання:
15
Задати дійсну квадратну матрицю, порядку n, всі елементи якої різні. Знайти в ній найбільший по модулю елемент і утворити квадратну матрицю порядку n-1 , шляхом викидання з початкової матриці того рядка та стовпця, на перетині яких розташований елемент зі знайденим значенням.
Теоретичні відомості:
Найпростішим способом використання Scilab є безпосереднє введення команд в консолі. Результат виконання команди при цьому відображається відразу ж після її введення і виконання. Покрокове виконання є найбільш ефективним способом для того, щоб зрозуміти поведінку готових програм, і найчастіше дозволяє досить швидко перейти до розробки власних алгоритмів.
Залежно від вмісту файлу розширенням файлів може бути .sce або .sci:
файли з розширенням. sci містять визначення функцій Scilab – виконання таких файлів призводить до завантаження даних функцій в робоче середовище пакету, після чого їх можна використовувати точно так само, як вбудовані функції Scilab;
файли з розширенням. sce можуть містити як визначення функцій, так і виконувані інструкції - зазвичай в результаті виконання такого файлу обчислюються значення змінних, відбувається виведення результатів в консоль, відображення графіків, читання або запис файлів і т.д.
Основні команди та їх прізначення:
Арифметичні операції
+
Унарне додавання для скалярних даних і масивів. Масиви повинні бути однакового розміру. Один з операндів може бути скаляром
-
Унарне віднімання для скалярних даних і масивів. Масиви повинні бути однакового розміру. Один з операндів може бути скаляром
*
Множення скалярів або матриць відповідних розмірів. . Один з операндів може бути скаляром
/
Ділення скалярів. Поелементне ділення матриці на скаляр. Якщо обидва оператори – матриці, то A/B=A*inv(B), де inv(B) – обернена матриця.
^
Піднесення скаляру до степеня. Знаходження степеня квадратної матриці.
\
Ліве ділення матриць. Якщо А є квадратною матрицею, то A\B=inv(А)*В.
.*
Поелементне множення масивів однакової довжини. Наприклад, c=a.*b Приводить до с(i,j)=a(i,j)*b(i,j)
./
Поелементне ділення масивів однакової довжини. Наприклад, c=a./b Приводить до с(i,j)=a(i,j)/b(i,j)
.\
Поелементне ліве ділення масивів однакової довжини. Наприклад, c=a.\b Приводить до с(i,j)=b(i,j)/a(i,j)
.^
Поелементне піднесення матриця до степенів, які є елементами іншої матриці, такого ж розміру. Наприклад, c=a.^b Приводить до с(i,j)=a(i,j)^b(i,j)
‘
Знаходження спряженої матриці
.’
Транспонування матриці
Текст програм
function c=Unite()
endfunction
clc
clear all
n=input('n=')
choice=input("input matrix randomize? Y/N ","s");
select choice
case 'y' then
a=10.*rand(n,n);
case "n" then
a=input('input matrix A =')
else
error("Wrong answer")
end
disp (a,'a=')
[i,j]=max(a)
disp (i,'max=')
a(j(1),:)=[]
a(:,j(2))=[]
disp (a,'a=')
clc
clear
n=input('n=')
choice=input("input matrix randomize? Y/N ","s");
select choice
case 'y' then
a=10.*rand(n,n);
case "n" then
a=input('input matrix A =')
else
error("Wrong answer")
end
disp (a,'a=')
b=a;
b=abs(a)
[i,j]=find(b)
[i,j]=max(b)
disp (i,'max=')
a(j(1),:)=[]
a(:,j(2))=[]
disp (a,'a=')
Результат роботи
Висновок: при виконанні лабораторної роботи, я ознайомився з програмним пакетом Scilab, його функціями та основними командами. Виконав операції над матрицями та векторами і здобув навики роботи в даному середовищі.