მატრიცა-ვექტორული გამრავლება გ. მატრიცის გამრავლება ვექტორზე

MatLab სისტემა უბრალოდ ასრულებს მათემატიკურ ოპერაციებს მატრიცებზე და ვექტორებზე. ჯერ განვიხილოთ მატრიცებისა და ვექტორების შეკრებისა და გამრავლების მარტივი ოპერაციები. მიეცით ორი ვექტორი

a = ; მწკრივის % ვექტორი
ბ = ; % სვეტის ვექტორი

მაშინ ამ ორი ვექტორის გამრავლება შეიძლება დაიწეროს როგორც

c = a*b; %c=1+2+3+4+5=16
d = b*a; %d - 5x5 ელემენტების მატრიცა

ვექტორებზე მოქმედებების შესაბამისად, მწკრივის ვექტორის სვეტის ვექტორზე გამრავლება იძლევა რიცხვს, ხოლო სვეტის ვექტორის გამრავლება მწკრივის ვექტორზე იძლევა ორგანზომილებიან მატრიცას, რომელიც არის ზემოთ მოყვანილი მაგალითის გამოთვლების შედეგი, ე.ი.

ორი ვექტორის შეკრება და გამოკლება იწერება როგორც

a1 = ;
a2 = ;
c = a1+a2; % c = ;
c = a2-a1; % c = ;

გაითვალისწინეთ, რომ შეკრება და გამოკლების ოპერაციები შეიძლება შესრულდეს ორ სვეტის ვექტორს ან ორ მწკრივ ვექტორს შორის. წინააღმდეგ შემთხვევაში, MatLab გამოსცემს შეცდომის შეტყობინებას, რადგან სხვადასხვა ტიპის ვექტორების დამატება შეუძლებელია. ასეა ყველა არალეგალური არითმეტიკული ოპერაციების შემთხვევაში: თუ მათი გამოთვლა შეუძლებელია, MatLab სისტემა შეატყობინებს შეცდომას და პროგრამა დასრულდება შესაბამის ხაზზე.

ანალოგიურად, მატრიცებს შორის გამრავლებისა და შეკრების ოპერაციები ხორციელდება:

A = ;
B = ones(3);
C=A+B; ორი იგივე ზომის მატრიცის % დამატება
D=A+5; მატრიცისა და რიცხვის % დამატება
E=A*B; A მატრიცის % გამრავლება B-ზე
F=B*A; B მატრიცის % გამრავლება A-ზე
G=5*A; % მატრიცის გამრავლება რიცხვზე

შებრუნებული მატრიცის გამოთვლის ოპერაციები, ასევე მატრიცების და ვექტორების ტრანსპონირება, იწერება შემდეგნაირად:

a = ; მწკრივის % ვექტორი
b = a'; % სვეტის ვექტორი, რომელიც ჩამოყალიბდა
მწკრივის ვექტორის % ტრანსპოზირება a.
A = ; % მატრიცა 3x3 ელემენტები
B = a*A; %b= - მწკრივის ვექტორი
C=A*b; % C = - სვეტის ვექტორი
D = a*A*a'; % D = 45 – რიცხვი, A მატრიცის ჯამი
E = A'; % E არის ტრანსპონირებული მატრიცა A
F = inv(A); % F - შებრუნებული მატრიცა A
G = A^-1; % G - შებრუნებული მატრიცა A

ზემოაღნიშნული მაგალითიდან ჩანს, რომ მატრიცებისა და ვექტორების ტრანსპოზირების ოპერაცია აღინიშნება სიმბოლოთი ' (აპოსტროფი), რომელიც მოთავსებულია ვექტორის ან მატრიცის სახელის შემდეგ. ინვერსიული მატრიცის გამოთვლა შეიძლება განხორციელდეს inv() ფუნქციის გამოძახებით ან მატრიცის -1 ხარისხზე აწევით. შედეგი ორივე შემთხვევაში იგივე იქნება და გაანგარიშების ორი მეთოდი მზადდება სხვადასხვა ალგორითმების განხორციელებისას მარტივად გამოყენებისთვის.

თუ გამოთვლების დროს საჭიროა ვექტორის ან მატრიცის ელემენტის ელემენტების გამრავლება, გაყოფა ან ამაღლება ელემენტზე, მაშინ ამისათვის გამოიყენება შემდეგი ოპერატორები:

.* - ელემენტის გამრავლება;
./ და .\ - ელემენტარულად დაყოფა;
.^ - ელემენტის სიძლიერე.

განვიხილოთ ამ ოპერატორების მოქმედება შემდეგ მაგალითში.

a = ; მწკრივის % ვექტორი
ბ = ; მწკრივის % ვექტორი
c = a.*b; %c=
A = ones(3); % 3x3 მატრიცა, რომელიც შედგება ერთისაგან
B = ; % მატრიცა 3x3
C = A.*B; % მატრიცა 3x3, რომელიც შედგება
D = A./B; % მატრიცა 3x3, რომელიც შედგება
E = A.\B; % მატრიცა 3x3, რომელიც შედგება
F = A.^2; მატრიცის A ელემენტების % კვადრატი

ამ განყოფილების დასასრულებლად განიხილეთ რამდენიმე ფუნქცია, რომლებიც სასარგებლოა ვექტორებთან და მატრიცებთან მუშაობისას.

ვექტორული ელემენტის მაქსიმალური მნიშვნელობის საპოვნელად გამოიყენება სტანდარტული ფუნქცია max(), რომელიც აბრუნებს ელემენტის ნაპოვნი მაქსიმალურ მნიშვნელობას და მის პოზიციას (ინდექსი):

a = ;
= max(a); % v = 6, i = 2;

v = max(a); %v = 6;

ზემოთ მოყვანილი მაგალითი გვიჩვენებს max() ფუნქციის გამოძახების ორ განსხვავებულ გზას. პირველ შემთხვევაში განისაზღვრება როგორც ელემენტის მაქსიმალური მნიშვნელობა, ასევე მისი ინდექსი ვექტორში, ხოლო მეორეში განისაზღვრება მხოლოდ ელემენტის მაქსიმალური მნიშვნელობა.

მატრიცების შემთხვევაში, ეს ფუნქცია განსაზღვრავს მაქსიმალურ მნიშვნელობებს სვეტებში, როგორც ეს ნაჩვენებია ქვემოთ მოცემულ მაგალითში:

A = ;
= max(A); % V=, I=
V = max(A); %V=

max() ფუნქციის სრული სინტაქსი შეგიძლიათ იხილოთ MatLab ბრძანების ფანჯარაში ბრძანების აკრეფით.

დახმარება<название функции>

ანალოგიურად მუშაობს min() ფუნქცია, რომელიც განსაზღვრავს ვექტორის ან მატრიცის ელემენტის მინიმალურ მნიშვნელობას და მის ინდექსს.

მატრიცებთან და ვექტორებთან მუშაობის კიდევ ერთი სასარგებლო ფუნქციაა sum() ფუნქცია, რომელიც ითვლის ვექტორის ან მატრიცის სვეტების ელემენტების მნიშვნელობების ჯამს:

a = ;
s = ჯამი(ა); %s = 3+5+4+2+1=15
A = ;
S1 = ჯამი (A); %S1=
S2 = ჯამი (ჯამ (A)); % S2=39

S2 ჯამის გაანგარიშებისას, A მატრიცის ელემენტების მნიშვნელობების ჯამი ჯერ გამოითვლება სვეტებით, შემდეგ კი რიგებით. შედეგად, ცვლადი S2 შეიცავს A მატრიცის ყველა ელემენტის მნიშვნელობების ჯამს.

ვექტორის ან მატრიცის ელემენტების მნიშვნელობების აღმავალი ან კლებადობით დასალაგებლად გამოიყენეთ sort() ფუნქცია შემდეგნაირად:

a = ;

b1 = დალაგება (a); %b1=
b2 = დალაგება(a, 'დაღმართი'); %b2=
b3 = დალაგება (a, 'აღმავალი'); %b3=

მატრიცებისთვის

A = ;
B1 = დალაგება (A); %B1=
B2 = დალაგება (A, 'დასვლა'); %B2=

ბევრ პრაქტიკულ პრობლემაში ხშირად საჭიროა ვექტორში ან მატრიცაში კონკრეტული ელემენტის პოვნა. ეს შეიძლება გაკეთდეს სტანდარტული find() ფუნქციის გამოყენებით, რომელიც არგუმენტად იღებს პირობას, რომლის მიხედვითაც მოიძებნება საჭირო ელემენტები, მაგალითად:

a = ;
b1 = პოვნა (a == 2); %b1 = 4 - ელემენტის ინდექსი 2
b2 = პოვნა (a ~= 2); % b2 = - ინდექსები 2-ის გარეშე
b3 = find(a > 3); %b3=

ზემოხსენებულ მაგალითში სიმბოლო "==" ნიშნავს თანასწორობის შემოწმებას, ხოლო სიმბოლო "~=" ამოწმებს ვექტორის ელემენტების მნიშვნელობების უთანასწორობას. დამატებითი დეტალები ამ ოპერატორების შესახებ იქნება აღწერილი განყოფილებაში პირობითი ოპერატორების შესახებ.

კიდევ ერთი სასარგებლო ფუნქცია ვექტორებთან და მატრიცებთან მუშაობისთვის არის საშუალო () ფუნქცია საშუალო არითმეტიკულის გამოსათვლელად, რომელიც ასე მუშაობს:

a = ;
m = საშუალო (ა); %m = 3
A = ;
M1 = საშუალო (A); %M1=
M2 = საშუალო (საშუალო (A)); % M2 = 4.333


თითოეული ვექტორი შეიძლება განიხილებოდეს როგორც ერთსვეტიანი ან ერთი რიგის მატრიცა. ერთსვეტიან მატრიცას დაერქმევა სვეტის ვექტორი, ხოლო ერთი რიგის მატრიცას - მწკრივის ვექტორი.

თუ A არის m*n ზომის მატრიცა, მაშინ b სვეტის ვექტორს აქვს ზომა n, ხოლო მწკრივის ვექტორს აქვს m ზომა.

ამრიგად, მატრიცის ვექტორზე გასამრავლებლად, ვექტორი უნდა განიხილებოდეს, როგორც სვეტის ვექტორი. ვექტორის მატრიცზე გამრავლებისას ის უნდა განიხილებოდეს როგორც მწკრივის ვექტორი.

გამრავლების მატრიცა

კომპლექსურ ვექტორამდე

შედეგს ვიღებთ

როგორც ხედავთ, ვექტორის განზომილებით უცვლელი, შეიძლება გვქონდეს ორი ამონახსნი.

თქვენი ყურადღება მინდა გავამახვილო იმ ფაქტზე, რომ პირველ და მეორე ვერსიებში მატრიცა, მიუხედავად ერთი და იგივე მნიშვნელობებისა, სრულიად განსხვავებულია (მათ განსხვავებული ზომები აქვთ)

პირველ შემთხვევაში ვექტორი განიხილება როგორც სვეტი და შემდეგ აუცილებელია გავამრავლოთ მატრიცა ვექტორზე, ხოლო მეორე შემთხვევაში გვაქვს მწკრივის ვექტორი და შემდეგ გვაქვს ვექტორისა და მატრიცის ნამრავლი.

ეს ბოტი ასევე ამრავლებს ვექტორებსა და მატრიცებს, რომლებსაც აქვთ რთული მნიშვნელობები. უფრო სრულყოფილ კალკულატორზე დაფუძნებული მატრიცების გამრავლება რთული მნიშვნელობებით ონლაინ

მატრიცა-ვექტორული გამრავლების თვისებები

მატრიცა

ვექტორული სვეტი

მწკრივის ვექტორი

თვითნებური ნომერი

1. მატრიცის ნამრავლი სვეტის ვექტორების ჯამით უდრის მატრიცის ნამრავლების ჯამს თითოეული ვექტორის მიერ.

