МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЕОМ
ЗВІТ
з лабораторної роботи №1
з дисципліни: «Цифрова обробка сигналів»
на тему: «ВИКОНАННЯ ЕЛЕМЕНТАРНИХ ОПЕРАЦІЙ НАД СИГНАЛАМИ В СИСТЕМІ SCILAB»
Мета роботи: виконати операції над матрицями та векторами в системи SCILAB. Здобути навики роботи в даному середовищі.
Завдання:
19
Задати дві дійсні квадратні матриці порядку . Отримати нову матрицю, шляхом множення елементів кожного рядка першої матриці на найбільший з елементів відповідного стовпця другої матриці.
Теоретичні відомості:
Найпростішим способом використання 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)
‘
Знаходження спряженої матриці
.’
Транспонування матриці
Текст програми
clc
clear all
n=input('n=')
choice=input("input matrix randomize? Y/N ","s");
select choice
case 'y' then
a=int(10.*rand(n,n));
b=int(10*rand(n,n));
case "n" then
a=input('input matrix A =')
b=input('input matrix B =')
else
error("Wrong answer")
end
exec('/Users/macbook/Documents/Study/COS/Projects/func.sci');
func(a,b)
Функція:
function rez=func(a, b)
funcprot(0)
disp(a,'A=')
v=max(b,['r']);
disp(v,"v=")
d=(v'*ones(1,n))'
rez=a.*d;
disp(rez,"C=")
endfunction
Результат роботи/
Висновок: при виконанні лабораторної роботи, я ознайомився з програмним пакетом Scilab, його функціями та основними командами. Виконав операції над матрицями та векторами і здобув навики роботи в даному середовищі.