1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn môn Đại số tuyến tính Đề tài ma trận hadamard

17 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ma trận Hadamard
Tác giả Nhóm 19
Người hướng dẫn ThS. Huỳnh Thái Duy Phương
Trường học Trường Đại học Bách khoa, Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Đại số tuyến tính
Thể loại Báo cáo bài tập lớn
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 17
Dung lượng 1,7 MB

Nội dung

Ma trận Hadamard có đặc điểm nổi bật là các phần tử của nó chỉ có 2 giá trị -1 và 1, và các hàng của nó đều trực giao với nhau.. Định nghĩa về cấu trúc của ma trận Hadamard Định nghĩa 1

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

🙞 ···☼··· 🙜

BÁO CÁO BÀI TẬP LỚN

MÔN ĐẠI SỐ TUYẾN TÍNH

ĐỀ TÀI 17 : MA TRẬN HADAMARD

Lớp: L13 Nhóm 19

Trang 2

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

GIỚI THIỆU

Ma trận là một công cụ quan trọng trong toán học và các ngành khoa học ứng dụng, giúp chúng ta mô tả và giải quyết nhiều bài toán phức tạp Ma trận Hadamard là một loại ma trận đặc biệt được sử dụng rộng rãi trong nhiều lĩnh vực Ma trận Hadamard không chỉ có cấu trúc độc đáo mà còn có nhiều ứng dụng hữu ích và đa dạng.

Nhà toán học người Pháp Jacques Hadamard đã đóng góp lớn vào đầu thế kỷ 20 cho Ma trận Hadamard Ma trận Hadamard có đặc điểm nổi bật là các phần tử của nó chỉ có 2 giá trị -1 và 1, và các hàng của nó đều trực giao với nhau Ma trận Hadamard có những đặc điểm riêng biệt do đó nó trở thành một công cụ quan trọng trong nhiều lĩnh vực nghiên cứu và ứng dụng.

Ma trận Hadamard có nhiều ứng dụng Ma trận này được sử dụng trong

lý thuyết mã hóa để tạo ra các mã sửa lỗi, giúp bảo vệ thông tin khỏi sự ảnh hưởng của nhiễu Ma trận Hadamard được sử dụng trong xử lý tín hiệu để thực hiện các phép biến đổi nhanh, tăng tốc độ xử lý dữ liệu Ma trận Hadamard cũng được sử dụng trong thiết kế thực nghiệm và lý thuyết thông tin.

Bài báo này cung cấp một bản tóm tắt chi tiết về ma trận Hadamard, bao gồm các khái niệm cơ bản, các đặc điểm quan trọng và các ứng dụng trong thế giới thực Chúng em sẽ trình bày các kỹ thuật xây dựng ma trận Hadamard, đưa ra những ví dụ cụ thể và trình bày các kết quả nghiên cứu liên quan Hy vọng của chúng em là bài báo cáo này sẽ cung cấp những kiến thức hữu ích và cái nhìn sâu sắc hơn về ma trận Hadamard và khơi gợi sự quan tâm và đam mê nghiên cứu trong lĩnh vực này.

Trang 3

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

MỤC LỤC

CHƯƠNG 1: CẤU TRÚC VÀ PHƯƠNG PHÁP XÂY DỰNG MA TRẬN

HADAMARD _3

1 Định nghĩa về cấu trúc của ma trận Hadamard 3

2 Phương pháp xây dựng ma trận Hadamard : _5

a Phương pháp Sylvester _5

b Phương pháp Paley 5

c Phương pháp Williamson _6 CHƯƠNG 2: MA TRẬN HADAMARD TRONG QUY HOẠCH THỰC NGHIỆM._6 CHƯƠNG 3: THỰC HÀNH XÂY DỰNG MA TRẬN HADAMARD CẤP KHÔNG QUÁ 100. _9 XÂY DỰNG MA TRẬN HADAMARD CẤP 8 9 CHƯƠNG 4: SẢN PHẨM MỘT PHẦN MỀM GIẢI QUYẾT BÀI TOÁN QUY HOẠCH THỰC NGHIỆM. _11

II Đoạn mã _11

1 Hàm hadarmard(n) _13