2. მატრიცით მწკრივის ვექტორების ჯამის ნამრავლი უდრის მატრიცის მიერ ვექტორების ნამრავლების ჯამს.

3. ვექტორის საერთო კოეფიციენტი შეიძლება ამოღებულ იქნას მატრიცის ნამრავლიდან ვექტორით / ვექტორი მატრიცით

4. მწკრივის ვექტორის ნამრავლი მატრიცისა და სვეტის ვექტორის ნამრავლის ტოლფასია მწკრივის ვექტორის ნამრავლის მატრიცისა და სვეტის ვექტორის მიერ.

ლექცია 6. გამოთვლითი მათემატიკის ტიპიური ამოცანების ამოხსნის პარალელური რიცხვითი ალგორითმები: მატრიცული გამრავლება.

მატრიცის გამრავლება ვექტორზე. მიაღწიეთ მაქსიმალურ სიჩქარეს. საშუალო დონის პარალელიზმის გამოყენება. პარალელური გამოთვლის ორგანიზაცია p = n-სთვის. პროცესორების შეზღუდული ნაკრების გამოყენება. მატრიცული გამრავლება. პრობლემის გადაჭრის ალგორითმების მაკროოპერაციული ანალიზი. მონაცემთა გაზიარებაზე დაფუძნებული პარალელიზმის ორგანიზაცია.

მატრიცის გამრავლება ვექტორზე

მატრიცის ვექტორზე გამრავლების პრობლემა განისაზღვრება ურთიერთობებით

ამრიგად, მიღებული ვექტორის მიღება გულისხმობს იგივე ტიპის ოპერაციების გამეორებას მატრიცისა და ვექტორის რიგების გასამრავლებლად. ყოველი ასეთი მოქმედების მიღება მოიცავს მატრიცისა და ვექტორის მწკრივის ელემენტების ელემენტ-ელემენტის გამრავლებას და შედეგად მიღებული ნაწარმოებების შეჯამებას. საჭირო სკალარული ოპერაციების ჯამური რაოდენობა ფასდება მნიშვნელობით

როგორც მატრიცისა და ვექტორის გამრავლებისას შესრულებული მოქმედებებიდან ჩანს, პრობლემის გადაჭრის პარალელური მეთოდების მიღება შესაძლებელია პარალელური შეჯამების ალგორითმების საფუძველზე (იხ. პუნქტი 4.1). ამ განყოფილებაში პარალელიზაციის მეთოდების ანალიზს დაემატება პარალელური გამოთვლის ორგანიზაციის განხილვა, რაც დამოკიდებულია გამოსაყენებლად ხელმისაწვდომი პროცესორების რაოდენობაზე. გარდა ამისა, მატრიცის ვექტორზე გამრავლების პრობლემის მაგალითის გამოყენებით, ყურადღება გამახვილდება გამოთვლითი სისტემის (პროცესორებს შორის არსებული საკომუნიკაციო არხების) ყველაზე შესაფერისი ტოპოლოგიის არჩევის აუცილებლობაზე, რათა შემცირდეს ინტერპროცესორული ურთიერთქმედების ორგანიზების ხარჯები.

რაც შეიძლება სწრაფი შესრულების მიღწევა ()

ჩავატაროთ ინფორმაციის დამოკიდებულების ანალიზი მატრიცა-ვექტორული გამრავლების ალგორითმში პარალელიზაციის შესაძლო გზების შესარჩევად. როგორც ხედავთ, გამოთვლების დროს შესრულებული მატრიცის ცალკეული მწკრივების ვექტორზე გამრავლების ოპერაციები დამოუკიდებელია და შეიძლება შესრულდეს პარალელურად;



ყოველი მწკრივის ვექტორზე გამრავლება გულისხმობს ელემენტების დამოუკიდებელ გამრავლებებს და ასევე შეიძლება შესრულდეს პარალელურად;

მატრიცის მწკრივის ვექტორზე გამრავლების თითოეულ ოპერაციაში მიღებული პროდუქტების შეჯამება შეიძლება შესრულდეს შემაჯამებელი ალგორითმის ერთ-ერთი ადრე განხილული ვარიანტის გამოყენებით (სერიული ალგორითმი, ჩვეულებრივი და შეცვლილი კასკადის სქემები).

ამრიგად, პროცესორების მაქსიმალური საჭირო რაოდენობა განისაზღვრება მნიშვნელობით

ასეთი რაოდენობის პროცესორების გამოყენება შეიძლება წარმოდგენილი იყოს შემდეგნაირად. პროცესორების ნაკრები იყოფა ჯგუფებად

,

რომელთაგან თითოეული წარმოადგენს პროცესორების ერთობლიობას მატრიცის ერთი რიგის ვექტორზე გამრავლების ოპერაციის შესასრულებლად. გამოთვლების დასაწყისში ჯგუფის თითოეული პროცესორი იღებს მატრიცის მწკრივის ელემენტს და ვექტორის შესაბამის ელემენტს. შემდეგი, თითოეული პროცესორი ასრულებს გამრავლების ოპერაციას. შემდგომი გამოთვლები ხორციელდება კასკადის შეჯამების სქემის მიხედვით. ილუსტრაციისთვის ნახ. 6.1 ნაჩვენებია ჯგუფის პროცესორების გამოთვლითი სქემა მატრიცის განზომილებით.

ბრინჯი. 6.1. მატრიცის მწკრივის ვექტორზე გამრავლების გამოთვლითი სქემა

პროცესორების გამოყენებისას პარალელური ალგორითმის შესრულების დრო განისაზღვრება პარალელური გამრავლების ოპერაციის შესრულების დროით და კასკადის სქემის შესრულების დროით.

შედეგად, ალგორითმის შესრულების ინდიკატორები განისაზღვრება შემდეგი ურთიერთობებით:

მატრიცის ვექტორზე გამრავლების განხილული პრობლემისთვის ყველაზე შესაფერისი ტოპოლოგიებია სტრუქტურები, რომლებიც უზრუნველყოფენ მონაცემთა სწრაფ გადაცემას (ერთეულის სიგრძის ბილიკები) კასკადური შეჯამების სქემაში (იხ. ნახ. 4.5). ასეთი ტოპოლოგიები არის სტრუქტურა კავშირების სრული სისტემით ( სრული გრაფიკი) და ჰიპერკუბი. სხვა ტოპოლოგიები იწვევს კომუნიკაციის დროის გაზრდას მონაცემთა უფრო გრძელი გზების გამო. ასე რომ, პროცესორების ხაზოვანი შეკვეთით კავშირების სისტემით მხოლოდ უახლოეს მეზობლებთან მარცხნივ და მარჯვნივ ( მმართველიან ბეჭედი) კასკადის სქემისთვის, თითოეული მიღებული ნაწილობრივი ჯამის გადაცემის გზის სიგრძე გამეორებისას , , უდრის . თუ მივიღებთ იმას, რომ მონაცემთა გადაცემა სიგრძის გზაზე ხაზოვანი სტრუქტურის მქონე ტოპოლოგიაში მოითხოვს მონაცემთა გადაცემის ოპერაციების შესრულებას, მონაცემთა გადაცემის პარალელური ოპერაციების მთლიანი რაოდენობა (ბილიკების მთლიანი სიგრძე) განისაზღვრება მნიშვნელობით.

(გარდა მონაცემთა გადაცემის ჩამტვირთავი პროცესორებისთვის).

გამოთვლითი სისტემის გამოყენება მართკუთხა ტოპოლოგიით ორგანზომილებიანი გისოსიზომა იწვევს შესრულებული გამოთვლების მარტივ და ვიზუალურ ინტერპრეტაციას (ქსელის სტრუქტურა შეესაბამება დამუშავებული მონაცემების სტრუქტურას). ასეთი ტოპოლოგიისთვის ყველაზე მიზანშეწონილია მატრიცის რიგების განთავსება გისოსის ჰორიზონტალური ხაზების გასწვრივ; ამ შემთხვევაში ვექტორის ელემენტები უნდა გაიგზავნოს გამოთვლითი სისტემის ვერტიკალების გასწვრივ. გამოთვლების შესრულება მონაცემთა ამ მოწყობით შეიძლება განხორციელდეს პარალელურად გისოსების ხაზების გასწვრივ; შედეგად, მონაცემთა გადაცემის მთლიანი რაოდენობა იგივეა, რაც შედეგების მმართველი().

პრობლემის გადასაჭრელად შესრულებული საკომუნიკაციო მოქმედებები არის მონაცემთა გადაცემა MCS პროცესორების წყვილებს შორის. ასეთი ოპერაციების განხორციელების ხანგრძლივობის დეტალური ანალიზი ხორციელდება პუნქტში 3.3.

4. რეკომენდაციები პარალელური ალგორითმის განხორციელებისთვის. პარალელური ალგორითმის განხორციელებისას მიზანშეწონილია გამოვყოთ გამოყენებული პროცესორების საწყისი მონაცემებით ჩატვირთვის საწყისი ეტაპი. ასეთი ინიციალიზაცია ყველაზე მარტივად არის გათვალისწინებული გამოთვლითი სისტემის ტოპოლოგიისთვის, ტოპოლოგიით სრული გრაფიკი(ჩატვირთვა უზრუნველყოფილია მონაცემთა ერთი პარალელური გადაცემის ოპერაციით). ფორმაში პროცესორების ნაკრების ორგანიზებისას ჰიპერკუბიშესაძლოა სასარგებლო იყოს ჩატვირთვის პროცესის ორდონიანი კონტროლი, რომელშიც ცენტრალური საკონტროლო პროცესორი ანაწილებს მატრიცულ და ვექტორულ რიგებს პროცესორული ჯგუფების საკონტროლო პროცესორებზე, რომლებიც, თავის მხრივ, ანაწილებენ მატრიცისა და ვექტორის ელემენტებს. რიგები აღმასრულებელ პროცესორებს. ტოპოლოგიებისთვის ფორმაში მმართველებიან ბეჭდებისაჭიროა თანმიმდევრული მონაცემთა გადაცემის ოპერაციები ელემენტებიდან ელემენტებზე გადაცემული მონაცემების თანმიმდევრულად კლებადი რაოდენობით.

შუა დონის პარალელიზმის გამოყენება ()

1. პარალელური გამოთვლის მეთოდის არჩევანი. გამოყენებული პროცესორების ხელმისაწვდომი რაოდენობის შემცირებით (), ჩვეულებრივი კასკადური შეჯამების სქემა მატრიცის რიგების ვექტორზე გამრავლების ოპერაციების შესრულებისას გამოუსადეგარი ხდება. მასალის წარმოდგენის სიმარტივისთვის ჩვენ ვივარაუდებთ და ვიყენებთ შეცვლილ კასკადის სქემას. თითოეული პროცესორის საწყისი დატვირთვა ამ შემთხვევაში იზრდება და პროცესორი იტვირთება () მატრიცისა და ვექტორის რიგების ნაწილებით. მატრიცის ვექტორზე გამრავლების ოპერაციის შესრულების დრო შეიძლება შეფასდეს როგორც მნიშვნელობა

შეცვლილი კასკადის სქემის განსახორციელებლად საჭირო პროცესორების რაოდენობის გამოყენებისას, ე.ი. ზე , ეს გამოთქმა იძლევა შესრულების დროის შეფასებას (ზე).

პროცესორების რაოდენობით, როდესაც ალგორითმის შესრულების დრო ფასდება როგორც , შეიძლება შემოგვთავაზოს გამოთვლების პარალელური შესრულების ახალი სქემა, რომელშიც გამოყენებულია კასკადური ჯამების ყოველი გამეორებისთვის. გადახურვის პროცესორების ნაკრები. ამ მიდგომით, პროცესორების ხელმისაწვდომი რაოდენობა საკმარისია მატრიცისა და ვექტორის რიგის გამრავლების მხოლოდ ერთი ოპერაციის განსახორციელებლად. გარდა ამისა, კასკადური შეჯამების შემდეგი გამეორების შესრულებისას, ყველა წინა გამეორების შესრულებაზე პასუხისმგებელი პროცესორები თავისუფალია. თუმცა, შემოთავაზებული მიდგომის ეს მინუსი შეიძლება გადაიქცეს უპირატესობად უმოქმედო პროცესორების გამოყენებით მატრიცის შემდეგი რიგების დასამუშავებლად. შედეგად, შეიძლება ჩამოყალიბდეს შემდეგი სქემა კონვეიერიშეასრულეთ მატრიცული და ვექტორული გამრავლება:

