Міністерство освіти і науки, молоді та спорту України
Луцький національний технічний університет
Кафедра комп’ютерної
інженерії
КОНТРОЛЬНА РОБОТА
з дисципліни
«Програмування алгоритмів цифрової обробки
сигналів та зображень »
Варіант 4
Завдання 1
Для заданих векторів а і b:
1. обчислити їх суму, різницю і скалярний добуток;
2. утворити вектор c, визначити його максимальний і мінімальний елементи і
поміняти їх місцями;
№
a
b
c
4
[-2.4 3.3 -0.1 3.6 7.4 -2.8 0.3 2.2]
[6.3 0.6 4.3 -3.7 -7.0 3.7 3.7 8.0]
a*b
>> a=[-2.4 3.3 -0.1 3.6 7.4 -2.8 0.3 2.2]
a =
Columns 1 through 4
-2.4000 3.3000 -0.1000 3.6000
Columns 5 through 8
7.4000 -2.8000 0.3000 2.2000
>> b=[6.3 0.6 4.3 -3.7 -7.0 3.7 3.7 8.0]
b =
Columns 1 through 4
6.3000 0.6000 4.3000 -3.7000
Columns 5 through 8
-7.0000 3.7000 3.7000 8.0000
>> a-b
ans =
Columns 1 through 4
-8.7000 2.7000 -4.4000 7.3000
Columns 5 through 8
14.4000 -6.5000 -3.4000 -5.8000
>> a.*b
ans =
Columns 1 through 4
-15.1200 1.9800 -0.4300 -13.3200
Columns 5 through 8
-51.8000 -10.3600 1.1100 17.6000
>> a+b
ans =
Columns 1 through 4
3.9000 3.9000 4.2000 -0.1000
Columns 5 through 8
0.4000 0.9000 4.0000 10.2000
>> c=a.*b
c =
Columns 1 through 4
-15.1200 1.9800 -0.4300 -13.3200
Columns 5 through 8
-51.8000 -10.3600 1.1100 17.6000
>> max(c)
ans =
17.6000
>> min(c)
ans =
-51.8000
>> i_min=find(c==min(c(:)));
>> i_max=find(c==max(c(:)));
>> a=min(c);
>> b=max(c);
>> c(1,i_min)=b;
>> c(1,i_max)=a;
>> c
c =
Columns 1 through 4
-15.1200 1.9800 -0.4300 -13.3200
Columns 5 through 8
17.6000 -10.3600 1.1100 -51.8000
Завдання 2
Розв’язування систем лінійних алгебраїчних рівнянь
Розв’язати систему рівнянь:
А
1
∙
x
1
+
В
1
∙x
2
+
С
1
∙
x
3
=1
А
2
∙
x
1
+
В
2
∙x
2
+
С
2
∙
x
3
=2
А
3
∙
x
1
+
В
3
∙x
2
+
С
3
∙
x
3
=1
де А1 – номер Вашого варіанта по списку в
журналі;
А2 – кількість букв у Вашому прізвищі;
А3=А2-А1;
В1 – кількість букв у Вашому імені (повне ім’я);
В2=cos(A1);
В3=В2-В1;
C1= ln(B1);
C2=C1+8.5;
C3=-min(A1,A2,A3)
А1=4; А2=6; В1=5.
>> %Матричний метод
>> A1=4; A2=6; A3=A2-A1;
>> B1=5; B2=cos(A1); B3=B2-B1;
>> C1=log(B1); C2=C1+8.5; g=[A1,A2,A3]; C3=-min(g);
>> A=[A1 B1 C1;A2 B2 C2; A3 B3 C3]
A =
4.0000 5.0000 1.6094
6.0000 -0.6536 10.1094
2.0000 -5.6536 -2.0000
>> B=[1;2;3];
>> X=inv(A)*B
X =
0.6280
-0.2411
-0.1905
>> %Метод Крамера
>> A1=[B, A(:, [2,3])]
A1 =
1.0000 5.0000 1.6094
2.0000 -0.6536 10.1094
3.0000 -5.6536 -2.0000
>> A2=[A(:,1),B,A(:,3)]
A2 =
4.0000 1.0000 1.6094
6.0000 2.0000 10.1094
2.0000 3.0000 -2.0000
>> A2=[A(:,[1,2]),B]
A2 =
4.0000 5.0000 1.0000
6.0000 -0.6536 2.0000
2.0000 -5.6536 3.0000
>> X1=det(A1)/det(A)
X1 =
0.6280
>> X2=det(A2)/det(A)
X2 =
-0.1905
>> X3=det(A3)/det(A)
X3 =
0.0058
Завдання 3.
Побудувати графік функції згідно свого варіанту, змінити колір, тип маркерів, тип ліній. Побудувати ці ж графіки в полярній системі координат. Побудувати діаграми по векторах a та b попередньої лабораторної роботи.
Функція
Проміжок
Кількість точок
Колір
y = tg(x+4)
[-10;10]
80
Червоний
>> h=(10-(-10))/80
h =
0.2500
>> x=-10:h:10;
>> y=tan(x-4);
>> plot(x,y,'r')
>> polar(x,y,'r');
>> a=[-2.4 3.3 -0.1 3.6 7.4 -2.8 0.3 2.2]
a =
-2.4000 3.3000 -0.1000 3.6000 7.4000 -2.8000 0.3000 2.2000
>> b=[6.3 0.6 4.3 -3.7 -7.0 3.7 3.7 8.0]
b =
6.3000 0.6000 4.3000 -3.7000 -7.0000 3.7000 3.7000 8.0000
>> bar(a);
>> bar(b);
>> subplot(2,2,1);plot(x,y,'r');
>> subplot(2,2,2);polar(x,y,'r');
>> subplot(2,2,3);bar(a);
>> subplot(2,2,4);bar(b);
>> subplot(2,2,1);plot(x,y,'r');title('Dekartova sustema koordunat');legend('dek');
>> subplot(2,2,2);polar(x,y,'r');title('Polyarna sustema koordunat');
>> subplot(2,2,3);bar(a);title('Stovpchasta diagrama vektora a');
>> subplot(2,2,4);bar(b);title('Stovpchasta diagrama vektora b');
/
Завдання 4.
Побудувати поверхню, використовуючи функцію plot3, а потім функцію mechc та meshz порівняти отримані результати. Побудувати цю ж поверхню в сітчастому вигляді. Побудувати рух точки в тривимірному просторі по поверхні (cos(W), sin(W)+W/10,W), W задане на проміжку від 0 до 50р з кроком р/(5В), де В – номер варіанту.
Діапазон для X та Y
Функція Z
початок
крок
кінець
13,9
1,5
132,1
z = x +5 * y^7
>> [x,y]=meshgrid([13.9:1.5:132.1]);
>> z=x+5.*y.^7;
>> plot3(x,y,z);
/
>> [x,y]=meshgrid([13.9:1.5:132.1]);
>> z=x+5.*y.^7;
>> plot3(x,y,z,'-k',y,x,z,'-k');
/
>> [x,y]=meshgrid([13.9:1.5:132.1]);
>> z=x+5.*y.^7;
>> meshc(x,y,z);
/
>> [x,y]=meshgrid([13.9:1.5:132.1]);
>> z=x+5.*y.^7;
>> meshz(x,y,z);
/
>> [x,y]=meshgrid([13.9:1.5:132.1]);
>> z=x+5.*y.^7;
>> surfc(x,y,z);
/
>> [x,y]=meshgrid([13.9:1.5:132.1]);
>> z=x+5.*y.^7;
>> surfl(x,y,z);
/
>> h=pi/20;
>> w=0:h:50*pi;
>> comet3(cos(w),sin(w)+w/10,w);
/
Завдання 5.
Написати файл-функції згідно свого варіанту. Використовуючи ці файл-функції побудувати їх графіки за допомогою командної строки. Створити файл-програму, яка викликатиме готову файл-функцію і будуватиме графік.
/
Кількість елементів чорно-білого зображення становить 512х512, число градацій 256. Який об’єм пам’яті (в КБайтах) потрібно для зберігання даного зображення?Написати файл-функцію для підрахування об’єму пам’яті зайнятого зображенням попереднього завдання. Вхідними параметрами мають бути:
а) параметр розмірність зображення (у вигляді двомірного масиву);
б) параметр число градацій.
Відповідь обчислити в КБайтах.
1). Файл-функція:
/
Результати обчислень:
>> myfun(5,6)
ans =
1.8407
Використовуючи ці файл-функції будуваємо їх графіки за допомогою командної строки.
>> x=-5:0.10:5;
>> y=myfun(8,x);
>> plot(x,y);
/
Файл-програма, яка викликає готову файл-функцію і будуває графік:
/
2).
/
>> b=[512,512];
>> puk(b,256)
ans =
256
>>
Відповідь: Для зберігання даного зображення потрібно об’єм пам’яті в 256 КБайт.
Завдання 6.
Розкласти в ряд Фур’є функцію на проміжку . Побудувати графіки функції та розкладу (до 3-ї гармоніки включно).