Trực tiếp: là các phương pháp đưa ra nghiệm chính xác bởi một số hữu hạn các phép toán số học sơ cấp (khử Gauss). Các phương pháp trực tiếp thực hiện trên máy tính thườ[r]
(1)BÀI
MA TRẬN VÀ HỆ
(2)HỆ PHƯƠNG TRÌNH TUYẾN TÍNH (1) 1. HỆ PHƯƠNG
TRÌNH TUYẾN TÍNH gồm m phương trình n ẩn hệ có dạng
m n mm 2 m 1 m n n 2 22 21 n n 12 11 b x a x a x a b x a x a x a b x a x a x a
thì hệ cịn viết dạng vectơ cột x1v1 +x2v2 +…+ xnvn = b
hay dạng phương trình ma trận Ax = b
PHƯƠNG PHÁP SỐ-Bài
(3)11 12 1n n
trong a11, a22,…,ann ≠ a22x2 +…+ a2nxn = b2
……
Cách giải: giải ngược từ lên annxn = bn
void heTGiac(vector<vector<double> > a, vector<double> &x) { unsigned n = a.size();
vector<double> y(n, 0); // y co n phan tu
y[n-1] = a[n-1][n]/a[n-1][n-1]; for (int i = n-2; i >= 0; i ) { double tong = 0.;
for(unsigned j = i+1; j <= n-1; j++)
tong = tong + a[i][j] * y[j];
y[i] = (a[i][n] - tong) / a[i][i]; }
(4)HỆ PHƯƠNG TRÌNH TUYẾN TÍNH (3) 3 MỘT SỐ ĐỊNH LÍ VỀ NGHIỆM
Định lí 4.1: Hệ Ax = b có nhiều nghiệm (tức là, nghiệm tồn ) hệ tương ứng Ax = 0 có nghiệm “tầm thường” x= 0
PHƯƠNG PHÁP SỐ-Bài
Định lí 4.2: Bất kì hệ PTTT với số phương trình số ẩn có nghiệm khơng tầm thường (khác 0)
Định lí 4.3 Nếu A ma trận cấp m × n và hệ Ax = b có nghiệm với vectơ m chiều b, thì m ≤ n.
Định lí 4.4 Cho A ma trận cấp n × n Các khẳng định sau tương đương:
(i) Hệ Ax = 0 chỉ có nghiệm tầm thường x = 0.
(5)4 LỜI GIẢI BẰNG SỐ CỦA HỆ PTTT Ax = b
Xét hệ PTTT có số phương trình số ẩn
Nếu A khả nghịch hệ có nghiệm mọi b
Có hai loại phương pháp giải:
Lặp: xuất phát với xấp xỉ ban đầu dùng thuật toán lựa chọn phù hợp, đưa xấp xỉ liên tiếp ngày tốt
Chỉ nhận nghiệm gần
Trực tiếp: phương pháp đưa nghiệm xác số hữu hạn phép toán số học sơ cấp (khử Gauss)
(6)HỆ PHƯƠNG TRÌNH TUYẾN TÍNH (5) 5. CÁC PHÉP BIẾN ĐỔI TƯƠNG ĐƯƠNG HỆ PTTT
Định lí 4.7 Cho Ax = b là hệ PTTT, xử lí hệ phép toán sau dẫn tới hệ tương đương:
(i) Nhân phương trình với số khác
(ii) Cộng phương trình nhân với số vào phương trình khác
(iii) Đổi chỗ hai phương trình
Nhận xét: Nếu với k và i xác định mà akk ≠ 0
khử ẩn xk từ phương trình thứ i cách cộng phương trình thứ k đã nhân với –(aik /akk) vào phương trình thứ i Khi hệ phương trình hệ sau tương đương với hệ ban đầu
b Ãx ~
(7)Gọi W ma trận cấp n x (n + 1) chứa ma trận vuông A n cột đầu
vectơ b cột cuối
Với k = 1, …, n–1 lặp cơng việc:
Tìm hàng trụ i ≥ k gần hàng k cho wik ≠
Nếu khơng có hàng i dừng (A khơng khả nghịch) Nếu tìm hàng i, đổi chỗ hàng i với hàng k trụ wkk Với i = k+1, , n, lặp công việc sau (khử pt trụ)
mi = wik / wkk là hệ số nhân cho hàng i
Với j = k+1, …, n+1, lặp công việc sau (biến đổi hàng i) wij = w ij – mi x wkj
Nếu wnn = dừng (A khơng khả nghịch)
Nếu trái lại hệ tam giác trên Ux = y với
và yj = wi,n+1 i = 1, …, n
j i
0
j i
w
(8)HỆ PHƯƠNG TRÌNH TUYẾN TÍNH (7) 6 PHÉP KHỬ GAUSS (tiếp)
Ví dụ : Giải hệ PTTT sau: 2x – 3y = 4x – 5y + z = 2x – y – 3z =
Giải:
Bước 1: Dùng trụ hệ để khử hệ số bên trụ đó: m2 = 4/2 = 2, m3 = 2/2 = 1 lấy pt trừ 2 lần pt 1, pt trừ 1 lần pt ta hệ: 2x – 3y =
1 y + z = y – 3z =
Bước 2: Dùng trụ thứ hai để khử hệ số bên nó: m3 = 2/1 = 2 lấy pt trừ 2 lần pt ta hệ 2x – 3y =
1y + z = –5z = giải ngược từ lên ta được: z = 0, y = 1, x =
(9)for (k = 0; k < n–1; k++) { // BUOC KHU XUOI HE TAM GIAC TREN
while (a[i] [k] == && i < n) i++; // Tim hang i gan k nhat: a[i] [k]≠0 if (a[i] [k] != && i != k) {
for (j = i; j <= n; j++) { // Doi cho hang i va hang k
t = a[i] [j]; a[i] [j] = a[k] [j]; a[k] [j] = t;
}
}
else if(a[i] [k] == 0) { // Ma tran A suy bien
cout<<"He khong co nhat nghiem"<< endl; exit(1);
}
for (i = k+1; i <= a.size()–1; i++) { // Tao ma tran dang tam giac tren
m = a[i] [k] / a[k] [k];
(10)HỆ PHƯƠNG TRÌNH TUYẾN TÍNH (9) 7 GIẢI HỆ PTTT DẠNG ĐƯỜNG CHÉO
Ma trận A = (aij) cấp n có dạng ba đường chéo aij = 0 bất
khi |i – j| > Hệ PTTT đường chéo có dạng
Ví dụ: hệ PTTT bên phải hệ ba đường chéo
n n n n n n n n n n n n 3 3 2 2 1 b x d x l b x u x d x l b x u x d x l b x u x d x l b x u x d 0 0 0 0