Мiнiстерство освiти і науки, молоді та спорту України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
Лабораторна робота №1
з диципліни: «Паралельні і розподілені обчислення»
на тему: «ВИКОРИСТАННЯ ФУНКЦІОНАЛЬНОЇ ДЕКОМПОЗИЦІЇ ДЛЯ РОЗВ’ЯЗКУ ОБЧИСЛЮВАЛЬНИХ ЗАДАЧ»
МЕТА РОБОТИ. Вивчити методи декомпозицій задач. Набути навиків розв’язування задач з використанням функціональної декомпозиції.
Завдання:
Вираз, який слід обрахувати, заданий наступним чином:
x = (y2y1Y32)(y1’y1) + y1y2’ + Y3 + y2’Y3y1Y3;
При чому елементи визначаються згідно правил:
y1=A×b, де bi=18/(i+18)2 , і=1,2,...n
y2=A1(b1-c1);
Y3 = A2B2-A2C2, де Cij=18/(i+2j)
Послідовність виконання.
1. Аналіз завдання.
Для заданого виразу вхідними даними є:
розмірність матриць – n;
матриці ;
вектори-стовпці .
Ці параметри повинні вводитися з клавіатури, або генеруватися випадковим чином (крім розмірності). При чому, елементи всіх матриць та векторів є цілими додатними числами, більшими за нуль.
Вектор-стовпець та матриця обраховуються, виходячи з уведеної розмірності, зауважимо, що значення їх елементів завжди менші одиниці і різко спадають зі збільшенням розмірності.
Наприклад для n=3, значення вектора-стовпця будуть становити: b1=18/(1+18)2=0.0499; b2=18/(2+18)2=0.0450; b3=18/(3+18)2=0.0408,а значення матриці , відповідно:
C11=18/(1+2*1)=6.0 C12=18/(1+2*2)=3.6 C13=18/(1+2*3)=2.5714
C21=18/(2+2*1)=4.5 C22=18/(2+2*2)=3.0 C23=18/(2+2*3)=2.25
C31=18/(3+2*1)=3.6 C32=18/(3+2*2)=2.5714 C33=18/(3+2*3)=2.
При утворенні враховуємо, що результатом множення матриці А на вектор-стовпець b є вектор-стовпець, елементи якого будуть раціональними числами(тобто матимуть значущу дробову частину).
При утворенні враховуємо, що результатом віднімання двох векторів-стовпців є вектор-стовпець, елементи якого можуть бути меншими за нуль цілими числами. Далі, при множенні цілочисельної додатної матриці А1 на результат віднімання, отримаємо вектор-стовпець з цілочисельними елементами довільного знаку.
При утворенні враховуємо, що присутні лише операції віднімання та множення, а тому вихідний результат може бути додатнім або відємним і завжди матиме значущу дробову частину.
Таким чином, згідно поставленої задачі, в обчисленні загального виразу приймають участь три різні елементи – два вектори стовпці та матриця .
Перший доданок загального виразу містить шість множники – два транспоновані вектор-стовпці y1,(тобто вектор-рядки), вектор-стовпець , вектор-стовпець y2 та матрицю піднесену до квадрату. Оскільки, згідно правил матричних обчислень, добуток не є комутативною операцією, всі множення слід виконувати в тій послідовності, яка задана, вищий пріоритет мають тільки множники які знаходяться в дужках, вони виконуються першими. Результатом множення рядка на стовпець є число, числа на стовпець є стовпець, а матриці на матрицю – матриця, а число на матрицю дасть матрицю. Тому, в загальному, перший доданок буде матрицею.
Другий доданок складається з двох множників вектора-стовпця y1 і транспонованого вектора стовпця y2 (вектора рядка). В результаті множення стовпця на рядок отримаємо матрицю.
Третій доданок складається з однієї матриці Y3.
Четвертий доданок складається з 4 множників, де 2 множники матриця Y3 вектор-стовпець y1 і транспонований вектор стовпець y2 (Вектор-рядок). При множенні вектор-рядок на матрицю отримаємо вектор-рядок, при множенні вектора-рядок на вектор-стовпець отримаємо скаляр і при множенні скаляра на матрицю отримаємо матрицю.
Таким чином, з попереднього випливає, що остаточний результат є матриця, елементи якої можуть бути як додатними так і від’ємними і завжди мають дробову частину.
2. Декомпозиція задачі.
Однозначно, всі обчислення безпосередньо залежать від розмірності даних, тому найперше, слід забезпечити ввід змінної n, що визначає цю розмірність. Далі, можна паралельно виконувати обчислення значень вектора b та матриці С2, оскільки во...