პროცესორების კომპლექტი იყოფა არა გადახურვის პროცესორულ ჯგუფებად

,

ჯგუფი , , შედგება პროცესორებისგან და გამოიყენება კასკადის ალგორითმის გასამეორებლად (ჯგუფი გამოიყენება ელემენტების გამრავლების განსახორციელებლად); პროცესორების საერთო რაოდენობა;

კალკულაციის ინიციალიზაცია მოიცავს ჯგუფის პროცესორების ელემენტ-ელემენტზე დატვირთვას მატრიცისა და ვექტორის რიგის 1 მნიშვნელობებით; ჩატვირთვის შემდეგ ხორციელდება ელემენტის გამრავლების პარალელური ოპერაცია და ჩვეულებრივი კასკადური შემაჯამებელი სქემის შემდგომი განხორციელება;

გამოთვლების შესრულებისას ყოველ ჯერზე ელემენტის გამრავლების ოპერაციის დასრულების შემდეგ ჯგუფის პროცესორები იტვირთება მატრიცის შემდეგი რიგის ელემენტებით და იწყება გაანგარიშების პროცესი ახლად დატვირთული მონაცემებისთვის.

აღწერილი ალგორითმის გამოყენების შედეგად, პროცესორების სიმრავლე ახორციელებს მილსადენს მატრიცის მწკრივის ვექტორზე გამრავლების ოპერაციის შესასრულებლად. ასეთ მილსადენზე, მატრიცის რამდენიმე ცალკეული მწკრივი შეიძლება ერთდროულად იყოს დამუშავების სხვადასხვა ეტაპზე. ასე, მაგალითად, პირველი რიგის და ვექტორის ელემენტების ელემენტურად გამრავლების შემდეგ, ჯგუფის პროცესორები შეასრულებენ კასკადის ალგორითმის პირველ გამეორებას მატრიცის პირველი რიგისთვის, ხოლო ჯგუფის პროცესორები შეასრულებენ ელემენტს. - მატრიცის მეორე რიგის მნიშვნელობების გონივრული გამრავლება და ა.შ. ილუსტრაციისთვის ნახ. 6.2 გვიჩვენებს გამოთვლითი პროცესის მდგომარეობას მილსადენის 2 გამეორების შემდეგ.

ბრინჯი. 6.2. მილსადენის მდგომარეობა მატრიცის მწკრივის ვექტორზე გამრავლებისთვის 2 გამეორების შესრულების შემდეგ

2. ალგორითმის შესრულების ინდიკატორების შეფასება. პირველი მწკრივის გამრავლება ვექტორზე კასკადის სქემის მიხედვით ჩვეულებისამებრ დასრულდება () პარალელური ოპერაციების შესრულების შემდეგ. სხვა მწკრივებისთვის, გამოთვლების ორგანიზების მილსადენის სქემის შესაბამისად, ყოველი თანმიმდევრული რიგის გამრავლების შედეგები გამოჩნდება მილსადენის ყოველი შემდგომი გამეორების დასრულების შემდეგ. შედეგად, მატრიცა-ვექტორის გამრავლების ოპერაციის სრული შესრულების დრო შეიძლება გამოისახოს როგორც

ეს შეფასება ოდნავ აღემატება წინა აბზაცში აღწერილი პარალელური ალგორითმის შესრულების დროს (), თუმცა ახლად შემოთავაზებული მეთოდი მოითხოვს ნაკლები მონაცემების გადაცემას (ვექტორი იგზავნება მხოლოდ ერთხელ). გარდა ამისა, მილსადენის სქემის გამოყენება იწვევს ზოგიერთი გაანგარიშების შედეგების უფრო ადრე გამოჩენას (რაც შეიძლება სასარგებლო იყოს მონაცემთა დამუშავების რიგ სიტუაციებში).

შედეგად, ალგორითმის შესრულების ინდიკატორები განისაზღვრება შემდეგი ურთიერთობებით:

3. კომპიუტერული სისტემის ტოპოლოგიის არჩევანი. გამოთვლითი სისტემის მიზანშეწონილი ტოპოლოგია მთლიანად განისაზღვრება გამოთვლითი სქემით - ეს არის სრული ბინარული ხესიმაღლე . ასეთი ქსელის ტოპოლოგიით მონაცემთა გადაცემის რაოდენობა განისაზღვრება მილსადენის მიერ შესრულებული გამეორებების საერთო რაოდენობით, ე.ი.

გამოთვლების ინიციალიზაცია იწყება ხის ფოთლებიდან, შეჯამების შედეგები გროვდება ფესვის პროცესორში.

კომპიუტერული სისტემებისთვის შესრულებული საკომუნიკაციო მოქმედებების სირთულის ანალიზი ინტერპროცესორული კომუნიკაციების სხვა ტოპოლოგიებთან უნდა განხორციელდეს როგორც დამოუკიდებელი ამოცანა (იხ. ასევე განყოფილება 3.4).

პარალელური გამოთვლების ორგანიზება

1. პარალელური გამოთვლის მეთოდის არჩევანი. მატრიცის ვექტორზე გასამრავლებლად პროცესორების გამოყენებისას შეიძლება გამოყენებულ იქნას პარალელური მწკრივი მწკრივი გამრავლების ალგორითმი, რომელიც უკვე განხილულია სახელმძღვანელოში, რომელშიც მატრიცის რიგები ნაწილდება მწკრივი მწკრივი პროცესორებს შორის და თითოეული პროცესორი ახორციელებს ოპერაციას. მატრიცის რომელიმე ცალკეული მწკრივის ვექტორზე გამრავლება. პარალელური გამოთვლების ორგანიზების კიდევ ერთი შესაძლო გზა შეიძლება იყოს აგება მილსადენის სქემა მატრიცის მწკრივის ვექტორზე გამრავლების ოპერაციისთვის(ვექტორების წერტილოვანი ნამრავლი) ყველა ხელმისაწვდომი პროცესორის ხაზოვანი თანმიმდევრობით განლაგებით ( მმართველები).

ასეთი გაანგარიშების სქემა შეიძლება განისაზღვროს შემდეგნაირად. წარმოვიდგინოთ პროცესორების ნაკრები წრფივი მიმდევრობით (იხ. სურ. 4.7):

თითოეული პროცესორი, , გამოიყენება მატრიცის სვეტის ელემენტების და ვექტორული ელემენტის გასამრავლებლად. გამოთვლების შესრულება თითოეულ პროცესორზე, , შედგება შემდეგისგან:

მოთხოვნილია მატრიცის სვეტის შემდეგი ელემენტი;

ელემენტები და მრავლდება;

მოთხოვნილია წინა პროცესორის გამოთვლების შედეგი;

დამატებულია ღირებულებები;

შედეგი იგზავნება შემდეგ პროცესორზე.

ბრინჯი. 6.3. ხაზოვანი მილსადენის მდგომარეობა მატრიცის მწკრივის ვექტორზე გამრავლების ოპერაციისთვის ორი გამეორების შესრულების შემდეგ

აღწერილი სქემის ინიციალიზაციისას აუცილებელია მთელი რიგი დამატებითი მოქმედებების შესრულება:

პირველი გამეორებისას, თითოეული პროცესორი დამატებით ითხოვს ვექტორის ელემენტს;

გამოთვლების სინქრონიზაციისთვის (სქემის შემდეგი გამეორების შესრულებისას, მოითხოვება წინა პროცესორის გაანგარიშების შედეგი) ინიციალიზაციის ეტაპზე, პროცესორი , , ახორციელებს () ლოდინის ციკლს.

გარდა ამისა, აღწერილი სქემის ერთგვაროვნებისთვის პირველი პროცესორისთვის, რომელსაც არ აქვს წინა პროცესორი, მიზანშეწონილია შემოიტანოთ ცარიელი დამატების ოპერაცია ( ).

ილუსტრაციისთვის ნახ. 6.3 გვიჩვენებს გამოთვლითი პროცესის მდგომარეობას მილსადენის მეორე გამეორების შემდეგ.

2. ალგორითმის შესრულების ინდიკატორების შეფასება. პირველი რიგის გამრავლება ვექტორზე აღწერილი მილსადენის სქემის მიხედვით დასრულდება () პარალელური ოპერაციების შესრულების შემდეგ. შემდეგი რიგების გამრავლების შედეგი იქნება მილსადენის ყოველი მომდევნო გამეორების დასრულების შემდეგ (გაიხსენეთ, თითოეული პროცესორის გამეორება მოიცავს გამრავლებისა და მიმატების ოპერაციების შესრულებას). შედეგად, მატრიცა-ვექტორის გამრავლების ოპერაციის სრული შესრულების დრო შეიძლება გამოიხატოს როგორც:

ეს შეფასება ასევე აღემატება პარალელური ალგორითმის შესრულების მინიმალურ დროს. მილსადენის გამოთვლითი სქემის გამოყენების სარგებლობა, როგორც აღინიშნა წინა აბზაცში, არის გადაცემული მონაცემების რაოდენობის შემცირება და გაანგარიშების შედეგების ნაწილის ადრეული გამოჩენა.

ამ გამოთვლითი სქემის შესრულების ინდიკატორები განისაზღვრება ურთიერთობებით:

, ,

3. კომპიუტერული სისტემის ტოპოლოგიის არჩევანი. გამოთვლითი სისტემის საჭირო ტოპოლოგია აღწერილი ალგორითმის განსახორციელებლად ცალსახად განისაზღვრება შემოთავაზებული გამოთვლითი სქემით - ეს არის პროცესორების წრფივი მოწესრიგებული ნაკრები ( მმართველი).

პროცესორების შეზღუდული ნაკრების გამოყენება ()

1. პარალელური გამოთვლის მეთოდის არჩევანი. როდესაც პროცესორების რაოდენობა მცირდება მნიშვნელობამდე, მატრიცა-ვექტორის გამრავლების პარალელური გამოთვლითი სქემა შეიძლება მიღებულ იქნეს სტრიქონი-სტრიქონი გამრავლების ალგორითმის ადაპტაციის შედეგად. ამ შემთხვევაში, ელემენტარული გამრავლების შედეგების შეჯამების კასკადური სქემა გადაგვარდება და მატრიცის მწკრივის ვექტორზე გამრავლების ოპერაცია მთლიანად შესრულებულია ერთ პროცესორზე. ამ მიდგომით მიღებული გამოთვლითი სქემა შეიძლება დაზუსტდეს შემდეგნაირად:

ვექტორული და მატრიცული რიგები იგზავნება თითოეულ ხელმისაწვდომ პროცესორზე;

მატრიცის რიგების ვექტორზე გამრავლების ოპერაცია ხორციელდება ჩვეულებრივი თანმიმდევრული ალგორითმის გამოყენებით.