2 Hàm print_matrix(matrix) _13

3 Hàm main() _13 TỔNG KẾT 15 TÀI LIỆU THAM KHẢO 16

Trang 4

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

CHƯƠNG 1: CẤU TRÚC VÀ PHƯƠNG PHÁP XÂY DỰNG MA

TRẬN HADAMARD

1 Định nghĩa về cấu trúc của ma trận Hadamard

Định nghĩa 1 :Một ma trận H = (a ) vuông cấp n được gọi là ma trận Hadamard nếu thỏaij

mãn những điều sau:

|aij| = 1

Ht H=nIn

Từ định nghĩa 1, ta thấy điều kiện |a | = 1 dễ dàng kiểm chứng trong khi H H = nI yêuij t n

cầu kiểm tra bằng các bước tính toán, điều kiện này tương đương với các hàng trong ma trận H đôi một trực giao với nhau

Ta có định lý sau:

Định lý 1: Ma trận H = (a ) với |a | = 1 có tất cả các hàng trực giao với nhau từng đôi mộtij ij

nếu và chỉ nếu Ht.H có các phần tử trên đường chéo chính khác 0 và các phần tử còn lại bằng 0, khi đó nếu ma trận H là ma trận Hadamard thì:

Ht.H = nIn

Định lý 2 :Với ma trận M là ma trận vuông cấp n được tạo thành từ các phần tử +1 và -1:

|det(M)| ≤ nn/2

Từ công thức H H = nI suy ra |H H|= nn mà |H|= |H | nên |H|= n t t t n/2

Từ đó, giá trị tuyệt đối của định thức của ma trận Hadamard có giá trị lớn nhất trong số định thức của các ma trận vuông được tạo thành từ 2 phần tử 1 và -1 cùng cấp

Định lý 3: Ma trận Hadamard là ma trận khả nghịch

Định lý 4: Một ma trận Hadamard có cấp là 1, 2 hoặc 4t với t là số nguyên dương

Từ đó suy ra rằng nếu H là ma trận Hadamard thì H cũng là ma trận Hadamard, nếu cáct

hàng của H đôi một trực giao với nhau thì các cột của H cũng đôi một trực giao với nhau Một vài ma trận Hadamard (dấu "-" đại diện cho phần tử-1, dấu "+" đại diện phần tử 1): Cấp 2

¿ Cấp 4

¿

Trang 5

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

Cấp 12

¿ Một vài ma trận Hadamard dưới dạng ảnh (ô màu trắng đại diện cho các phần tử có giá trị -1, ô màu xanh đại diên cho các phần tử có giá trị1 )( Từ trái sang:

Cấp ma trận 8 -16 -32 -64 )

Bằng các phép biến đổi, người ta có thể đưa một ma trận Hadamard cho trước về dạng

ma trận cùng cấp có hàng đầu tiên hoặc hàng đầu tiên bằng 1 (dạng chuẩn)

Định nghĩa 2 (Dạng chuẩn): Là ma trận Hadamard có hàng đầu tiên và cột đầu tiên gồm toàn bộ các phần tử là 1 Lõi Hadamard là phần ma trận còn lại sau khi đã loại bỏ hàng và cột đầu tiên của ma trận Hadamard ở dạng chuẩn

*Một vài dạng đặc biệt của ma trận Hadamard:

Định nghĩa 3 (Dạng Xiên) : Là ma trận Hadamard H có dạng:

H =A+I với At = −A (ma trận phản đối xứng ) và I là ma trận đơn vị (1.2)

Nhận xét: Các ma trận A có được nhờ lấy H − I là các ma trận hội nghị (Conference matrix [7]) Đây là một loại ma trận được sử dụng nhiều trong thiết lập mạch điện thoại Định nghĩa 4 (Dạng đều) : Là ma trận Hadamard có tổng các phần tử mỗi hàng (mỗi cột) bằng nhau

Trang 6

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

Định nghĩa 5: Tích Kronecker của 2 ma trận A = [aij]m×p và B =[bij]q×s được ký hiệu là , là ma trận cấp mq × ps được định nghĩa bởi:

2 Phương pháp xây dựng ma trận Hadamard :

