1. Trang chủ
  2. » Sinh học

Bài giảng Phương pháp số: Bài 3 - ThS. Nguyễn Thị Vinh

10 7 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 467,66 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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]

Trang 1

BÀI 3

MA TRẬN VÀ HỆ PHƯƠNG TRÌNH TUYẾN TÍNH

Trang 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 là một hệ có dạng 

m n

mm 2

2 m 1

1 m

2 n

n 2 2

22 1

21

1 n

n 1 2

12 1

11

b x

a

x a x a

b x a

x a x a b x a

x a x a thì hệ trên còn có thể viết ở dạng vectơ cột x1v1 +x2v2 +…+ xnvn = b hay dạng phương trình ma trận A x = b PHƯƠNG PHÁP SỐ-Bài 3 2 và x x x x , b b b b n), 1,2, ,

(j , a a a v n 2 1 m 2 1 mj 2j 1j j                                              , a

a a

a

a a a

a a

A

m n

m 2

m 1

2n 22

21

1n 12

11

Nếu đặt

Trang 3

11 1 12 2 1n n 1

trong đó a11, a22,…,ann ≠ 0 a22x2 +…+ a2nxn = b2

……

Cách giải: giải ngược từ dưới 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 0

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];

}

x = y;

Trang 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 nhất một nghiệm (tức là,

nghiệm là duy nhất nếu tồn tại ) nếu và chỉ nếu hệ thuần nhất

tương ứng Ax = 0 chỉ có nghiệm “tầm thường” x= 0

Định lí 4.2: Bất kì hệ PTTT thuần nhất nào với số phương

trình ít hơn số ẩn đều có nghiệm không tầm thường (khác 0)

Định lí 4.3 Nếu A là một ma trận cấp m × n và hệ Ax = b có

nghiệm với mọi vectơ m chiều b, thì m ≤ n

Định lí 4.4 Cho A là ma trận cấp n × n Các khẳng định sau

đây là tương đương:

(i) Hệ thuần nhất Ax = 0 chỉ có nghiệm tầm thường x = 0 (ii) Với mọi vế phải b, hệ Ax = b luôn có nghiệm

(iii) A là ma trận khả nghịch

Trang 5

4 LỜI GIẢI BẰNG SỐ CỦA HỆ PTTT Ax = b

Xét các hệ PTTT có số phương trình đúng bằng số ẩn

 Nếu A khả nghịch thì hệ có duy nhất nghiệm đối với mọi b

Có hai loại phương pháp giải:

Lặp: xuất phát với một xấp xỉ ban đầu và dùng một thuật

toán đã được lựa chọn phù hợp, sẽ đưa ra các xấp xỉ liên tiếp ngày càng tốt hơn

 Chỉ nhận được nghiệm gần đúng

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ường

không đưa đến các nghiệm chính xác do các sai số làm tròn

Trang 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, các xử lí hệ này bằng các

phép toán sau đây dẫn tới các hệ tương đương:

(i) Nhân một phương trình với một hằng số khác 0

(ii) Cộng một phương trình đã nhân với một hằng số vào một

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à a kk ≠ 0 thì chúng ta có thể

khử ẩn x k từ phương trình thứ i bất kì bằng cách cộng phương

trình thứ k đã nhân với –(a ik /a kk ) vào phương trình thứ i Khi đó

hệ phương trình hệ quả sau là tương đương với hệ ban đầu

.

b

Trang 7

Gọi W là ma trận cấp n x (n + 1) chứa ma trận vuông A ở n cột đầu và vectơ b ở cột cuối cùng

Với k = 1, …, n–1 lặp các công việc:

Tìm hàng trụ i ≥ k gần hàng k nhất sao cho wik ≠ 0

Nếu không có hàng i như vậy thì dừng (A không khả nghịch)

Nếu tìm được hàng i, thì đổi chỗ hàng i với hàng k trụ w kk

Với i = k+1, , n, lặp các công việc sau (khử các pt dưới trụ)

m i = w ik / w kk là hệ số nhân cho hàng i

Với j = k+1, …, n+1, lặp các công việc sau (biến đổi hàng i)

w ij = w ij – m i x w kj

Nếu trái lại  hệ tam giác trên Ux = y với

j i

0

j i

w

Trang 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 = 3

Giải:

Bước 1: Dùng trụ đầu tiên của hệ để khử những hệ số bên dưới

trụ đó: m2 = 4/2 = 2, m3 = 2/2 = 1  lấy pt 2 trừ đi 2 lần pt 1, và

pt 3 trừ đi 1 lần pt 1 ta được hệ: 2x – 3y = 3

1 y + z = 1

2 y – 3z = 2

Bước 2: Dùng trụ thứ hai để khử hệ số bên dưới nó: m3 = 2/1 = 2

lấy pt 3 trừ đi 2 lần pt 2 ta được hệ 2x – 3y = 3

1y + z = 1

–5z = 0

giải ngược từ dưới lên ta được: z = 0, y = 1, x = 3

Trang 9

for (k = 0; k < n–1; k++) { // BUOC KHU XUOI HE TAM GIAC TREN

while (a[i] [k] == 0 && i < n) i++; // Tim hang i gan k nhat: a[i] [k]≠0

if (a[i] [k] != 0 && 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 duy 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];

for (j = k+1; j <= a.size(); j++) a[i] [j] = a[i] [j] – m * a[k] [j];

} } …… // BUOC QUET NGUOC - GIAI HE TAM GIAC TREN

Độ phức tạp thời gian của thuật toán là O(n

Trang 10

HỆ PHƯƠNG TRÌNH TUYẾN TÍNH (9)

7 GIẢI HỆ PTTT DẠNG 3 ĐƯỜNG CHÉO

Ma trận A = (aij) cấp n có dạng ba đường chéo nếu aij = 0 bất cứ khi nào |i – j| > 1 Hệ PTTT 3 đường chéo có dạng

Ví dụ: hệ PTTT bên phải là

hệ ba đường chéo

n n

n 1

n n

1 n n

1 n 1

n 1 n 2

n 1 n

3 4

3 3

3 2

3

2 3

2 2

2 1

2

1 2

1 1

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

1 2 1

0 0

1 2

1 0

0 1

2 1

0 0

1 2

Ngày đăng: 10/03/2021, 15:09

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w