Giới thiệu
Hai hàm lượng giác phổ biến nhất, sine
và cosine
(hoặc sin
và cos
cho ngắn), có thể được mở rộng để có chức năng ma trận giá trị. Một cách để tính toán các chất tương tự có giá trị ma trận như sau:
Hãy xem xét hai danh tính lượng giác quan trọng sau:
Sử dụng các danh tính này, chúng ta có thể rút ra các phương trình sau cho sin
và cos
:
Các mũ ma trận tồn tại cho tất cả các ma trận vuông và được cho bởi:
nơi A 0 là bản sắc ma trận Tôi với kích thước tương tự như một . Sử dụng hàm mũ theo ma trận, hai hàm lượng giác này (và do đó tất cả các hàm lượng giác khác) có thể được đánh giá là hàm của ma trận.
Các thách thức
Cho một ma trận vuông A , xuất các giá trị của sin(A)
và cos(A)
.
Quy tắc
- Đầu vào và đầu ra có thể ở bất kỳ định dạng hợp lý, thuận tiện nào (mảng 2D, định dạng ma trận của ngôn ngữ của bạn, v.v.).
- Bạn có thể viết một chương trình, hai chương trình độc lập, một chức năng hoặc hai chức năng. Nếu bạn chọn viết hai hàm, mã có thể được chia sẻ giữa chúng (chẳng hạn như hàm nhập và hàm trợ giúp).
- Các giá trị của ma trận đầu vào sẽ luôn là số nguyên.
- Giải pháp của bạn có thể có các vấn đề chính xác do kết quả của sự thiếu chính xác. Nếu ngôn ngữ của bạn có các giá trị chính xác vô hạn kỳ diệu, thì giải pháp của bạn sẽ hoạt động hoàn hảo (bỏ qua thực tế là nó sẽ yêu cầu vô hạn thời gian và / hoặc bộ nhớ). Tuy nhiên, vì các giá trị độ chính xác vô hạn kỳ diệu đó không tồn tại, nên độ chính xác gây ra bởi độ chính xác hạn chế có thể được chấp nhận. Quy tắc này được đưa ra để tránh các biến chứng do yêu cầu một lượng chính xác cụ thể trong đầu ra.
- Không được phép xây dựng các hàm tính toán lượng giác cho các đối số ma trận (bao gồm các hàm trig hyperbol). Các nội dung ma trận khác (như phép nhân, lũy thừa, đường chéo, phân tách và hàm mũ ma trận) được cho phép.
Các trường hợp thử nghiệm
Định dạng: A -> sin(A), cos(A)
[[0]] -> [[0]], [[1]]
[[0, 2], [3, 5]] -> [[-0.761177343863758, 0.160587281888277], [0.240880922832416, -0.359709139143065]], [[0.600283445979886, 0.119962280223493], [0.179943420335240, 0.900189146538619]]
[[1, 0, 1], [0, 0, 0], [0, 1, 0]] -> [[0.841470984807897, -0.158529015192103, 0.841470984807897], [0, 0, 0], [0, 1, 0]], [[0.540302305868140, -0.459697694131860, -0.459697694131860], [0, 1, 0], [0, 0, 1]]
[[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1]] -> [[0.841470984807897, 0, 0, 0, 0], [0, 0.841470984807897, 0, 0, 0], [0, 0, 0.841470984807897, 0, 0], [0, 0, 0, 0.841470984807897, 0], [0, 0, 0, 0, 0.841470984807897]], [[0.540302305868140, 0, 0, 0, 0], [0, 0.540302305868140, 0, 0, 0], [0, 0, 0.540302305868140, 0, 0], [0, 0, 0, 0.540302305868140, 0], [0, 0, 0, 0, 0.540302305868140]]
[[-3, 2, -6], [3, 0, 4], [4, -2, 7]] -> [[-0.374786510963954, 0.135652884035570, -1.35191037980742], [1.14843105375406, 0.773644542790111, 1.21625749577185], [1.21625749577185, -0.135652884035570, 2.19338136461532]], [[4.13614256031450, -1.91289828483056, 5.50873853927692], [-2.63939111203107, 1.49675144828342, -3.59584025444636], [-3.59584025444636, 1.91289828483056, -4.96843623340878]]
Đọc thêm
Câu hỏi tuyệt vời này tại Math.SE bao gồm một số dẫn xuất thay thế của các chất tương tự có giá trị ma trận của các hàm lượng giác.
(ignoring the fact that it would require infinite time and/or memory)
sin([[1, 0, 1], [0, 0, 0], [0, 1, 0]]) = {{0.841, -0.158, 0.841}, {0, 0, 0}, {0, 1, 0}}
với Mathematica, bạn có thể kiểm tra?