a.Phương pháp Sylvester

Định lý 1 :Nếu H là ma trận Hadamard thì H’=[H H

H −H] được gọi là ma trận Sylvester– Hadamard

Thực chất, ma trận H′ có được từ việc lấy tích Kronecker của ma trận H và ¿ ma trận Hadamard có cấp là 2 Tổng quát hơn, ta có thể tìm được ma trận Hadamard cấp n nào đó với điều kiện n = 2×t mà ta đã biết ma trận Hadamard cấp t

Từ 1 ma trận Hadamard đã biết, ta có thể tìm được lớp các ma trận có cấp gấp 2t cấp ma trận đã biết Như vậy, nếu ta chọn cấp của ma trận H đầu vào là 2 thì ta có thể xây dựng

ma trận Hadamard với cấp 2t với t là các số nguyên dương

b Phương pháp Paley

được gọi là ma trận tuần hoàn

Hai bổ đề dưới đây tương ứng với hai trường hợp của phương pháp Paley:

1 Nếu n=p+1 với p≡3 (mod4) và p là số nguyên tố thì tồn tại ma trận Hadamard cấp n

2 Nếu n chia hết cho 4 và có dạng n=2(p+1) ,p là số nguyên tố thì tồn tại ma trận Hadamard cấp n

Trang 7

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

c Phương pháp Williamson

Ma trận H có dạng:

được gọi là ma trận kiểu Williamson nếu các khối A, B, C và D là các ma trận vuông Nếu A, B, C, D được thay bằng các ma trận vuông cấp n, H trở thành ma trận vuông cấp 4×n Để ma trận H là ma trận Hadamard thì H H là ma trận 4nI Theo kiểu t

n

Williamson, khi nhân ma trận H và H thì sẽ được một ma trận kết quả có cấp 4n mà t

các phần tử trên đường chéo chính sẽ bằng nhau và bằng A.At+B.B +C.C +D.Dt t t= 4nI nếu H là ma trận Hadamard.Các phần tử còn lại của ma trận H.H , ví dụ như phần tử ởt

vị trí hàng 1 ,cột 2 là B.At−A.B +D.C −C.Dt t t phải bằng ma trận 0 Lần lượt thực hiện phép nhân ma trận H với H , ta thấy các ma trận A,B,C, D tương ứng trong dạng kiểu t

Williamson sẽ tạo thành ma trận Hadamard khi và chỉ khi từng đôi X,Y khác nhau được chọn từ A,B,C,D thỏa mãn: X.Yt=Y.Xt

CHƯƠNG 2: MA TRẬN HADAMARD TRONG QUY HOẠCH THỰC NGHIỆM

 Qui hoạch thực nghiệm được gọi là trực giao khi tích của ma trận qui hoạch là ma trận trực giao (ATA=AA =IT ) Mục tiêu của qui hoạch trực giao nhằm đạt đến việc khi vận hành phần này của qui hoạch sẽ không gây các ảnh hưởng phụ đến các phần khác của qui hoạch Tính trực giao của một qui hoạch cho phép việc xây dựng các qui hoạch phức tạp trở nên khả thi và gọn nhẹ

 Cách tìm ra ma trận Hadamard từ một ma trận Hadamard khác bằng phương pháp Sylvester :

- Nếu H là ma trận Hadamard thì H'

H −H)cũng là ma trận Hadamard, được gọi là ma trận Sylvester – Hadamard

- Ma trận H′ có được từ việc lấy tích Kronecker của ma trận H và ma trận Hadamard ¿ có cấp là 2

Trang 8

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

 Từ 1 ma trận Hadamard đã biết, ta có thể tìm được lớp các ma trận có cấp gấp

2t cấp ma trận đã biết, Như vậy, nếu ta chọn cấp của ma trận đầu vào là 2 thìH

ta có thể xây dựng ma trận Hadamard với cấp 2 với là các số nguyên dương.t t

 Để chứng minh tính đúng đắn của phương pháp, ta kiểm tra các điều kiện từ định nghĩa của ma trận Hadamard:

1 Các phần tử của ma trận là 1 hoặc -1

2 Các hàng (hoặc cột) đôi một trực giao với nhau

