Giải PT Vi phân (Bài trước)

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[
{ ...,{ik, jk} -> vk, }, {m,n}]
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ụ:

In[1]:= Table[a[i, j], {i, 2}, {j, 2}] // MatrixForm
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ụ:

In[1]:= Sqrt[{a, b, c}]
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).

In[1]:= {a, b} + {c , d}
Out[1]:= {a + c, b + d}

In[1]:= c {a, b}
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

In[1]:= {{a, b}, {c, d}} . {{1, 2}, {3, 4}}
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

In[1]:= Inverse[{{1, -2}, {3, 2.}}]
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}]

Đăng ký nhận bài viết mới
Giải PT Vi phân (Bài trước)