უნდა აღინიშნოს, რომ მატრიცის ზომა შეიძლება არ იყოს პროცესორების რაოდენობის ჯერადი და მაშინ მატრიცის რიგები არ შეიძლება თანაბრად გაიყოს პროცესორებს შორის. ამ სიტუაციებში შესაძლებელია პროცესორის დატვირთვის ერთგვაროვნების მოთხოვნიდან გადახვევა და, უფრო მარტივი გამოთვლითი სქემის მისაღებად, დაეთანხმოთ წესს, რომ მონაცემები მოთავსებულია პროცესორებზე მხოლოდ სტრიქონი-სტრიქონით (ანუ მატრიცის ერთი რიგის ელემენტები. რამდენიმე პროცესორს შორის გაზიარება შეუძლებელია). მწკრივების განსხვავებული რაოდენობა იწვევს პროცესორების განსხვავებულ გამოთვლით დატვირთვას; ამრიგად, გამოთვლების დასრულება (დავალების გადაწყვეტის ჯამური ხანგრძლივობა) განისაზღვრება ყველაზე დატვირთული პროცესორის მუშაობის დროით (ამავდროულად, ზოგიერთმა პროცესორმა შეიძლება ამ მთლიანი დროის ნაწილი გამორთოს მათი წილის ამოწურვის გამო. გამოთვლები). პროცესორების არათანაბარი დატვირთვა ამცირებს MCS-ის გამოყენების ეფექტურობას და ამ მაგალითის განხილვის შედეგად შეგვიძლია დავასკვნათ, რომ დაბალანსების პრობლემა

3. კომპიუტერული სისტემის ტოპოლოგიის არჩევანი. შემოთავაზებულ გამოთვლით სქემაში შესრულებული ინტერპროცესორული ურთიერთქმედების ბუნების შესაბამისად, პროცესორების ორგანიზება ფორმით ვარსკვლავები(იხ. სურ. 1.1). ასეთი ტოპოლოგიის საკონტროლო პროცესორი შეიძლება გამოყენებულ იქნას გამოთვლითი პროცესორების საწყისი მონაცემებით ჩასატვირთად და შესრულებული გამოთვლების შედეგების მისაღებად.

მატრიცული გამრავლება

მატრიცის მატრიცზე გამრავლების პრობლემა განისაზღვრება ურთიერთობებით

.

(სიმარტივისთვის ჩავთვლით, რომ გამრავლებული მატრიცები და არიან კვადრატები და აქვთ რიგი).

ამ ამოცანის პარალელური შესრულების შესაძლო გზების ანალიზი შეიძლება განხორციელდეს ანალოგიით მატრიცის ვექტორზე გამრავლების პრობლემის განხილვით. ასეთი ანალიზის დამოუკიდებლად შესწავლის დატოვების შემდეგ, ჩვენ ვაჩვენებთ, მატრიცის გამრავლების პრობლემის მაგალითის გამოყენებით, რამდენიმე ზოგადი მიდგომის გამოყენებას, რაც საშუალებას გვაძლევს შევქმნათ პარალელური მეთოდები რთული პრობლემების გადასაჭრელად.

ასე რომ, წინა გაკვეთილზე გავაანალიზეთ მატრიცების შეკრებისა და გამოკლების წესები. ეს ისეთი მარტივი ოპერაციებია, რომ სტუდენტების უმეტესობას ესმის მათ სიტყვასიტყვით მაშინვე.

თუმცა, ადრე გიხარია. უფასო თამაში დასრულდა - გადავიდეთ გამრავლებაზე. მაშინვე გაფრთხილებთ: ორი მატრიცის გამრავლება სულაც არ არის უჯრედებში რიცხვების გამრავლება იმავე კოორდინატებით, როგორც თქვენ შეიძლება ფიქრობთ. აქ ყველაფერი ბევრად უფრო სახალისოა. და თქვენ უნდა დაიწყოთ წინასწარი განმარტებებით.

თანმიმდევრული მატრიცები

მატრიცის ერთ-ერთი ყველაზე მნიშვნელოვანი მახასიათებელი მისი ზომაა. ჩვენ უკვე ასჯერ ვისაუბრეთ ამაზე: $A=\left[ m\times n \right]$ ნიშნავს, რომ მატრიცას აქვს ზუსტად $m$ რიგები და $n$ სვეტები. ჩვენ უკვე განვიხილეთ, თუ როგორ არ ავურიოთ რიგები სვეტებთან. ახლა სხვა რამ არის მნიშვნელოვანი.

განმარტება. $A=\left[m\ჯერ n \right]$ და $B=\left[n\ჯერ k \right]$ ფორმის მატრიცები, რომლებშიც პირველ მატრიცაში სვეტების რაოდენობა იგივეა, რაც მეორეში რიგების რაოდენობას თანმიმდევრული ეწოდება.

კიდევ ერთხელ: პირველ მატრიცაში სვეტების რაოდენობა უდრის მეორეში მწკრივების რაოდენობას! აქედან ჩვენ ვიღებთ ორ დასკვნას ერთდროულად:

  1. ჩვენ ვზრუნავთ მატრიცების თანმიმდევრობაზე. მაგალითად, მატრიცები $A=\left[ 3\ჯერ 2 \მარჯვნივ]$ და $B=\left[ 2\ჯერ 5 \მარჯვნივ]$ თანმიმდევრულია (2 სვეტი პირველ მატრიცაში და 2 სტრიქონი მეორეში) , მაგრამ პირიქით - მატრიცები $B=\left[ 2\ჯერ 5 \მარჯვნივ]$ და $A=\left[ 3\ჯერ 2 \მარჯვნივ]$ აღარ არის თანმიმდევრული (პირველ მატრიცაში 5 სვეტი არის, როგორც ეს იყო, არა 3 რიგი მეორეში).
  2. თანმიმდევრულობა ადვილი შესამოწმებელია, წერთ თუ არა ყველა განზომილებას ერთმანეთის მიყოლებით. წინა აბზაცის მაგალითის გამოყენებით: "3 2 2 5" - იგივე რიცხვები შუაშია, ამიტომ მატრიცები თანმიმდევრულია. მაგრამ "2 5 3 2" არ არის შეთანხმებული, რადგან შუაში სხვადასხვა რიცხვია.

გარდა ამისა, კაპიტანი, როგორც ჩანს, მიანიშნებს, რომ $\left[n\ჯერ n \მარჯვნივ]$ იგივე ზომის კვადრატული მატრიცები ყოველთვის თანმიმდევრულია.

მათემატიკაში, როდესაც მნიშვნელოვანია ობიექტების ჩამოთვლის თანმიმდევრობა (მაგალითად, ზემოთ განხილულ განმარტებაში მნიშვნელოვანია მატრიცების თანმიმდევრობა), ხშირად საუბრობენ მოწესრიგებულ წყვილებზე. ჩვენ მათ სკოლაში შევხვდით: ვფიქრობ, უაზროა, რომ $\left(1;0 \right)$ და $\left(0;1 \right)$ კოორდინატები სიბრტყის სხვადასხვა წერტილებს განსაზღვრავენ.

ასე რომ: კოორდინატები ასევე დალაგებულია წყვილები, რომლებიც შედგება რიცხვებისგან. მაგრამ არაფერი გიშლით ხელს ასეთი წყვილი მატრიცების გაკეთებაში. ამის შემდეგ შესაძლებელი იქნება იმის თქმა: ”მატრიცების მოწესრიგებული წყვილი $\left(A;B \right)$ თანმიმდევრულია, თუ პირველ მატრიცაში სვეტების რაოდენობა იგივეა, რაც მეორეში მწკრივების რაოდენობა. "

აბა, მერე რა?

გამრავლების განმარტება

განვიხილოთ ორი თანმიმდევრული მატრიცა: $A=\left[m\ჯერ n \right]$ და $B=\left[n\ჯერ k \მარჯვნივ]$. და ჩვენ განვსაზღვრავთ მათთვის გამრავლების ოპერაციას.

განმარტება. ორი თანმიმდევრული მატრიცის ნამრავლი $A=\left[m\ჯერ n \right]$ და $B=\left[n\ჯერ k \მარჯვნივ]$ არის ახალი მატრიცა $C=\left[m\ჯერ k \ right] $, რომლის ელემენტები გამოითვლება ფორმულის მიხედვით:

\[\ დასაწყისი(გასწორება) & ((გ)_(i;j))=(a)_(i;1))\cdot ((ბ)_(1;j))+((a)_ (i;2))\cdot ((b)_(2;j))+\ldots +((a)_(i;n))\cdot ((ბ)_(n;j))= \\ & =\sum\limits_(t=1)^(n)(((a)_(i;t))\cdot ((ბ)_(t;j))) \ბოლო(გასწორება)\]

ასეთი პროდუქტი აღინიშნება სტანდარტული გზით: $C=A\cdot B$.

მათთვის, ვინც პირველად ხედავს ამ განმარტებას, მაშინვე ჩნდება ორი კითხვა:

  1. რა სახის ველური თამაშია ეს?
  2. რატომ არის ასე რთული?

კარგად, პირველ რიგში. დავიწყოთ პირველი კითხვით. რას ნიშნავს ყველა ეს ინდექსი? და როგორ არ დაუშვათ შეცდომები რეალურ მატრიცებთან მუშაობისას?

უპირველეს ყოვლისა, აღვნიშნავთ, რომ გრძელი ხაზი $((c)_(i;j))$-ის გამოსათვლელად (სპეციალურად დადეთ მძიმით ინდექსებს შორის, რათა არ დაიბნეთ, მაგრამ თქვენ არ გჭირდებათ მათი ჩასმა. ზოგადი - მე თვითონ დავიღალე განმარტებაში ფორმულის აკრეფით) ნამდვილად იშლება მარტივი წესით:

  1. აიღეთ $i$-th მწკრივი პირველ მატრიცაში;
  2. აიღეთ $j$-th სვეტი მეორე მატრიცაში;
  3. ვიღებთ რიცხვების ორ თანმიმდევრობას. ჩვენ ვამრავლებთ ამ მიმდევრობის ელემენტებს იმავე რიცხვებით და შემდეგ ვამატებთ მიღებულ პროდუქტებს.

ეს პროცესი ადვილად გასაგებია სურათიდან:


ორი მატრიცის გამრავლების სქემა

კიდევ ერთხელ: პირველ მატრიცაში ვაფიქსირებთ $i$ რიგს, მეორე მატრიცაში $j$ სვეტს, გავამრავლებთ ელემენტებს იგივე რიცხვებით და შემდეგ ვამატებთ მიღებულ პროდუქტებს - მივიღებთ $((c)_(ij ))$. ასე რომ, ყველა $1\le i\le m$ და $1\le j\le k$. იმათ. სულ იქნება $m\ჯერ k$ ასეთი "გარყვნილები".

ფაქტობრივად, ჩვენ უკვე შევხვდით მატრიცულ გამრავლებას სასკოლო სასწავლო გეგმაში, მხოლოდ დიდად შეკვეცილი ფორმით. მიეცით ვექტორები:

\[\begin(align) & \vec(a)=\left(((x)_(a));((y)_(a));((z)_(a)) \მარჯვნივ); \\ & \overrightarrow(b)=\left(((x)_(b));((y)_(b));((z)_(b)) \მარჯვნივ). \\ \ბოლო (გასწორება)\]

მაშინ მათი სკალარული ნამრავლი იქნება ზუსტად წყვილი პროდუქტების ჯამი:

\[\overrightarrow(a)\ჯერ \overrightarrow(b)=((x)_(a))\cdot ((x)_(b))+((y)_(a))\cdot ((y) )_(ბ))+((ზ)_(ა))\cdot ((ზ)_(ბ))\]

სინამდვილეში, იმ შორეულ წლებში, როდესაც ხეები უფრო მწვანე იყო და ცა უფრო ნათელი, ჩვენ უბრალოდ ვამრავლებდით მწკრივის ვექტორს $\overrightarrow(a)$ სვეტის ვექტორზე $\overrightarrow(b)$.

დღეს არაფერი შეცვლილა. უბრალოდ, ახლა უფრო მეტია ამ მწკრივის და სვეტის ვექტორები.

მაგრამ საკმარისი თეორია! მოდით შევხედოთ რეალურ მაგალითებს. და დავიწყოთ უმარტივესი შემთხვევით - კვადრატული მატრიცებით.

კვადრატული მატრიცების გამრავლება

დავალება 1. შეასრულეთ გამრავლება:

