- Xây dựng ma trận
- Đọc và ghi phần tử ma trận
- Một số phép toán trên ma trận
- Giải hệ phương trình tuyến tính
Xây dựng các ma trận
Table[f, {i,m}, {j,n}] |
Xây dựng ma trận cỡ m x n với là hàm của i, j để phát sinh phần tử khi i, j chạy từ 1 tới m, n |
Table[Random[], {m}, {n}] |
Sinh ma trận ngẫu nhiên cỡ m x n |
Table[If[i >= j, 1, 0], {i, m}, {j, n}] |
Sinh ma trận m x n tam giác dưới |
Array[f, {m,n}] |
Sinh ma trận m x n các phần tử dạng f[i,j] |
DiagonalMatrix[{...}] |
Sinh ma trận đường chéo, các phần tử trên đường chéo ở trong tham số danh sách |
IdentityMatrix[n] |
Tạo ma trận đơn vị cấp n |
Normal[SparseArray[ |
Sinh ma trận cỡ mxn trong đó giá trị một số phần tử được chỉ ra như {ik, jk} -> vk , còn các phần tử khác bằng 0 |
MatrixForm[] |
Hiện thị ma trận với định dạng lưới chữ nhật |
Ví dụ:
Out[1]:= \( \left( \begin{array}{cc} a(1,1) & a(1,2) \\ a(2,1) & a(2,2) \\ \end{array} \right) \)
Đọc và cập nhật dữ liệu phần tử ma trận
m[[i, j]] |
Truy cập phần tử ma trận m ở vị trí dòng i, cột j (để đọc hoặc gán) |
m[[i]] |
Dòng thứ i của ma trận m (để đọc hoặc gán) |
m[All,[i]] |
Cột thứ i của ma trận m (để đọc hoặc gán) |
Take[m, {i0, i1}, {j0, j1}] |
Ma trận con từ m (trích từ dòng i0 đến i1, cột j0 đến j1) |
Tr[m, List] |
Các phần tử trên đường chéo |
ArrayRules[m] |
Những vị trí có giá trị khác 0 của ma trận |
VectorQ[expr] |
True nếu expr là một vector |
MatrixQ[expr] |
True nếu expr là ma trận |
Dimensions[expr] |
Lấy cỡ ma trận |
Một số phép toán trên ma trận, vector
Những phép toán dựa trên các hàm Mathematica lấy ma trận (vector, danh sách) làm tham số thì nó sẽ thực hiện trên từng phần tử của ma trận đó.
Ví dụ:
Out[1]:= \( \left\{\sqrt{a},\sqrt{b},\sqrt{c}\right\} \)
Tổng hai vector cùng cỡ sẽ thực hiện trên các phần tử tương ứng của 2 vector, nhưng nếu cộng một số với một vector thì số đó cộng với từng phần tử của vector (tương tự cho nhân, chia).
Out[1]:= {a + c, b + d}
Out[1]:= {a c, b c}
Nhân hai ma trận
Nhân 2 ma trận thì dùng ký hiệu dấu chấm m . v
Out[1]:= {{a + 3 b, 2 a + 4 b}, {c + 3 d, 2 c + 4 d}}
Nghịch đảo ma trận
Inverse[m]
tìm ma trận nghịch đảo của ma trận m
Out[1]:= {{0.25, 0.25}, {-0.375, 0.125}}
Transpose[m] |
Chuyển trí ma trận |
Inverse[m] |
Nghịch đảo ma trận |
Det[m] |
Tính định thức ma trận |
MatrixRank[m] |
Hạng ma trận m |
Eigenvalues[m] |
Trị riệng của m |
Eigenvectors[m] |
Vector riêng của m |
Giải hệ phương trình tuyến tính
Phương trình tuyến tính dạng m . x = b
có nghiệm duy nhất khi Det[ m ] != 0
, nếu bằng 0 thì vô nghiệm hoặc vô số nghiệm
LinearSolve[m, b] |
Giải hệ m . x = b |
Inverse[m].[b] |
Tương đương với giải hệ bằng LinearSolve |
NullSpace[m] |
Giải hệ m.x = {0 .. 0} (hệ có vector hệ số bằng 0) |
Ví dụ:
m = {{1, 5}, {2, 1}} m . {x, y} == {a, b} Solve[%, {x, y}] LinearSolve[m, {a, b}]