Trang 9

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

 Dễ thấy, điều kiện đầu tiên luôn luôn thỏa mãn với cách sinh ma trận này Với điều kiện thứ 2, ta sẽ tính tích vô hướng các hàng trong ma trận để kiểm tra.H′ Thật vậy, vì là các ma trận Hadamard nên các hàng của đã trực giao với nhauH H từng đôi Ta lại có −H cũng là ma trận Hadamard Từ đó, ta chứng minh được tích

vô hướng của các hàng trong ma trận đều bằng 0 Suy ra, các hàng trong maH′ trận đều trực giao với nhau từng đôi một.H′

 Phương pháp này có ưu điểm là dễ cài đặt, ma trận sinh ra đã ở dạng chuẩn nếu

ma trận đầu vào là dạng chuẩn, tiết kiệm thời gian và tài nguyên để chuẩn hóa ma trận Nhược điểm: Phương pháp chỉ giúp ta tìm được ma trận có cấp là 2 , nhưp

vậy, những ma trận có cấp nằm trong khoảng (2 , 2 ) sẽ bị bỏ sót.p p+1

Trang 10

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

CHƯƠNG 3: THỰC HÀNH XÂY DỰNG MA TRẬN HADAMARD CẤP KHÔNG QUÁ 100

XÂY DỰNG MA TRẬN HADAMARD CẤP 8

Hãy bắt đầu với ma trận Hardamard cấp 1, giả sử nó là

H 1=[1]

Theo cách xây dựng ma trận của Sylvester ta mở rộng ma trận cấp 1 bằng cách tạo 3 bản sao của chúng và 1 bản sao nghịch đảo ở ở góc phải ma trận Từ đó ta được ma trận cấp 2

H 2=[1 1

1 −1]

Lặp lại như bước trên ta tiếp tục mở rộng ma trận cấp 2 để thu được ma trận cấp 4

Cụ thể như sau:

Tạo 3 bản sao của ma trận cấp 2:

H 2=[1 1

1 −1] H 2=[1 1

1 −1] H 2=[1 1

1 −1]

Tạo 1 bản sao nghịch đảo của ma trận cấp 2:

Ta có :

H 4=[H 2 H 2

H 2 −H 2]

H 4=[1 1

1 −1

1 −1

1 −1

−1 −1

Tiếp tục mở rộng ma trận cấp 4 ta thu được ma trận cấp 8

1 1 1

−1 1

−1

1

−1

−1

−1

−1 1

−1

−1

−1

1

−1 1

−1 1 1

1 1

−1]

Trang 11

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

H 2=[−1 1

Tương tự ở ví dụ 1 ta xây dựng được ma trận cấp 4

H 4=[−1 1

−1 1

−1 1

Tiếp đó ta xây dựng ma trận cấp 8 từ ma trận cấp 4 đã có :

−1 −1

−1 1 −1

−1 −1

−1 −1 1

Trang 12

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

CHƯƠNG 4: SẢN PHẨM MỘT PHẦN MỀM GIẢI QUYẾT BÀI TOÁN QUY HOẠCH THỰC NGHIỆM

I Giới thiệu

Phương pháp xây dựng ma trận Hadamard có thể thực hiện thông qua nhiều cách tiếp cận khác nhau, trong đó phương pháp đệ quy (dựa theo phương pháp Sylvester) là một cách tiếp cận hiệu quả và dễ hiểu Trong phương pháp này, chúng ta sẽ bắt đầu từ một ma trận Hadamard cơ bản kích thước 1x1, và sau đó sử dụng đệ quy để xây dựng các ma trận Hadamard lớn hơn từ các ma trận nhỏ hơn

Về cách hoạt động của thuật toán, khi được tăng lên, ma trận Hadamard cấp 2 đượcn n

tạo ra bằng cách chia ma trận thành 4 phần bằng nhau và lặp lại quá trình này cho mỗi phần Việc này tạo ra một cấu trúc đệ quy, trong đó mỗi lần lặp, kích thước của ma trận lại tăng lên gấp đôi

Cách xây dựng ma trận này có ưu điểm là dễ cài đặt, ma trận sinh ra đã ở dạng chuẩn nếu ma trận đầu vào là dạng chuẩn, tiết kiệm thời gian và tài nguyên để chuẩn hóa ma trận Nhược điểm của phương pháp này là phương pháp chỉ giúp chúng ta tìm được ma trận có cấp là 2 , như vậy những ma trận có cấp nằm trong khoảng (2 , 2 ) sẽ bị bỏ sót.k k k+1

II Đoạn mã

#include<iostream>

#include<vector>

#include<cmath>

#include<iomanip>

using namespace std;

// Hàm tính toán ma trận Hadamard cấp 2^n bằng phương pháp đệ quy

vector vector< <int>> hadamard(int n) {

// Nếu n = 0, trả về ma trận 1x1 với giá trị 1

( if n== ) {0

return {{1}};

} else {

// Gọi đệ quy để tính ma trận Hadamard cấp 2^(n-1)

vector vector< < >>int smaller_hadamard=hadamard(n -1);

int size =pow(2, n); // Kích thước của ma trận Hadamard cấp 2^n

vector vector< < >>int result size( , vector< >(int size));

// Sao chép các giá trị từ ma trận Hadamard cấp 2^(n-1) vào ma trận kết quả

Trang 13

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

result i[ +size/2][j] =smaller_hadamard i j[ ][ ];

result i j[ ][ +size 2]=smaller_hadamard i j[ ][ ];

result i[ +size/2][j+size/2]=-smaller_hadamard i j[ ][ ];

}

}

returnresult;

}

}