\[\ მარცხნივ[ \დაწყება(მასივი)(*(35)(რ)) 1 & 2 \\ -3 & 4 \\\ბოლო(მასივი) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მასივი)(* (35)(r)) -2 & 4 \\ 3 & 1 \\\ბოლო (მასივი) \მარჯვნივ]\]

გამოსავალი. ასე რომ, ჩვენ გვაქვს ორი მატრიცა: $A=\მარცხნივ[2\ჯერ 2 \მარჯვნივ]$ და $B=\მარცხნივ[2\ჯერ 2 \მარჯვნივ]$. ნათელია, რომ ისინი თანმიმდევრულია (იგივე ზომის კვადრატული მატრიცები ყოველთვის თანმიმდევრულია). ასე რომ, ჩვენ ვაკეთებთ გამრავლებას:

\[\ დასაწყისი(გასწორება) & \მარცხნივ[ \დაწყება(მასივი)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\ბოლო(მასივი) \მარჯვნივ]\cdot \მარცხნივ[ \ დასაწყისი(მასივი)(*(35)(რ)) -2 & 4 \\ 3 & 1 \\\ბოლო(მასივი) \მარჯვნივ]=\მარცხნივ[ \დაწყება(მასივი)(*(35)(r)) 1\cdot \left(-2 \right)+2\cdot 3 & 1\cdot 4+2\cdot 1 \\ -3\cdot \left(-2 \მარჯვნივ)+4\cdot 3 & -3\cdot 4+4\cdot 1 \\\ბოლო(მასივი) \მარჯვნივ]= \\ & =\მარცხნივ[ \დაწყება(მასივი)(*(35)(r)) 4 & 6 \\ 18 & -8 \\\ დასასრული(მასივი)\მარჯვნივ]. \ბოლო(გასწორება)\]

Სულ ეს არის!

პასუხი: $\მარცხნივ[ \დაწყება(მასივი)(*(35)(r))4 & 6 \\ 18 & -8 \\\ბოლო(მასივი) \მარჯვნივ]$.

დავალება 2. შეასრულეთ გამრავლება:

\[\ მარცხნივ[ \დაწყება(მატრიცა) 1 & 3 \\ 2 & 6 \\\ბოლო(მატრიცა) \მარჯვნივ]\cdot \left[ \დაწყება(მატრიცა)(*(35)(r))9 & 6 \\ -3 & -2 \\\ბოლო(მასივი) \მარჯვნივ]\]

გამოსავალი. ისევ თანმიმდევრული მატრიცები, ამიტომ ჩვენ ვასრულებთ შემდეგ მოქმედებებს:\[\]

\[\ დასაწყისი(გასწორება) & \მარცხნივ[ \დაწყება(მატრიცა) 1 & 3 \\ 2 & 6 \\\ბოლო(მატრიცა) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მატრიცა)(*(35)( რ)) 9 & 6 \\ -3 & -2 \\\ბოლო(მასივი) \მარჯვნივ]=\მარცხნივ[ \დაწყება(მასივი)(*(35)(r)) 1\cdot 9+3\cdot \ მარცხენა(-3 \მარჯვნივ) & 1\cdot 6+3\cdot \left(-2 \right) \\ 2\cdot 9+6\cdot \left(-3 \მარჯვნივ) & 2\cdot 6+6\ cdot \left(-2 \მარჯვნივ) \\\ბოლო(მატრიცა) \მარჯვნივ]= \\ & =\მარცხნივ[ \დაწყება(მატრიცა) 0 & 0 \\ 0 & 0 \\\ბოლო(მატრიცა) \მარჯვნივ] . \ბოლო(გასწორება)\]

როგორც ხედავთ, შედეგი არის ნულებით სავსე მატრიცა

პასუხი: $\მარცხნივ[ \დაწყება(მატრიცა) 0 & 0 \\ 0 & 0 \\\ბოლო(მატრიცა) \მარჯვნივ]$.

ზემოთ მოყვანილი მაგალითებიდან აშკარაა, რომ მატრიცის გამრავლება არც ისე რთული ოპერაციაა. მინიმუმ 2-ზე 2 კვადრატული მატრიცებისთვის.

გამოთვლების პროცესში შევადგინეთ შუალედური მატრიცა, სადაც პირდაპირ დავხატეთ რა რიცხვები შედის კონკრეტულ უჯრედში. ეს არის ზუსტად ის, რაც უნდა გაკეთდეს რეალური პრობლემების გადაჭრისას.

მატრიცული პროდუქტის ძირითადი თვისებები

Მოკლედ. მატრიცის გამრავლება:

  1. არაკომუტაციური: $A\cdot B\ne B\cdot A$ ზოგადად. რა თქმა უნდა, არის სპეციალური მატრიცები, რომლებისთვისაც ტოლია $A\cdot B=B\cdot A$ (მაგალითად, თუ $B=E$ არის პირადობის მატრიცა), მაგრამ უმეტეს შემთხვევაში ეს არ მუშაობს. ;
  2. ასოციაციური: $\left(A\cdot B \right)\cdot C=A\cdot \left(B\cdot C \მარჯვნივ)$. აქ არ არის ვარიანტები: მიმდებარე მატრიცები შეიძლება გამრავლდეს ისე, რომ არ იფიქროთ იმაზე, თუ რა არის ამ ორი მატრიცის მარცხნივ და მარჯვნივ.
  3. დისტრიბუციულად: $A\cdot \left(B+C \right)=A\cdot B+A\cdot C$ და $\left(A+B \მარჯვნივ)\cdot C=A\cdot C+B\cdot C $

ახლა კი - ერთი და იგივე, მაგრამ უფრო დეტალურად.

მატრიცული გამრავლება ძალიან ჰგავს კლასიკურ რიცხვთა გამრავლებას. მაგრამ არის განსხვავებები, რომელთაგან ყველაზე მნიშვნელოვანია ის მატრიცის გამრავლება, ზოგადად, არაკომუტაციურია.

კიდევ ერთხელ განვიხილოთ მატრიცები ამოცანის 1-დან. ჩვენ უკვე ვიცით მათი პირდაპირი პროდუქტი:

\[\ მარცხნივ[ \დაწყება(მასივი)(*(35)(რ)) 1 & 2 \\ -3 & 4 \\\ბოლო(მასივი) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მასივი)(* (35)(r)) -2 & 4 \\ 3 & 1 \\\ბოლო (მასივი) \მარჯვნივ]=\ მარცხნივ[ \დაწყება(მასივი)(*(35)(r))4 & 6 \\ 18 & -8 \\\ბოლო(მასივი) \მარჯვნივ]\]

მაგრამ თუ მატრიცებს გავცვლით, სრულიად განსხვავებულ შედეგს მივიღებთ:

\[\ მარცხნივ[ \დაწყება(მასივი)(*(35)(რ)) -2 & 4 \\ 3 & 1 \\\ბოლო(მასივი) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მასივი)(* (35)(r)) 1 & 2 \\ -3 & 4 \\\ბოლო(მატრიცა) \მარჯვნივ=\მარცხნივ[ \დაწყება(მატრიცა) -14 & 4 \\ 0 & 10 \\\ბოლო (მატრიცა )\მარჯვნივ]\]

გამოდის, რომ $A\cdot B\ne B\cdot A$. ასევე, გამრავლების ოპერაცია განისაზღვრა მხოლოდ თანმიმდევრული მატრიცებისთვის $A=\left[m\ჯერ n \right]$ და $B=\left[n\ჯერ k \right]$, მაგრამ არავინ იძლევა გარანტიას, რომ ისინი დარჩებიან თანმიმდევრული, თუ ისინი შეიცვლება. მაგალითად, მატრიცები $\left[ 2\ჯერ 3 \right]$ და $\left[ 3\ჯერ 5 \მარჯვნივ]$ საკმაოდ თანმიმდევრულია ამ თანმიმდევრობით, მაგრამ იგივე მატრიცები $\left[ 3\ჯერ 5 \ მარჯვნივ] $ და $\left[ 2\ჯერ 3 \მარჯვნივ]$ საპირისპირო თანმიმდევრობით დაწერილი აღარ ემთხვევა. სევდა :(

მოცემული ზომის $n$ კვადრატულ მატრიცებს შორის ყოველთვის იქნება ისეთები, რომლებიც ერთსა და იმავე შედეგს იძლევა როგორც პირდაპირი, ისე საპირისპირო თანმიმდევრობით გამრავლებისას. როგორ აღვწეროთ ყველა ასეთი მატრიცა (და რამდენი მათგანია ზოგადად) ცალკე გაკვეთილის თემაა. დღეს ამაზე არ ვისაუბრებთ. :)

თუმცა, მატრიცული გამრავლება ასოციაციურია:

\[\ მარცხენა (A\cdot B \მარჯვნივ)\cdot C=A\cdot \მარცხნივ(B\cdot C \მარჯვნივ)\]

ამიტომ, როდესაც საჭიროა რამდენიმე მატრიცის ზედიზედ გამრავლება, სულაც არ არის საჭირო ამის გაკეთება დროზე ადრე: სავსებით შესაძლებელია, რომ ზოგიერთმა მიმდებარე მატრიცამ, გამრავლებისას, საინტერესო შედეგი გამოიღოს. მაგალითად, ნულოვანი მატრიცა, როგორც ზემოთ განხილულ პრობლემა 2-ში.

რეალურ პრობლემებში, ყველაზე ხშირად საჭიროა $\left[n\ჯერ n \მარჯვნივ]$ ზომის კვადრატული მატრიცების გამრავლება. ყველა ასეთი მატრიცების სიმრავლე აღინიშნება $((M)^(n))$-ით (ანუ, ჩანაწერები $A=\left[n\ჯერ n \მარჯვნივ]$ და \ იგივეს ნიშნავს) და ეს იქნება აუცილებლად შეიცავს $E$ მატრიცას, რომელსაც იდენტობის მატრიცას უწოდებენ.

განმარტება. $n$ ზომის იდენტურობის მატრიცა არის $E$ მატრიცა ისეთი, რომ ნებისმიერი კვადრატული მატრიცისთვის $A=\left[n\ჯერ n \right]$ თანასწორობა მოქმედებს:

ასეთი მატრიცა ყოველთვის ერთნაირად გამოიყურება: მის მთავარ დიაგონალზე არის ერთეულები და ყველა სხვა უჯრედში ნულები.

\[\begin(align) & A\cdot \left(B+C \right)=A\cdot B+A\cdot C; \\ & \მარცხნივ(A+B \მარჯვნივ)\cdot C=A\cdot C+B\cdot C. \\ \ბოლო (გასწორება)\]

სხვა სიტყვებით რომ ვთქვათ, თუ თქვენ გჭირდებათ ერთი მატრიცის გამრავლება ორი სხვას ჯამზე, მაშინ შეგიძლიათ გაამრავლოთ ის თითოეულ ამ "სხვა ორზე" და შემდეგ დაამატოთ შედეგები. პრაქტიკაში, თქვენ ჩვეულებრივ უნდა შეასრულოთ ინვერსიული ოპერაცია: ჩვენ ვამჩნევთ ერთსა და იმავე მატრიცას, ამოვიღებთ მას ფრჩხილიდან, ვასრულებთ შეკრებას და ამით ვამარტივებთ ჩვენს ცხოვრებას. :)

გაითვალისწინეთ, რომ განაწილების აღსაწერად ორი ფორმულა უნდა დაგვეწერა: სად არის ჯამი მეორე ფაქტორში და სად არის ჯამი პირველში. ეს არის ზუსტად იმის გამო, რომ მატრიცული გამრავლება არაკომუტაციურია (და ზოგადად, არაკომუტაციური ალგებრაში, უამრავია ყველანაირი ხუმრობა, რომელიც არც კი მახსენდება ჩვეულებრივ ციფრებთან მუშაობისას). ხოლო თუ, მაგალითად, გამოცდის დროს დაგჭირდებათ ამ თვისების ჩაწერა, მაშინ აუცილებლად დაწერეთ ორივე ფორმულა, წინააღმდეგ შემთხვევაში მასწავლებელი შეიძლება ცოტათი გაბრაზდეს.

კარგი, ეს ყველაფერი იყო ზღაპრები კვადრატულ მატრიცებზე. რაც შეეხება ოთხკუთხედებს?

მართკუთხა მატრიცების შემთხვევა

მაგრამ არაფერი - ყველაფერი იგივეა, რაც კვადრატულებთან.

დავალება 3. შეასრულეთ გამრავლება:

\[\ მარცხნივ[ \ დასაწყისი (მატრიცა) \ დასაწყისი (მატრიცა) 5 \\ 2 \\ 3 \\\ ბოლოს (მატრიცა) & \ დასაწყისი (მატრიცა) 4 \\ 5 \\ 1 \\\ დასასრული (მატრიცა) \ \\ბოლო(მატრიცა) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მასივი)(*(35)(r)) -2 & 5 \\ 3 & 4 \\\ბოლო(მასივი) \მარჯვნივ]\]

გამოსავალი. გვაქვს ორი მატრიცა: $A=\მარცხნივ[ 3\ჯერ 2 \მარჯვნივ]$ და $B=\მარცხნივ[2\ჯერ 2 \მარჯვნივ]$. მოდით დავწეროთ რიცხვები, რომლებიც მიუთითებენ ზომებს ზედიზედ:

როგორც ხედავთ, ცენტრალური ორი რიცხვი იგივეა. ეს ნიშნავს, რომ მატრიცები თანმიმდევრულია და მათი გამრავლება შესაძლებელია. და გამოსავალზე ვიღებთ მატრიცას $C=\left[3\ჯერ 2 \მარჯვნივ]$:

\[\ დასაწყისი (გასწორება) & \მარცხნივ[ \დაწყება(მატრიცა) \დაწყება(მატრიცა) 5 \\ 2 \\ 3 \\\ბოლო (მატრიცა) & \ დასაწყისი (მატრიცა) 4 \\ 5 \\ 1 \\ \end(მატრიცა) \\\ბოლო(მატრიცა) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მატრიცა)(*(35)(r)) -2 & 5 \\ 3 & 4 \\\ბოლო (მაივი) \right]=\left[ \begin(მაივი)(*(35)(r)) 5\cdot \left(-2 \მარჯვნივ)+4\cdot 3 & 5\cdot 5+4\cdot 4 \\ 2 \cdot \left(-2 \right)+5\cdot 3 & 2\cdot 5+5\cdot 4 \\ 3\cdot \left(-2 \მარჯვნივ)+1\cdot 3 & 3\cdot 5+1 \cdot 4 \\\end (მასივი) \მარჯვნივ]= \\ & =\მარცხნივ[ \დაწყება(მასივი)(*(35)(r)) 2 & 41 \\ 11 & 30 \\ -3 & 19 \ \\ბოლო(მასივი)\მარჯვნივ]. \ბოლო(გასწორება)\]

ყველაფერი ნათელია: საბოლოო მატრიცას აქვს 3 სტრიქონი და 2 სვეტი. საკმაოდ $=\მარცხნივ[ 3\ჯერ 2 \მარჯვნივ]$.

პასუხი: $\ მარცხნივ[ \დაწყება(მასივი)(*(35)(რ)) \ დასაწყისი(მასივი)(*(35)(რ)) 2 \\ 11 \\ -3 \\\ბოლო(მასივი) & \ დასაწყისი (მატრიცა) 41 \\ 30 \\ 19 \\\ბოლო (მატრიცა) \\\ ბოლოს (მატრიცა) \მარჯვნივ]$.

ახლა განიხილეთ ერთ-ერთი საუკეთესო სასწავლო დავალება მათთვის, ვინც ახლახან იწყებს მუშაობას მატრიცებთან. მასში საჭიროა არა მხოლოდ ორი ტაბლეტის გამრავლება, არამედ ჯერ იმის დადგენა: დასაშვებია თუ არა ასეთი გამრავლება?

ამოცანა 4. იპოვეთ მატრიცების ყველა შესაძლო წყვილი ნამრავლი:

\\]; $B=\left[ \begin(მატრიცა) \begin(მატრიცა) 0 \\ 2 \\ 0 \\ 4 \\\end (მატრიცა) & \begin(მატრიცა) 1 \\ 0 \\ 3 \\ 0 \ \\ბოლო(მატრიცა) \\\ბოლო(მატრიცა) \მარჯვნივ]$; $C=\left[ \begin(matrix)0 & 1 \\ 1 & 0 \\\end (მატრიცა) \მარჯვნივ]$.

გამოსავალი. პირველ რიგში, მოდით დავწეროთ მატრიცების ზომები:

\;\ B=\მარცხნივ[4\ჯერ 2 \მარჯვნივ];\ C=\მარცხნივ[2\ჯერ 2 \მარჯვნივ]\]

ჩვენ ვიღებთ, რომ $A$ მატრიცა შეიძლება შეესაბამებოდეს მხოლოდ $B$ მატრიცას, ვინაიდან $A$-ში სვეტების რაოდენობა არის 4 და მხოლოდ $B$-ს აქვს მწკრივების ეს რაოდენობა. ამრიგად, ჩვენ შეგვიძლია ვიპოვოთ პროდუქტი:

\\cdot \მარცხნივ[ \დაწყება(მასივი)(*(35)(r)) 0 & 1 \\ 2 & 0 \\ 0 & 3 \\ 4 & 0 \\\ბოლო (მასივი) \მარჯვნივ]=\ მარცხენა[ \დაწყება(მასივი)(*(35)(r))-10 & 7 \\ 10 & 7 \\\ბოლო(მასივი) \მარჯვნივ]\]

მკითხველს ვთავაზობ, რომ შუალედური საფეხურები დამოუკიდებლად შეასრულოს. მე მხოლოდ აღვნიშნავ, რომ უმჯობესია წინასწარ განვსაზღვროთ მიღებული მატრიცის ზომა, თუნდაც რაიმე გამოთვლამდე:

\\cdot \მარცხნივ[4\ჯერ 2 \მარჯვნივ]=\მარცხნივ[2\ჯერ 2 \მარჯვნივ]\]

სხვა სიტყვებით რომ ვთქვათ, ჩვენ უბრალოდ ვხსნით „გარდამავალ“ კოეფიციენტებს, რომლებიც უზრუნველყოფდნენ მატრიცების თანმიმდევრულობას.

რა სხვა ვარიანტებია შესაძლებელი? რა თქმა უნდა, შესაძლებელია $B\cdot A$-ის პოვნა, ვინაიდან $B=\left[4\ჯერ 2 \მარჯვნივ]$, $A=\მარცხნივ[2\ჯერ 4 \მარჯვნივ]$, ასე რომ შეკვეთილი წყვილი $\ მარცხენა(B ;A \right)$ თანმიმდევრულია და პროდუქტის განზომილება იქნება:

\\cdot \მარცხნივ[ 2\ჯერ 4 \მარჯვნივ]=\მარცხნივ[4\ჯერ 4 \მარჯვნივ]\]

მოკლედ, გამომავალი იქნება $\left[4\ჯერ 4 \მარჯვნივ]$ მატრიცა, რომლის კოეფიციენტების გამოთვლა მარტივია:

\\cdot \მარცხნივ[ \დაწყება(მასივი)(*(35)(r)) 1 & -1 & 2 & -2 \\ 1 & 1 & 2 & 2 \\\ბოლო(მასივი) \მარჯვნივ]=\ მარცხენა[ \დაწყება(მასივი)(*(35)(r))1 & 1 & 2 & 2 \\ 2 & -2 & 4 & -4 \\ 3 & 3 & 6 & 6 \\ 4 & -4 & 8 & -8 \\\ბოლო(მასივი) \მარჯვნივ]\]

ცხადია, თქვენ ასევე შეგიძლიათ დაამთხვიოთ $C\cdot A$ და $B\cdot C$ და ეს არის ის. ამიტომ, ჩვენ უბრალოდ ვწერთ შედეგად პროდუქტებს:

Ადვილი იყო.:)

პასუხი: $AB=\left[ \begin(მასივი)(*(35)(r)) -10 & 7 \\ 10 & 7 \\\end(მაივი) \right]$; $BA=\left[ \begin(მასივი)(*(35)(r)) 1 & 1 & 2 & 2 \\ 2 & -2 & 4 & -4 \\ 3 & 3 & 6 & 6 \\ 4 & -4 & 8 & -8 \\\ბოლო(მასივი) \მარჯვნივ]$; $CA=\left[ \begin(მასივი)(*(35)(r)) 1 & 1 & 2 & 2 \\ 1 & -1 & 2 & -2 \\\end(მაივი) \მარჯვნივ]$; $BC=\left[ \begin(მასივი)(*(35)(r))1 & 0 \\ 0 & 2 \\ 3 & 0 \\ 0 & 4 \\\end (მასივი) \მარჯვნივ]$.

ზოგადად, გირჩევთ ამ ამოცანის შესრულებას თავად. და კიდევ ერთი მსგავსი დავალება, რომელიც არის საშინაო დავალება. ეს ერთი შეხედვით მარტივი აზრები დაგეხმარებათ მატრიცის გამრავლების ყველა ძირითადი საფეხურის შემუშავებაში.

მაგრამ ამბავი ამით არ მთავრდება. გადავიდეთ გამრავლების განსაკუთრებულ შემთხვევებზე. :)

მწკრივის ვექტორები და სვეტების ვექტორები

მატრიცის ერთ-ერთი ყველაზე გავრცელებული ოპერაციაა გამრავლება მატრიცით, რომელსაც აქვს ერთი მწკრივი ან ერთი სვეტი.

განმარტება. სვეტის ვექტორი არის $\left[ m\ჯერ 1 \მარჯვნივ]$ მატრიცა, ე.ი. შედგება რამდენიმე მწკრივისაგან და მხოლოდ ერთი სვეტისაგან.

მწკრივის ვექტორი არის $\left[ 1\ჯერ n \მარჯვნივ]$ ზომის მატრიცა, ე.ი. შედგება ერთი რიგისა და რამდენიმე სვეტისგან.

ფაქტობრივად, ჩვენ უკვე შევხვდით ამ ობიექტებს. მაგალითად, ჩვეულებრივი სამგანზომილებიანი ვექტორი $\overrightarrow(a)=\left(x;y;z \right)$ სტერეომეტრიიდან სხვა არაფერია, თუ არა მწკრივის ვექტორი. თეორიული თვალსაზრისით, სტრიქონებსა და სვეტებს შორის განსხვავება თითქმის არ არის. სიფრთხილე გმართებთ მხოლოდ მიმდებარე მამრავლის მატრიცებთან კოორდინაციისას.

დავალება 5. გამრავლება:

\[\ მარცხენა[ \დაწყება(მასივი)(*(35)(r)) 2 & -1 & 3 \\ 4 & 2 & 0 \\ -1 & 1 & 1 \\\ბოლო (მასივი) \მარჯვნივ] \cdot \left[ \begin(მასივი)(*(35)(r)) 1 \\ 2 \\ -1 \\\ბოლო(მასივი) \მარჯვნივ]\]

გამოსავალი. ჩვენ გვაქვს თანმიმდევრული მატრიცების ნამრავლი: $\მარცხნივ[3\ჯერ 3 \მარჯვნივ]\cdot \მარცხნივ[3\ჯერ 1 \მარჯვნივ]=\მარცხნივ[3\ჯერ 1 \მარჯვნივ]$. იპოვე ეს ნაჭერი:

\[\ მარცხენა[ \დაწყება(მასივი)(*(35)(r)) 2 & -1 & 3 \\ 4 & 2 & 0 \\ -1 & 1 & 1 \\\ბოლო (მასივი) \მარჯვნივ] \cdot \left[ \begin(მაივი)(*(35)(r)) 1 \\ 2 \\ -1 \\\end (მაივი) \right]=\ მარცხენა[ \begin(მაივი)(*(35 )(r)) 2\cdot 1+\left(-1 \მარჯვნივ)\cdot 2+3\cdot \left(-1 \მარჯვნივ) \\ 4\cdot 1+2\cdot 2+0\cdot 2 \ \ -1\cdot 1+1\cdot 2+1\cdot \left(-1 \right) \\\end (მასივი) \right]=\left[ \begin(მასივი)(*(35)(r) ) -3 \\ 8 \\ 0 \\\ბოლო (მასივი) \მარჯვნივ]\]

პასუხი: $\left[ \begin(მაივი)(*(35)(r))-3 \\ 8 \\ 0 \\\end(მაივი) \მარჯვნივ]$.

დავალება 6. შეასრულეთ გამრავლება:

\[\ მარცხენა[ \დაწყება(მასივი)(*(35)(r)) 1 & 2 & -3 \\\ბოლო(მასივი) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მასივი)(*(35) (რ)) 3 & 1 & -1 \\ 4 & -1 & 3 \\ 2 & 6 & 0 \\\ბოლო (მასივი) \მარჯვნივ]\]

გამოსავალი. ისევ ყველაფერი თანმიმდევრულია: $\მარცხნივ[ 1\ჯერ 3 \მარჯვნივ]\cdot \მარცხნივ[ 3\ჯერ 3 \მარჯვნივ]=\მარცხნივ[ 1\ჯერ 3 \მარჯვნივ]$. ჩვენ განვიხილავთ სამუშაოს:

\[\ მარცხენა[ \დაწყება(მასივი)(*(35)(r)) 1 & 2 & -3 \\\ბოლო(მასივი) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მასივი)(*(35) (რ)) 3 & 1 & -1 \\ 4 & -1 & 3 \\ 2 & 6 & 0 \\\ბოლო(მასივი) \მარჯვნივ]=\მარცხნივ[ \დაწყება(მასივი)(*(35)( რ))5 & -19 & 5 \\\ბოლო(მასივი) \მარჯვნივ]\]

პასუხი: $\მარცხნივ[ \დაწყება(მატრიცა) 5 & -19 & 5 \\\ბოლო(მატრიცა) \მარჯვნივ]$.

როგორც ხედავთ, მწკრივის ვექტორისა და სვეტის ვექტორის კვადრატულ მატრიცზე გამრავლებისას გამომავალი ყოველთვის არის იგივე ზომის მწკრივი ან სვეტი. ამ ფაქტს მრავალი გამოყენება აქვს - წრფივი განტოლებების ამოხსნიდან დაწყებული ყველა სახის კოორდინატთა გარდაქმნამდე (რომელიც საბოლოოდ ასევე განტოლებათა სისტემებამდე მოდის, მაგრამ სამწუხარო რამეებზე არ ვისაუბროთ).

მგონი აქ ყველაფერი აშკარა იყო. გადავიდეთ დღევანდელი გაკვეთილის ბოლო ნაწილზე.

მატრიცის გაძლიერება

გამრავლების ყველა ოპერაციას შორის განსაკუთრებული ყურადღება იმსახურებს გაძლიერებას - ეს არის მაშინ, როდესაც ჩვენ ერთსა და იმავე ობიექტს თავისთავად რამდენჯერმე ვამრავლებთ. მატრიცები არ არის გამონაკლისი, ისინი ასევე შეიძლება გაიზარდოს სხვადასხვა ძალამდე.

ასეთი სამუშაოები ყოველთვის კოორდინირებულია:

\\cdot \left[n\ჯერ n \მარჯვნივ]=\მარცხნივ[n\ჯერ n \მარჯვნივ]\]

და ისინი მითითებულია ისევე, როგორც ჩვეულებრივი ხარისხები:

\[\begin(align) & A\cdot A=((A)^(2)); \\ & A\cdot A\cdot A=((A)^(3)); \\ & \underbrace(A\cdot A\cdot \ldots \cdot A)_(n)=((A)^(n)). \\ \ბოლო (გასწორება)\]

ერთი შეხედვით ყველაფერი მარტივია. ვნახოთ, როგორ გამოიყურება პრაქტიკაში:

დავალება 7. აწიეთ მატრიცა მითითებულ სიმძლავრემდე:

$((\ მარცხენა[ \დაწყება(მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ])^(3))$

გამოსავალი. კარგი, ავაშენოთ. ჯერ გავასწოროთ კვადრატში:

\[\ დასაწყისი(გასწორება) & ((\მარცხნივ[ \დაწყება(მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ])^(2))=\მარცხნივ[ \დაწყება(მატრიცა ) 1 & 1 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო (მატრიცა) \მარჯვნივ]= \\ & =\მარცხენა[ \დაწყება(მასივი)(*(35)(r)) 1\cdot 1+1\cdot 0 & 1\cdot 1+1\cdot 1 \\ 0\cdot 1+1\cdot 0 & 0\cdot 1+1\cdot 1 \\\ბოლო(მასივი) \მარჯვნივ]= \\ & =\მარცხნივ[ \დაწყება(მასივი)(*(35)(r)) 1 & 2 \\ 0 & 1 \ \\ბოლო(მასივი) \მარჯვნივ] \ბოლო(გასწორება)\]

\[\ დასაწყისი (გასწორება) & ((\მარცხნივ[ \დაწყება(მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ])^(3))=((\მარცხნივ[ \დაწყება (მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ])^(3))\cdot \მარცხნივ[ \დაწყება(მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო( მატრიცა) \მარჯვნივ]= \\ & =\მარცხნივ[ \დაწყება(მასივი)(*(35)(რ)) 1 & 2 \\ 0 & 1 \\\ბოლო (მასივი) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ]= \\ & =\მარცხნივ[ \დაწყება(მატრიცა)(*(35)(რ)) 1 & 3 \\ 0 და 1 \\\ბოლო(მასივი) \მარჯვნივ] \ბოლო(გასწორება)\]

Სულ ეს არის.:)

პასუხი: $\მარცხნივ[ \დაწყება(მატრიცა)1 & 3 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ]$.

ამოცანა 8. აწიეთ მატრიცა მითითებულ სიმძლავრემდე:

\[((\მარცხნივ[ \დაწყება(მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ])^(10))\]

გამოსავალი. უბრალოდ არ იტირო იმაზე, რომ "დიპლომი ძალიან მაღალია", "სამყარო არ არის სამართლიანი" და "მასწავლებლებმა მთლიანად დაკარგეს ბანკი". სინამდვილეში, ყველაფერი მარტივია:

\[\ დასაწყისი (გასწორება) & ((\ მარცხნივ[ \დაწყება(მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ])^(10))=((\მარცხნივ[ \დაწყება (მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ])^(3))\cdot ((\ მარცხნივ[ \ დასაწყისი (მატრიცა) 1 & 1 \\ 0 & 1 \\\ დასასრული(მატრიცა) \მარჯვნივ])^(3))\cdot ((\მარცხნივ[\დაწყება(მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ])^(3))\ cdot \მარცხნივ[ \დაწყება(მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო (მატრიცა) \მარჯვნივ]= \\ & =\მარცხნივ(\მარცხნივ[ \დაწყება(მატრიცა) 1 & 3 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მატრიცა) 1 & 3 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ)\cdot \მარცხნივ(\მარცხნივ[ \ დასაწყისი (მატრიცა) 1 & 3 \\ 0 & 1 \\\ბოლო (მატრიცა) \მარჯვნივ]\cdot \მარცხნივ[ \ დასაწყისი (მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო (მატრიცა) \მარჯვნივ ] \მარჯვნივ)= \\ & =\მარცხნივ[ \დაწყება(მატრიცა) 1 და 6 \\ 0 & 1 \\\ბოლო (მატრიცა) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მატრიცა) 1 & 4 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ]= \\ & =\მარცხნივ[ \დაწყება(მატრიცა) 1 & 10 \\ 0 & 1 \\\ბოლო (მატრიცა) \მარჯვნივ] \ბოლო (გასწორება)\ ]

გაითვალისწინეთ, რომ მეორე სტრიქონში გამოვიყენეთ გამრავლების ასოციაციურობა. ფაქტობრივად, ჩვენ ვიყენებდით მას წინა ამოცანაში, მაგრამ იქ იყო ნაგულისხმევი.

პასუხი: $\მარცხნივ[ \დაწყება(მატრიცა) 1 & 10 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ]$.

როგორც ხედავთ, არაფერია რთული მატრიცის ძალამდე აყვანაში. ბოლო მაგალითი შეიძლება შეჯამდეს:

\[((\მარცხნივ[ \დაწყება(მატრიცა) 1 & 1 \\ 0 & 1 \\\ბოლო(მატრიცა) \მარჯვნივ])^(n))=\მარცხნივ[ \დაწყება(მატრიცა)(*(35) (r)) 1 & n \\ 0 & 1 \\\ ბოლოს (მასივი) \მარჯვნივ]\]

ეს ფაქტი ადვილი დასამტკიცებელია მათემატიკური ინდუქციის ან პირდაპირი გამრავლების გზით. თუმცა, ყოველთვის არ არის შესაძლებელი ასეთი შაბლონების დაჭერა ძალაზე ამაღლებისას. ამიტომ, ფრთხილად იყავით: ხშირად უფრო ადვილი და სწრაფია რამდენიმე მატრიცის „ცარიელში“ გამრავლება, ვიდრე იქ რამდენიმე ნიმუშის ძებნა.

ზოგადად, ნუ ეძებთ უფრო მაღალ მნიშვნელობას, სადაც არ არის. და ბოლოს, განვიხილოთ უფრო დიდი მატრიცის სიძლიერე - $\left[ 3\ჯერ 3 \მარჯვნივ]$.

ამოცანა 9. აწიეთ მატრიცა მითითებულ სიმძლავრემდე:

\[((\მარცხნივ[ \დაწყება(მატრიცა) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\ბოლო (მატრიცა) \მარჯვნივ])^(3))\]

გამოსავალი. მოდი ნუ ვეძებთ შაბლონებს. ჩვენ ვმუშაობთ "მეშვეობით":

\[((\მარცხნივ[ \დაწყება(მატრიცა) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\ბოლო(მატრიცა) \მარჯვნივ])^(3))=(( \left[ \begin(მატრიცა) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(მატრიცა) \მარჯვნივ])^(2))\cdot \ მარცხნივ[ \დაწყება (მატრიცა)0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\ ბოლოს (მატრიცა) \\ მარჯვენა]\]

დავიწყოთ ამ მატრიცის კვადრატში:

\[\ დასაწყისი (გასწორება) & ((\ მარცხნივ[ \ დასაწყისი (მატრიცა) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\ბოლო (მატრიცა) \მარჯვნივ])^( 2))=\მარცხნივ[ \დაწყება(მატრიცა) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\ბოლო(მატრიცა) \მარჯვნივ]\cdot \მარცხნივ[ \დაწყება(მატრიცა ) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\ბოლო(მატრიცა) \მარჯვნივ]= \\ & =\მარცხნივ[ \დაწყება(მასივი)(*(35)(r )) 2 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 2 \\\ ბოლოს (მასივი) \მარჯვნივ] \ბოლო (გასწორება)\]

ახლა მოდით კუბური გავხადოთ:

\[\ დასაწყისი (გასწორება) & ((\ მარცხნივ[ \ დასაწყისი (მატრიცა) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\ბოლო (მატრიცა) \მარჯვნივ])^( 3))=\მარცხნივ[ \დაწყება(მასივი)(*(35)(r)) 2 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 2 \\\ბოლო (მასივი) \მარჯვნივ] \cdot \left[ \დაწყება(მატრიცა) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\ბოლო (მატრიცა) \მარჯვნივ]= \\ & =\ მარცხნივ[ \დაწყება( მასივი)(*(35)(r)) 2 & 3 & 3 \\ 3 & 2 & 3 \\ 3 & 3 & 2 \\\ ბოლოს (მასივი) \მარჯვნივ] \ბოლო (გასწორება)\]

Სულ ეს არის. პრობლემა მოგვარებულია.

პასუხი: $\მარცხნივ[ \დაწყება(მატრიცა) 2 & 3 & 3 \\ 3 & 2 & 3 \\ 3 & 3 & 2 \\\ბოლო (მატრიცა) \მარჯვნივ]$.

როგორც ხედავთ, გამოთვლების რაოდენობა უფრო დიდი გახდა, მაგრამ მნიშვნელობა საერთოდ არ შეცვლილა. :)

ეს გაკვეთილი შეიძლება დასრულდეს. შემდეგ ჯერზე განვიხილავთ შებრუნებულ ოპერაციას: ჩვენ ვეძებთ ორიგინალურ მულტიპლიკატორებს არსებული პროდუქტის გამოყენებით.

როგორც უკვე მიხვდით, ჩვენ ვისაუბრებთ შებრუნებულ მატრიცაზე და მის პოვნის მეთოდებზე.

განმარტება 1

მატრიცების ნამრავლი (C=AB) არის ოპერაცია მხოლოდ თანმიმდევრული A და B მატრიცებისთვის, რომლებშიც A მატრიცის სვეტების რაოდენობა უდრის B მატრიცის რიგების რაოდენობას:

C ⏟ m × n = A ⏟ m × p × B ⏟ p × n

მაგალითი 1

მატრიცის მონაცემები:

  • A = a (i j) ზომები m × n;
  • B = b (i j) p × n

მატრიცა C, რომლის ელემენტები c i j გამოითვლება შემდეგი ფორმულით:

c i j = a i 1 × b 1 j + a i 2 × b 2 j +. . . + a i p × b p j, i = 1, . . . m , j = 1 , . . . მ

მაგალითი 2

მოდით გამოვთვალოთ პროდუქტები AB=BA:

A = 1 2 1 0 1 2, B = 1 0 0 1 1 1

ამოხსნა მატრიცის გამრავლების წესის გამოყენებით:

A ⏟ 2 × 3 × B ⏟ 3 × 2 = 1 2 1 0 1 2 × 1 0 0 1 1 1 = 1 × 1 + 2 × 0 + 1 × 1 1 × 0 + 2 × 1 + 1 × 1 0 × 1 + 1 × 0 + 2 × 1 0 × 0 + 1 × 1 + 2 × 1 = = 2 3 2 3 ⏟ 2 × 2

B ⏟ 3 × 2 × A ⏟ 2 × 3 = 1 0 0 1 1 1 × 1 2 1 0 1 2 = 1 × 1 + 0 × 0 1 × 2 + 0 × 1 1 × 1 + 0 × 2 0 × 1 + 1 × 0 0 × 2 + 1 × 1 0 × 1 + 1 × 2 1 × 1 + 1 × 0 1 × 2 + 1 × 1 1 × 1 + 1 × 2 = 1 2 1 0 1 2 1 3 3 ⏟ 3×3

ნამრავლი A B და B A გვხვდება, მაგრამ ისინი სხვადასხვა ზომის მატრიცებია: A B არ უდრის B A-ს.

მატრიცის გამრავლების თვისებები

მატრიცის გამრავლების თვისებები:

  • (A B) C = A (B C) - მატრიცის გამრავლების ასოციაციურობა;
  • A (B + C) \u003d A B + A C - გამანაწილებელი გამრავლება;
  • (A + B) C \u003d A C + B C - გამრავლების განაწილება;
  • λ (A B) = (λ A) B
მაგალითი 1

შეამოწმეთ თვისება #1: (A B) C = A (B C):

(A × B) × A = 1 2 3 4 × 5 6 7 8 × 1 0 0 2 = 19 22 43 50 × 1 0 0 2 = 19 44 43 100,

A (B × C) = 1 2 3 4 × 5 6 7 8 1 0 0 2 = 1 2 3 4 × 5 12 7 16 = 19 44 43 100 .

მაგალითი 2

ჩვენ ვამოწმებთ თვისებას No2: A (B + C) \u003d A B + A C:

A × (B + C) = 1 2 3 4 × 5 6 7 8 + 1 0 0 2 = 1 2 3 4 × 6 6 7 10 = 20 26 46 58,

A B + A C \u003d 1 2 3 4 × 5 6 7 8 + 1 2 3 4 × 1 0 0 2 \u003d 19 22 43 50 + 1 4 3 8 \u003d 20 26 46 58.

სამი მატრიცის პროდუქტი

სამი A B C მატრიცის ნამრავლი გამოითვლება 2 გზით:

  • იპოვეთ A B და გაამრავლეთ C-ზე: (A B) C;
  • ან იპოვეთ ჯერ B C და შემდეგ გაამრავლეთ A (B C) .
მაგალითი 3

გაამრავლეთ მატრიცები 2 გზით:

4 3 7 5 × - 28 93 38 - 126 × 7 3 2 1

მოქმედების ალგორითმი:

  • იპოვეთ 2 მატრიცის ნამრავლი;
  • შემდეგ კვლავ იპოვნეთ 2 მატრიცის ნამრავლი.

ერთი). A B \u003d 4 3 7 5 × - 28 93 38 - 126 \u003d 4 (- 28) + 3 × 38 4 × 93 + 3 (- 126) 7 (- 28) + 5 × 38 7 5 × 93 + 126 ) = 2 - 6 - 6 21

2). A B C = (A B) C = 2 - 6 - 6 21 7 3 2 1 = 2 × 7 - 6 × 2 2 × 3 - 6 × 1 - 6 × 7 + 21 × 2 - 6 × 3 + 21 × 1 = 2 0 0 3 .

ჩვენ ვიყენებთ ფორმულას A B C \u003d (A B) C:

ერთი). B C = - 28 93 38 - 126 7 3 2 1 = - 28 × 7 + 93 × 2 - 28 × 3 + 93 × 1 38 × 7 - 126 × 2 38 × 3 - 126 × 1 = 2 - 14 - 10

2). A B C \u003d (A B) C \u003d 7 3 2 1 - 10 9 14 - 12 \u003d 4 (- 10) + 3 × 14 4 × 9 + 3 (- 12) 7 (- 10) + 5 × 14 7 9 + 5 (- 12) = 2 0 0 3

პასუხი: 4 3 7 5 - 28 93 38 - 126 7 3 2 1 = 2 0 0 3

მატრიცის გამრავლება რიცხვზე

განმარტება 2

A მატრიცის ნამრავლი k რიცხვით არის B \u003d A k იგივე ზომის მატრიცა, რომელიც მიიღება ორიგინალიდან მისი ყველა ელემენტის მოცემულ რაოდენობაზე გამრავლებით:

b i, j = k × a i, j

მატრიცის რიცხვზე გამრავლების თვისებები:

  • 1 × A = A
  • 0 × A = ნულოვანი მატრიცა
  • k(A + B) = kA + kB
  • (k + n) A = k A + n A
  • (k×n)×A = k(n×A)
მაგალითი 4

იპოვეთ მატრიცის ნამრავლი A \u003d 4 2 9 0 5-ზე.

5 A = 5 4 2 9 0 5 × 4 5 × 2 5 × 9 5 × 0 = 20 10 45 0

მატრიცის გამრავლება ვექტორზე

განმარტება 3

მატრიცისა და ვექტორის ნამრავლის საპოვნელად, თქვენ უნდა გაამრავლოთ სტრიქონი-სვეტი წესის მიხედვით:

  • თუ მატრიცას ამრავლებთ სვეტის ვექტორზე, მატრიცაში სვეტების რაოდენობა უნდა შეესაბამებოდეს სვეტის ვექტორში სტრიქონების რაოდენობას;
  • სვეტის ვექტორის გამრავლების შედეგი არის მხოლოდ სვეტის ვექტორი:

A B = a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋯ ⋯ ⋯ ⋯ a m 1 a m 2 ⋯ a m n b 1 b 2 ⋯ b 1 n = a 11 × 1 b 2 × b 1 + a 1 n × b n a 21 × b 1 + a 22 × b 2 + ⋯ + a 2 n × b n ⋯ ⋯ ⋯ ⋯ a m 1 × b 1 + a m 2 × b 2 + ⋯ + a m n × b c n = c 1 მ

  • თუ მატრიცას ამრავლებთ მწკრივის ვექტორზე, მაშინ გასამრავლებელი მატრიცა უნდა იყოს ექსკლუზიურად სვეტის ვექტორი, ხოლო სვეტების რაოდენობა უნდა ემთხვეოდეს სვეტების რაოდენობას მწკრივის ვექტორში:

A B = a ⋯ a b b ⋯ b = a 1 × b 1 a 1 × b 2 ⋯ a 1 × b n a 2 × b 1 a 2 × b 2 ⋯ a 2 × b n ⋯ ⋯ ⋯ ⋯ a n × b a n × b n = c 11 c 12 ⋯ c 1 n c 21 c 22 ⋯ c 2 n ⋯ ⋯ ⋯ ⋯ c n 1 c n 2 ⋯ c n n

მაგალითი 5

იპოვეთ A მატრიცისა და სვეტის ვექტორის B ნამრავლი:

A B \u003d 2 4 0 - 2 1 3 - 1 0 1 1 2 - 1 \u003d 2 × 1 + 4 × 2 + 0 × (- 1) - 2 × 1 + 1 × 2 + 3 × (- 1) - 1 × 1 + 0 × 2 + 1 × (- 1) = 2 + 8 + 0 - 2 + 2 - 3 - 1 + 0 - 1 = 10 - 3 - 2

მაგალითი 6

იპოვეთ მატრიცის A და მწკრივის ვექტორის ნამრავლი:

A \u003d 3 2 0 - 1, B \u003d - 1 1 0 2

A B = 3 2 0 1 × - 1 1 0 2 = 3 × (- 1) 3 × 1 3 × 0 3 × 2 2 × (- 1) 2 × 1 2 × 0 2 × 2 0 × (- 1) 0 × 1 0 × 0 0 × 2 1 × (- 1) 1 × 1 1 × 0 1 × 2 = - 3 3 0 6 - 2 2 0 4 0 0 0 0 - 1 1 0 2

პასუხი: A B \u003d - 3 3 0 6 - 2 2 0 4 0 0 0 0 - 1 1 0 2

თუ შეამჩნევთ შეცდომას ტექსტში, მონიშნეთ იგი და დააჭირეთ Ctrl+Enter



ბოლო განყოფილების სტატიები:

პირველი მილიცია პრობლემურ დროში პრეზენტაცია
პირველი მილიცია პრობლემურ დროში პრეზენტაცია

სლაიდი 1 პრობლემების დრო სლაიდი 2 XVII საუკუნის დასაწყისში რუსეთის სახელმწიფო სამოქალაქო ომისა და ღრმა კრიზისის ცეცხლმა მოიცვა. თანამედროვეები...

სიტყვების პარაზიტები ბავშვთა მეტყველებაში
სიტყვების პარაზიტები ბავშვთა მეტყველებაში

თანამედროვე საზოგადოების ერთ-ერთი ყველაზე მნიშვნელოვანი პრობლემა მეტყველების კულტურის პრობლემაა. საიდუმლო არ არის, რომ ჩვენმა გამოსვლამ ცოტა ხნის წინ განიცადა...

დაწყებით სკოლაში ლიტერატურული კითხვის გაკვეთილების პრეზენტაცია ე
დაწყებით სკოლაში ლიტერატურული კითხვის გაკვეთილების პრეზენტაცია ე

სლაიდი 2 2009 წლის 4 ნოემბერი ნ.ს. პაპულოვა 2 ელენა ალექსანდროვნა ბლაგინინა. (1903-1989) - რუსი პოეტი, მთარგმნელი. სლაიდი 3 ბარგის კლერის ქალიშვილი...