// Hàm in ma trận

voidprint_matrix(constvector vector< < >> int &matrix) {

for (const auto&row matrix : ) {

for ( intelement row : ) {

cout<<setw(2) <<element<<" ";

}

cout<<endl;

}

}

int main() {

int n;

cout<<"Nhap so cap cua ma tran: ";

cin>>n;// Độ lớn của ma trận Hadamard là 2^n

(if floor(log2( ))n ==log2(n)){

cout<<"Ma tran Hadamard cap "<<n<<" la: "<< endl;

vector vector< < >>int hadamard_matrix =hadamard log2( (n));

print_matrix(hadamard_matrix);

}

else{

cout<<"He thong khong the tim ma tran Hadamard theo cap "<<n<<" Duoi day

la ma tran Hadamard cap "<< pow(2,( )intlog2(n)) <<":"<< endl;

vector vector< < >>int hadamard_matrix =hadamard log2( (n));

print_matrix(hadamard_matrix);

}

return ;0

}

Trang 14

GVHD:ThS Huỳnh Thái Duy Phương Nhóm 19

III Sản phẩm

IV Giải thích chi tiết

1 Hàm hadarmard(n)

- Đây là một hàm đệ quy Nếu là ma trận Hadamard cấp 2 , thì hàm này tính Hn n Hn

dựa trên Hn-1

- Trong trường hợp cơ sở (gọi là điều kiện dừng), nếu = 0, hàm trả về ma trận 1x1n với phần tử duy nhất là 1

- Trong trường hợp khác, hàm gọi đệ quy để lấy ma trận Hadamard cấp 2 (n-1 Hn-1)

- Sau đó, hàm tạo ra ma trận có kích thước 2 x 2 từ Hn n n Hn-1 Bước này gần như nhân đôi kích thước của ma trận Hadamard cũ

- Ma trận Hadamard cấp 2 được tạo ra bằng cách sao chép các giá trị từ ma trậnn

Hadamard cấp 2 vào ma trận kết quả Mỗi giá trị trong ma trận Hadamard cấp 2n-1

n-1 được sao chép vào bốn vị trí trong ma trận kết quả, với hai vị trí ở góc trên bên trái giữ nguyên giá trị, hai vị trí ở góc dưới bên phải giữ nguyên giá trị và hai vị trí còn lại được gán giá trị âm của giá trị tương ứng trong ma trận Hadamard cấp 2 n-1

2 Hàm print_matrix(matrix)

- Hàm để in ma trận kết quả

- Hàm duyệt qua từng hàng của ma trận (mảng) và in ra từng phần tử của hàng đó

Ngày đăng: 13/11/2024, 14:01

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w