Bài giảng môn phương pháp tính

CHƯƠNG I NHẬP MÔN. 5

1.1. Giới thiệu môn phương pháp tính . 5

1.2. Nhiệm vụ môn học . 5

1.3. Trình tự giải bài toán trong phương pháp tính. 5

CHƯƠNG II SAI SỐ . 7

2.1. Khái niệm . 7

2.2. Các loại sai số. 7

2.3. Sai số tính toán . 7

CHƯƠNG III TÍNH GIÁ TRỊ HÀM . 9

3.1. Tính giá trị đa thức. Sơ đồ Hoocner. 9

3.1.1. Đặt vấn đề. 9

3.1.2. Phương pháp. 9

3.1.3. Thuật toán. 9

3.1.4. Chương trình . 10

3.2. Sơ đồ Hoocner tổng quát. 10

3.2.1. Đặt vấn đề. 10

3.2.2. Phương pháp. 10

3.2.3. Thuật toán. 12

3.3. Khai triển hàm qua chuỗi Taylo. 12

CHƯƠNG IV GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH. 14

4.1. Giới thiệu. 14

4.2. Tách nghiệm. 14

3.3. Tách nghiệm cho phương trình đại số. 16

4.4. Chính xác hoá nghiệm. 17

4.4.1. Phương pháp chia đôi. 17

4.4.2. Phương pháp lặp. 19

4.4.3. Phương pháp tiếp tuyến. 21

4.4.4. Phương pháp dây cung. 22

pdf 68 trang Người đăng phammen30 Lượt xem 1623Lượt tải 0 Download
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng môn phương pháp tính", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
 {bn}, trong đó: 
 18
{an}: là dãy đơn điệu tăng và bị chặn trên 
{bn}: là dãy đơn điệu giảm và bị chặn dưới 
 nên µ==∃ α→ nnn blimalim là nghiệm phương trình 
Ví dụ 6. Tìm nghiệm phương trình: 2x + x - 4 = 0 bằng ppháp chia đôi 
Giải: 
- Tách nghiệm: phương trình có 1 nghiệm x ∈ (1,2) 
- Chính xác hoá nghiệm: áp dụng phương pháp chia đôi ( f(1) < 0) 
 Bảng kết quả: 
an bn )
2
ba(f nn +
1 2 + 
 1.5 - 
1.25 - 
1.375 + 
 1.438 + 
 1.406 + 
 1.391 - 
1.383 + 
 1.387 - 
1.385 - 
1.386 1.387 
386.1blimalim n11nnn == →α→ 
Kết luận: Nghiệm của phương trình: x ≈ 1.386 
b. Thuật toán 
- Khai báo hàm f(x) (hàm đa thức, hàm siêu việt) 
- Nhập a, b sao cho f(a)0 
- Lặp 
c = (a+b)/2 
nếu f(c) > 0 → b = c 
ngược lại a = c 
 trong khi (⏐f(c)⏐> ε) /* ⏐a - b⏐ > ε và f(c) != 0 */ 
 19
- Xuất nghiệm: c 
4.4.2. Phương pháp lặp 
a. Ý tưởng 
Biến đổi tương đương: f(x) = 0 x = g(x) 
 Chọn giá trị ban đầu x0 ∈khoảng nghiệm (a,b), 
tính x1 = g(x0), x2 = g(x1),  , xk = g(xk-1) 
 Như vậy ta nhận được dãy {xn}, nếu dãy này hội tụ thì tồn tại giới hạn 
 η=∞→ nn xlim (là nghiệm phương trình ) 
b. Ý nghĩa hình học 
Hoành độ giao điểm của 2 đồ thị y=x và y=g(x) là nghiệm phương trình 
Trường hợp hình a: hội tụ đến nghiệm µ 
Trường hợp hình a: không hội tụ đến nghiệm µ (phân ly nghiệm) 
Sau đây ta xét định lý về điều kiện hôi tụ đến nghiệm sau một quá trình lặp 
Định lý (điều kiện đủ) 
Giả sử hàm g(x) xác định, khả vi trên khoảng nghiệm [a,b] và mọi giá trị g(x) 
đều thuộc [a,b]. Khi đó nếu ∃ q > 0 sao cho ⏐g’(x)⏐≤q<1 ∀x (a,b) thì: 
+ Quá trình lặp hội tụ đến nghiệm không phụ thuộc vào x0 ∈ [a,b] 
+ Giới hạn η=∞→ nn xlim là nghiệm duy nhất trên (a, b) 
Lưu ý: 
- Định lý đúng nếu hàm g(x) xác định và khả vi trong (-∞,+∞), trong 
khi đó điều kiện định lý thoả mãn. 
µ x2 x1 x0 x µ x0 x1 x2 x
yy y = x y = x
y = g(x)
A
B 
C 
C 
B
A
Hình a Hình b 
 20
- Trong trường hợp tổng quát, để nhận được xấp xỉ xn vớI độ chính 
xác ε cho trước, ta tiến hành phép lặp cho đến khi 2 xấp xỉ liên tiếp 
thoả mãn: 
ε−≤−+ q
q1xx n1n 
Ví dụ 7. Tìm nghiệm: x3 - x - 1 = 0 bằng phương pháp lặp 
Giải: - Tách nghiệm: phương trình có một nghiệm ∈ (1,2) 
 - Chính xác hoá nghiệm: 
3
2
33 1xx;
x
1xx;1xx01xx +=+=−=⇔=−− 
Chọn g(x) = 3 1x + 
 1
)1x(
1
3
1)x('g 3 2 <+= )2,1(x∈∀ 
 => áp dụng phương pháp lặp (chọn x0 = 1) 
x g(x) = 
3 1x + 
1 1.260 
1.260 1.312 
1.312 1.322 
1.322 1.324 
1.324 1.325 
1.325 1.325 
⏐x4 - x5⏐ < ε = 10-3 
Nghiệm phương trình x ≈ 1.325 
 c. Thuật toán 
- Khai báo hàm g(x) 
- Nhập x 
- Lặp: y= x 
 x = g(x) 
 trong khi ⏐x - y⏐> ε 
- Xuất nghiệm: x (hoặc y) 
 21
4.4.3. Phương pháp tiếp tuyến 
a. Ý tưởng 
Chọn x0 ∈ khoảng nghiệm (a, b) 
Tiếp tuyến tại A0 (x0, f(x0)) cắt trục x tại điểm có hoành độ x1, 
Tiếp tuyến tại A1 (x1, f(x1)) cắt trục x tại điểm có hoành độ x2, , 
Tiếp tuyến tại Ak (xk, f(xk)) cắt trục x tại điểm có hoành độ xk,  
Cứ tiếp tục quá trình trên ta có thể tiến dần đến nghiệm µ của phương trình. 
* Xây dựng công thức lặp: 
 Phương trình tiếp tuyến tại Ak (xk, f(xk)) 
y - f(xk) = f’(xk)*(x - xk) 
Tiếp tuyến cắt trục x tại điểm có toạ độ (xk+1, 0) 
Do vậy: 0 – f(xk) = f’(xk)*(xk+1 - xk) 
)x('f
)x(fxx
k
k
k1k −=+ 
b. Ý nghĩa hình học 
Định lý (điều kiện hội tụ theo Furiê_điều kiện đủ) 
Giả sử [a,b] là khoảng nghiệm của phương trình f(x)=0. Đạo hàm f’(x), 
f’’(x) liên tục, không đổi dấu, không tiêu diệt trên [a,b]. Khi đó ta chọn xấp 
xỉ nghiệm ban đầu x0 ∈[a,b] sao cho f(x0)*f’’(x0) > 0 thì quá trình lặp sẽ hội 
tụ đến nghiệm. 
Ví dụ 8. Giải phương trình: x3 + x - 5 = 0 bằng phương pháp tiếp tuyến 
Giải: - Tách nghiệm: 
 f(x) = x3 + x - 5 
a µ x2 x1 x0 b
x
[ ]
A1
f(x)
→ tiếp tuyến 
y 
A0
 22
 f’(x) = 3x2 + 1 > 0 ∀x 
 ∞−=∞−→ )x(flimn , ∞+=∞+→ )x(flimn 
 Phương trình trên có 1 nghiệm duy nhất 
 f(1)* f(2) = (-3)*5 < 0 
 Vậy phương trình có 1 nghiệm duy nhất x ∈ (1, 2) 
 - Chính xác hoá nghiệm: 
 f’’(x) = 6x > 0 ∀x ∈ (1, 2) 
f’(x) > 0 ∀x 
Thoả mãn điều kiện hội tụ Furiê, áp dụng phương pháp tiếp tuyến 
Chọn với x0 = 2 ( vì f(2). f’’(2) > 0) 
x f(x)/f’(x) 
2 0.385 
1.615 0.094 
1.521 0.005 
1.516 0.000 
1.516 
Vậy nghiệm x ≈ 1.516 
c. Thuật toán 
- Khai báo hàm f(x), fdh(x) 
- Nhập x 
- Lặp y= x 
 x = y – f(y)/fdh(y) 
 trong khi ⏐x - y⏐> ε 
- Xuất nghiệm: x (hoặc y) 
4.4.4. Phương pháp dây cung 
a. Ý tưởng 
Giả sử [a, b] là khoảng nghiệm phương trình f(x)=0. Gọi A, B là 2 điểm 
trên đồ thị f(x) có hoành độ tương ứng là a, b. Phương trình đường thẳng 
qua 2 điểm A(a,f(a)), B(b, f(b)) có dạng: 
ab
ax
)a(f)b(f
)a(fy
−
−=−
− 
 23
Dây cung AB cắt trục x tại điểm có toạ độ (x1, 0) 
Do đó: 
ab
ax
)a(f)b(f
)a(f0 1
−
−=−
− 
)a(f)b(f
)a(f)ab(ax1 −
−−= 
 Nếu f(a)*f(x1) <0, thay b=x1 ta có khoảng nghiệm mới là (a, x1) 
Nếu f(b)*f(x1) <0, thay a=x1 ta có khoảng nghiệm mới là (x1, b) 
Tiếp tục áp dụng phương pháp dây cung vào khoảng nghiệm mới ta được 
giá trị x2. Lại tiếp tục như thế ta nhận được các giá trị x3, x4,  càng tiến 
gần với giá trị nghiệm phương trình. 
b. Ý nghĩa hình học 
Ví dụ 9. Giải phương trình x3 + x - 5 = 0 bằng phương pháp dây cung 
Giải: 
- Tách nghiệm: Phương trình có 1 nghiệm x∈(1, 2) 
- Chính xác hoá nghiệm: 
 f(1) = -3 0 
x
y 
0 a 
x2 x1 b
 B
C
D
A
 24
 Bảng kết quả: 
a b x f(x) 
1 
1.333 
1.379 
1.385 
1.386 
2 1.333 
1.379 
1.385 
1.386 
1.386 
-0.447 
-0.020 
-0.003 
-0.000 
 Vậy nghiệm phương trình: x ≈1.386 
c. Thuật toán 
- Khai báo hàm f(x) 
- Nhập a, b 
- Tính x = a – (b-a)f(a) / (f(b)-f(a)) 
- Nếu f(x)*f(a) <0 
 Lặp b = x 
 x = a – (b-a)f(a) / (f(b)-f(a)) 
 trong khi ⏐x - b⏐> ε 
 Ngược lại 
 Lặp a = x 
 x = a – (b-a)f(a) / (f(b)-f(a)) 
 trong khi ⏐x - a⏐> ε 
- Xuất nghiệm: x 
 25
 BÀI TẬP 
1. Tìm nghiệm gần đúng các phương trình: 
a. x3 – x + 5 = 0 b. x3 – x – 1 = 0 
c. sinx –x + 1/4 = 0 d. x4 – 4x – 1= 0 
 bằng phương pháp chia đôi với sai số không quá 10-3 
2. Tìm nghiệm gần đúng các phương trình: 
a. x3 – x + 5 = 0 b. x4 – 4x – 1 = 0 
 bằng phương pháp dây cung với sai số không quá 10-2 
3. Tìm nghiệm gần đúng các phương trình: 
a. ex – 10x + 7 = 0 b. x3 + x – 5 = 0 
 bằng phương pháp tiếp tuyến với sai số không quá 10-3 
4. Dùng phương pháp lặp tìm nghiệm dương cho phương trình 
 x3 – x – 1000 = 0 với sai số không quá 10-3 
5. Tìm nghiệm dương cho phương trình: x3 + x2 –2x – 2 = 0 
6. Tìm nghiệm âm cho phương trình: x4 - 3x2 + 75x – 1000 = 0 
7. Dùng các phương pháp có thể để tìm nghiệm gần đúng cho phương trình 
sau: cos2x + x – 5 = 0 
8. Viết chương trình tìm nghiệm cho có dạng tổng quát: 
f(x) = a0xn + a1xn-1 +  + an-1x + an = 0 
a. Áp dụng phương pháp chia đôi 
b. Áp dụng phương pháp dây cung 
9. Viết chương trình tìm nghiệm cho phương trình ex – 10x + 7 = 0 bằng 
phương pháp tiếp tuyến. 
10. Viết chương trình xác định giá trị x1, x2 theo định lý 3. 
11. Viết chương trình tìm cận trên của nghiệm dương phương trình đại số 
theo định lý 4. 
 26
CHƯƠNG V GIẢI HỆ PHƯƠNG TRÌNH 
 ĐẠI SỐ TUYẾN TÍNH 
5.1. Giới thiệu 
Cho hệ phương trình tuyến tính: 
a11x1 + a12x2 + ... + a1nxn = a1n+1 
a21x1 + a22x2 + ... + a2nxn = a2n+1 
an1x1 + an2x2 + ... + annxn = ann+1 
Hệ phương trình trên có thể được cho bởi ma trận: 
 a11 a12 ... a1n a1n+1
 a21 a22 ... a2n a2n+1
 .... 
Ann+1 =
 an1 an2 ... ann ann+1
Vấn đề: Tìm vectơ nghiệm )x,...,x,x(x n21= 
* Phương pháp: 
- Phương pháp đúng (Krame, Gauss, khai căn): Đặc điểm của các phương 
pháp này là sau một số hữu hạn các bước tính, ta nhận được nghiệm đúng 
nếu trong quá trình tính toán không làm tròn số 
- Phương pháp gần đúng (Gauss Siedel, giảm dư): Thông thường ta cho 
ẩn số một giá trị ban đầu, từ giá trị này tính giá trị nghiệm gần đúng tốt hơn 
theo một qui tắc nào đó. Quá trình này được lặp lại nhiều lần và với một số 
điều kiện nhất định, ta nhận được nghiệm gần đúng. 
5.2. Phương pháp Krame 
- Khai báo hàm Dt tính định thức ma trận vuông cấp n 
- Nhập n, aij (i = 1n,1j;n,1 += ) 
- d = Dt (A) 
- Xét + d = 0 
 + d # 0 {di = Dt(Ai) ; xi = di/d } 
 27
5.3. Phương pháp Gauss 
5.3.1. Nội dung phương pháp 
 - Biến đổi Ma trận A về ma trận tam giác trên 
a11 a12 ... a1n a1n+1 
a21 a22 ... a2n a2n+1 
........ 
 A = 
an1 an2 ... ann ann+1 
a11 a12 ... a1n a1n+1 
0 a'22 ... a'2n a'2n+1 
...... 
→ A= 
0 0 ... a'nn a'nn+1 
Cách biến đổi A → A’: Thực hiện n-1 lần biến đổi 
Lần biến đổi i (làm cho aji = 0; j = i + 1 → n) bằng cách: 
dòng j = dòng j + dòng i * m (m = -aji / aij ) 
- Tìm nghiệm theo quá trình ngược: xn → nn-1 → ... → x1 
 Ví dụ 1. Giải hệ phương trình 
 1 2 -1 3 5 1 2 -1 3 5 
-2 X 2 1 0 -1 2 → 0 -3 2 -7 -8 
1 X -1 3 2 4 8 5/3 0 5 1 7 13 
1 X -2 0 5 1 4 4/3 0 4 3 7 14 
 1 2 -1 3 5 1 2 -1 3 5 
 0 -3 2 -7 -8 0 -3 2 -7 -8 
0 0 13/3 -14/3 -1/3 0 0 13/3 -14/3 -1/3 
13
17−
 0 0 17/3 -7/3 10/3
→ 
0 0 0 49/13 49/13 
⇒ x4 = 1; x3 = 1; x2 = 1; x1 = 1 
Vậy nghiệm hệ phương trình )1,1,1,1(x = 
5.3.2. Thuật toán 
- Nhập n, aij ( 1n,1j,n,1i +== ) (nhập trực tiếp hoặc từ file) 
 28
- Biến đổi A → A’ (ma trận tam giác trên) 
Lặp i = 1 → n -1 
 Tìm j sao cho aji # 0 
 + Xét aij = 0 → 
 Hoán đổi dòng i và dòng j cho nhau 
 + Lặp j = i + 1 → n 
• m = -aij/aii 
• Lặp k = i → n +1 ajk = ajk + aik * m 
- Tìm nghiệm 
iij
n
1ij
ij1ini a/xaax ⎟⎟⎠
⎞
⎜⎜⎝
⎛ −= ∑
+=
+ ( i =n→ 1) 
Lặp i = n → 1 
• s = 0 
• lặp j = i + 1 → n S = S + aij * xj 
• xi = (ain+1 - s)/aii 
 - Xuất xi (i=1→n) 
5.4. Phương pháp lặp Gauss - Siedel (tự sửa sai) 
5.4.1. Nội dung phương pháp 
 Biến đổi hệ phương trình về dạng: 
→→→ += gxBx 
)x,......,x,x(x n21=
→
; )g,......,g,g(g n21=
→
; B = {bij}n 
Cách biến đổi: 
a11x1 +a12x2 + ....+ a1nxn = a1n+1 
a21x1 +a22x2 + ....+ a2nxn = a2n+1 
....... 
an1x1 +an2x2 + ....+ annxn = ann+1 
 )1j(a/)xaa(x 11j
n
1j
j11n1 ≠−= ∑
=
+ 
 .... 
 )nj(a/)xaa(x nnj
n
1j
nj1nnn ≠−= ∑
=
+ 
Tổng quát: 
 29
 )ij(a/)xaa(x iij
n
1j
ij1ini ≠−= ∑
=
+ (*) 
Cho hệ phương trình xấp xỉ nghiệm ban đầu: )x,...,x,x(x 0n
0
2
0
00 =
→
Thay 0x
→
 vào (*) để tính: )x,...,x,x(x 1n
1
2
1
01 =
→
 )ij(a/)xaa(x ii
0
j
n
1j
ij1in
1
i ≠−= ∑
=
+ 
Tương tự, tính 2x
→
, 3x
→
,  
Tổng quát: )ij(a/)xaa(x ii
k
j
n
1j
ij1in
1k
i ≠−= ∑
=
+
+ 
Quá trình lặp sẽ dừng khi thoả mãn tiêu chuẩn hội tụ tuyệt đối: 
)n,1i(xx ki
ik
i =∀ε<−+ 
Khi đó )x,..,x,x(x kn
k
2
k
1k = là nghiệm của hệ phương trình 
Điều kiện hội tụ: 
Hệ phương trình có ma trận lặp B thoả mãn: 
1bmax1r
n
1j
iji
<= ∑
=
hoặc 1bmaxr
n
1i
ijj2
<= ∑
=
hoặc 1br
n
1i 1j
2
ij3 <= ∑∑
= =
thì quá trình sẽ hội tụ đến nghiệm. 
Ví dụ 2. Giải hệ phương trình 
10 2 1 10 
1 10 2 10 
1 1 10 8 
 x1 = -0,2x2 - 0,1x3 + 1 
 x2 = -0,1x1 - 0,2x3 + 1,2 
 x3 = -0,1x1 - 0,1x2 + 0,8 
 30
 0 -0,2 -0,1 
 -0,1 0 -0,2 
B = 
 -0,1 -0,1 0 
 )8.0,2.1,1(g = 
Do 13.0bmax1r
3
1j
iji
<== ∑
=
 thoả mãn điều kiện hội tụ 
Áp dụng Phương pháp Gauss - Siedel: 
Chọn )0,0,0(x 0 =→ thay vào có )8.0,2.1,1(x 1 =→ 
Tương tự tính 32 x,x
→→
... 
Bảng kết quả: 
x1 x2 x3 
1 1.2 0.8 
0.68 0.94 0.58 
0.754 1.016 0.638
0.733 0.997 0.623
0.738 1.002 0.627
0.737 1.001 0.626
0.737 1.001 0.626
Nghiệm hệ phương trình: )626.0,001.1,737.0(x =→ 
Vì 3,1i10xx 36i
7
i =∀<− − 
5.4.2. Thuật toán 
- Nhập n, aij (i=1→n, j=1→n+1) 
- Nhập xi = (i =1→n) 
- Lặp 
t = 0 
lap i = 1 → n 
{ S = 0 
 lap j = 1 → n do 
if (j ≠ i) S = S + aij * xj 
yi = (ain + 1 - S ) / aii 
 if ( | x1[i] - x 0 [i] | > = ε ) t=1 
 31
xi = yi } 
 trong khi (t) 
 - Xuất xi (i =1→n) 
5.5. Phương pháp giảm dư 
5.5.1. Nội dung phương pháp 
Biến đổi hệ phương trình về dạng: 
a1n + 1 - a11x1 - a12x2 - ... - a1nxn = 0 
a2n + 1 - a21x1 - a22x2 - ... - a2nxn = 0 (1) 
....... 
ann + 1 - an1x2 - an2x2 - ... - annxn = 0 
Chia dòng i cho aii # 0 
b1n + 1 - b12x2 - b13x2 - ... - x1 = 0 
b2n + 1 - b21x1 – b23x3 - ... - x2 = 0 (2) 
....... 
bnn + 1 - bn1x1 - bn2x2 - ... - xn = 0 
Cho vectơ nghiệm ban đầu )x,...,x,x(x 0n
0
2
0
10 =
→
Vì 0x
→
không phải là nghiệm nên: 
b1n+1 - b12x20 - b13x30 - ... - x10 = R10 
b2n+1 - b21x10 - b23x30 - ... - x20 = R20 
............................. 
bnn+1 - bn1x10 - bn2x20 - ... - xn0 = Rn0 
0
n
0
2
0
1 R,.......,R,R là các số dư do sự sai khác giữa 0x
→
 với nghiệm thực của 
hệ phương trình 
Tìm Rs0 = max {|R10|, | R20|, ... | Rn0|} vaì laìm triãût tiãu phán tæí âoï bàòng 
caïch cho xs mäüt säú gia δxs = Rs0, nghéa laì xs1 = xs0 + Rs0 
Tính lại các số dư : 
 Rs1 = 0 
 Ri1 = Ri0 - bis * δxs = Ri0 - bis * Rs0 (i = 1Æ n) 
Cæï tiãúp tuûc quaï trçnh làûp trãn cho âãún khi : ⎟Rik⎟< ε (∀i = 1Æn) thç Xk = 
(x1k, x2k,... xnk) laì nghiãûm cuía hã phtrçnh. 
 32
Ví dụ 3. Giải hệ phương trình: 
10 -2 -2 6
-2 10 -1 7 
1 1 -10 8 
Giải: Biến đổi về hệ phương trình tương đương 
 0,6 + 0,2 x2 + 0,2x3 - x1 = 0 
 0,3 + 0,2 x1 + 0,2x3 - x2 = 0 
 0,8 + 0,1 x1 + 0,1x2 - x3 = 0 
Cho )8.0,7.0,6.0(R)0,0,0(x 00 =→=
→→
}Rmax{R 0i
0
3 = 3,1i =∀ 
x31 = 8.0Rx 03
0
3 =+ 
R2 = 78.08.01.07.0R.bR
0
323
0
2 =×+=+ 
76.08.02.06.0R.bRR 0313
0
1
1
1 =×+=+= 
)0,78.0,76.0(R1 =→ 
Tương tự ta có bảng kết quả: 
x1 x2 x3 R1 R2 R3 
0 0 0 0.6 0.7 0.8 
 0.8 0.76 0.78 0 
 0.78 0.92 0 0.08 
0.92 0 0.18 0.17 
 0.96 0.04 0 0.19 
 0.99 0.07 0.02 0 
0.99 0 0.03 0.01 
 0.99 0.01 0 0.01 
 1 0.01 0 0 
1 0 0.01 0 
 1 0 0 0 
Vậy nghiệm hệ phương trình x = (1, 1, 1) 
5.5.2. Thuật toán 
- Nhập n, aij, xi 
- Biến đổi hệ phương trình (1) về dạng (2) 
 33
 for (i=1, i<= n, i++) 
 { for (j=1, j<=n+1; j ++) 
 if (i! = j) a[i,j] = a [i,j]/a[i,i] 
 a[i,i] = 1 
 } 
- Tính r[i] ban đầu (i = 1Æn) 
 for i = 1 → n do 
 { r[i] =a [i, n+1] 
 for j = 1 → n do r[i] = r [i] - a[i,j] * x [j] } 
- Lap 
 t = 0 /* cho thoat*/ 
 /* Tìm rs = max {|r[i]|} (i = 1Æn) & tính lại xs*/ 
 max = |r[1]|; k =1 
 for i = 2 → n do 
 if (max < |r[i]| ) { max = |r[i]; k= i } 
 x [k] = x [k] + r[k] 
 /* Tính lại R[i] kiểm tra khả năng lặp tiếp theo */ 
 d = r[k] 
 for i =1 → n 
 { r[i] = r[i] - a[i, k] * d 
 if (|r[i]| > ε) thi t =1 /* cho lap*/ 
 trong khi ( t ) 
 - Xuất nghiệm: x[i] (i = 1→n) 
Lưu ý: 
- Phương pháp chỉ thực hiện được khi aii # 0, nếu không phảI đổi dòng 
- Quá trình hội tụ không phụ thuộc vào x0 mà chỉ phụ thuộc vào bản chất 
của hệ phương trình. 
- Mọi hệ phương trình có giá trị riêng λ ≥ 1 đều hội tụ đến nghiệm một cách 
nhanh chóng. 
- Nếu các phần tử aii càng lớn hơn các phần tử trên dòng bao nhiêu thì quá 
trình hội tụ càng nhanh. 
 34
CHƯƠNG VI TÌM GIÁ TRỊ RIÊNG - VECTƠ RIÊNG 
6.1. Giới thiệu 
Cho ma trận vuông cấp n 
a11 a12 ... a1n 
a21 a22 ... a2n 
....... 
 A =
an1 an2 ... ann 
Tìm giá trị riêng, Vectơ riêng 
→
x của ma trận A 
Nghĩa là: tìm λ và →x sao cho : 
 det (A - λE) = 0 ( E : Ma trận đơn vị) 
 (A - λE) →x = 0 
Để tránh việc khai triển định thức (đòi hỏi số phép tính lớn) khi tìm λ ta có 
thể áp dụng phương pháp Đanhilepski. Ở phương pháp này ta chỉ cần tìm 
ma trận B sao cho B đồng dạng với ma trận A và B có dạng ma trận 
Phơrêbemit. 
p1 p2 ... pn-1 pn 
1 0 ... 0 0 
0 1 ... 0 0 
.... 
P =
0 0 ... 1 0 
Khi đó giá trị riêng của ma trận A cũng là giá trị riêng của ma trận B. 
6.2. Ma trận đồng đạng 
6.2.1. Định nghĩa 
Ma trận B gọi là đồng dạng với ma trận A (B ∼ A) nếu tồn tại ma trận 
không suy biến M (det(M)≠ 0) sao cho B = M-1A M 
6.2.2. Tính chất: 
A ∼ B ⇒ B ∼ A 
A ∼ B, B ∼ C ⇒ A ∼ C 
A ∼ B ⇒ giá trị riêng λ của A và B trùng nhau. 
 35
6.3. Tìm giá trị riêng bằng phương pháp Đanhilepski 
6.3.1. Nội dung phương pháp 
Thực hiện n-1 lần biến đổi: 
 * Lần biến đổi 1: Tìm M-1 , M sao cho A1 = M-1 A M ∼ A 
và dòng n của A1 có dạng: 0 0 0 ... 1 0 
1 0 ... 0 
0 1 ... 0 
an1 an2 ... ann 
 M-1 = 
0 0 ... 1 
 M-1n-1j = anj 
 1 0 ... 0 0 
 0 1 ... 0 0 
1nn
1n
a
a
−
− 
1nn
2n
a
a
−
−
1nna
1
−
1nn
nn
a
a
−
−
 M = 
 0 0 ... 0 1 
1nna
1
−
nếu j = n -1 
 Mn-1j = 
1nn
nj
a
a
−
−
 nếu j # n - 1 
 A1 = M-1 A M ∼ A 
* Lần biến đổi 2: Chọn M-1, M sao cho A2 = M-1 A1 M ∼ A1 
và dòng n-1 của A2 có dạng: 0 0 0 ... 1 0 0 
 A2 ∼ A1 , A1∼ A => A2 ∼ A (tính chất) 
 .  
* Lần biến đổi thứ n-1 
Ta nhận được ma trận An-1 ∼ A và An-1 có dạng của P. 
Khi đó định thức 
det (P-λE) = (-1)n (λn - p1 λn-1 -  - pn-1λ - pn) 
det (p-λE) = 0 ⇔ λn - p1 λn-1 -  - pn-1λ - pn = 0 
 36
Giải phương trình, suy ra λ 
Ví dụ 1. Tìm giá trị riêng của ma trận: 
2 1 0 
1 3 1 A 
= 
0 1 2 
n = 3 
ta tìm: 
p1 p2 P3 
1 0 0 P 
= 
0 1 0 
Lần 1: Chọn 
2 1 -2 
1 5 -5 A1 = M-1A M 
= 
0 1 0 
Lần 2: Chọn 
7 -14 8 
1 0 0 A2 = M-1A1M= 
0 1 0 
 =P
Giá trị riêng λ là nghiệm phương trình: λ3 - 7λ2 + 14λ - 8 = 0 
 ⇔ (λ-2) (λ-1) (λ-4) = 0 ⇔ λ = 2; λ=1; λ=4 
1 0 0 
0 1 2 M-1 
= 
0 1 0
1 0 0 
0 1 -2 M 
 = 
0 0 1 
1 5 -5 
0 1 0 M-1 
= 
0 0 1 
1 -5 5 
0 1 0 M 
= 
0 0 1 
 37
6.3.2. Thuật toán 
- Nhập n, aij ( i,j = 1Æn) 
- Khai báo hàm nhân 2 ma trận vuông cấp n 
(C = A x B => kjik
n
1k
ij bac ×= ∑
=
 ) 
- Lặp k = n -1 → 1 (phần tử biến đổi : ak+1 k ) 
 /* Tính 2 ma trận M, M1 (M1 la ma tran nghich dao cua M) */ 
 for i = 1 → n 
 for j = 1 n 
 if i ≠ k 
 if i = j {M[i,j] = 1; M1[i,j] = 1 } 
 else {M[i,j] = 0; M1[i,j] = 0 } 
else { M1[i,j] = a[k+1,j] 
 if (j = k) M[i,j] = 1/a[k+1,k] 
 else M[i,j] = - a[k+1,j]/a[k+1,k] } 
 /* Gọi hàm nhân 2 lần */ 
 Lần 1 : vào A, M; ra B 
 Lần 2 : vào M1; B; ra A 
- Xuất aij ( i,j = 1→n) 
™ Thuật toán nhân 2 ma trận 
 for (i=1, i < = n; i++) 
 for (j=1; j< = n; j++) { 
 c[i] [j] = 0 
 for (k=1; k < = n; k++) c[i] [j] + = a [i] [k] * b [k] [j] 
 } 
 38
6.4. Tìm vectơ riêng bằng phương pháp Đanhilepski 
6.4.1. Xây dựng công thức 
Gọi 
→
y là vectơ riêng của ma trận P ∼ A 
Ta có: (P - λE) →y = 0 
P
→
y = λE→y 
 M-1. A. M . 
→
y = λE →y 
Nhân 2 vế cho M: 
 M M-1. A M 
→
y = M λE→y 
 A M 
→
y = λ E M→y 
Đặt 
→
x = M
→
y 
 A 
→
x = λE→x 
 (A - λE) →x = 0 
Vậy 
→
x = M
→
y là vectơ riêng của A 
 1n21111 2n11n M.M.M.A.M...M.MP −−−−−−= 
Mi: Ma trận M xác định được ở lần biến đổi thứ i 
và M = M1 M2 ... Mn-1 
Xác định 
→
y 
 (P-λE)→y = 0 
p1 - λ p2 ... pn-1 pn y1 
1 λ ... 0 0 y2 
...... ... 
0 0 ... 1 -λ yn 
= 0 
 (p1 - λ)y1 + p2y2 + ... + pn-1yn-1 + pnyn = 0 
 y1 - λy2 = 0 
 ..... 
 yn-1 - λyn = 0 
cho: yn = 1 ⇒ yn-1 = λ , 
 yn-2 = λ yn-1 = λ 2 , ... , y1 = λn-1 
 39
Vậy 
→
y = (λn-1, λn-2, ... , λ2, λ, 1) 
Ví dụ 2. Tìm vectơ riêng của A 
2 1 0 
1 3 1 A 
= 
0 1 2 
Giải: Gọi 
→
y là vectơ riêng của ma trận P ∼ A 
 Ở ví dụ 1 ta có: 
λ1 = 2 ⇒ →y 1 = (4, 2, 1) 
 λ2 = 1 ⇒ →y 2 = (1, 1, 1) 
λ3 = 4 ⇒ →y 3 = (16, 4, 1) 
Tìm M: 
1 0 0 1 -5 -5 1 -5 5 
0 1 -2 0 1 0 0 1 -2M = 1211 M.M =
0 1 0 0 0 1 
=
0 0 1 
→
x = M 
→
y 
1 -5 5 4 -1
0 1 -2 2 0 
→
x 1 = 
0 0 1 1 
= 
1 
1 -5 5 1 1 
0 1 -2 1 -1 
→
x 2 = 
0 0 1 1 
= 
1 
1 -5 5 16 1
0 1 -2 4 2 
→
x 3 = 
0 0 1 1 
= 
1 
 Vậy vectơ riêng của A: 
→
x 1 = (-1, 0, 1) 
→
x 2 = (1, -1, 1) 
→
x 3 = (1, 2, 1) 
6.4.2. Thuật toán 
 Bổ sung thêm lệnh trong thuật toán tìm trị riêng như sau: 
 40
- Khởi tạo B1 = E 
- Lặp k = n-1 → 1 
 /* Tính 2 ma trận M, M1 */ 
 /* Gọi hàm nhân 3 lần */ 
 Lần 1: vào A, M; ra B 
 Lần 2: vào M1, B; ra A 
 Lần 3: vào B1, M; ra B 
 /* Gán lại ma trận B1=B */ 
- Xuất aij, bij 
 41
CHƯƠNG VII NỘI SUY VÀ PHƯƠNG PHÁP 
 BÌNH PHƯƠNG BÉ NHẤT 
7.1. Giới thiệu 
Trong toán học ta thường gặp các bài toán liên quan đến khảo sát và tính 
giá trị các hàm y = f(x) nào đó. Tuy nhiên trong thực tế có trường hợp ta 
không xác định được biểu thức của hàm f(x) mà chỉ nhận được các giá trị 
rời rạc: y0, y1, ..., yn tại các điểm tương ứng x0, x1, ..., xn. 
Vấn đề đặt ra là làm sao để xác định giá trị của hàm tại các điểm còn lại. 
 Ta phải xây dựng hàm ϕ (x) sao cho: 
ϕ (xi) = yi = f (xi) với n,0i = 
 ϕ (x) ≈ f (x) ∀x thuộc [a, b] và x ≠ xi 
- Bài toán xây dựng hàm ϕ (x) gọi là bài toán nội suy 
- Hàm ϕ (x) gọi là hàm nội suy của f(x) trên [a, b] 
- Các điểm xi ( n,0i = ) gọi là các mốc nội suy 
Hàm nội suy cũng được áp dụng trong trường hợp đã xác định được biểu 
thức của f(x) nhưng nó quá phức tạp trong việc khảo sát, tính toán. Khi đó 
ta tìm hàm nội suy xấp xỉ với nó để đơn giản phân tích và khảo sát hơn. 
Trong trường hợp đó ta chọn n+1 điểm bất kỳ làm mốc nội suy và tính giá 
trị tại các điểm đó, từ đó xây dựng được hàm nội suy (bằng công thức 
Lagrange, công thức Newton,). 
Trường hợp tổng quát: hàm nội suy ϕ(x) không chỉ thoả mãn giá trị hàm tại 
mốc nội suy mà còn thoả mãn giá trị đạo hàm các cấp tại mốc đó. 
 ϕ’(x0) = f’(x0); ϕ’(x1) = f’(x1);   
ϕ’’(x0) = f’’(x0); ϕ’’(x1) = f’’(x1);   
Nghĩa là ta tìm hàm nội suy của f(x) thỏa mãn bảng giá trị sau: 
 42
xi x0 x1 ... xn 
yi =f(xi) y0 y1 ... yn 
y'i=f’(xi) y'0 y'1 ... y'n 
y'’i=f’’(xi) y'’0 y'’1 ... y'’n 
7.2. Đa thức nội suy Lagrange 
Giả sử f(x) nhận giá trị yi tại các điểm tương ứng xi ( n,0i = ), khi đó đa thức 
nội suy Lagrange của f(x) là đa thức bậc n và được xác định theo công thức sau: 
∑
=
= n
0i
i
nin )x(py)x(L 
MS
)x(TS
)xx)...(xx)(xx)...(xx)(xx(
)xx)...(xx)(xx)...(xx)(xx()x(p
ni1ii1ii1i0i
n1i1i10i
n =−−−−−
−−−−−=
+−
+− 
Đặt W(x) = (x - x0)(x - x1)... (x - xn) 
Suy ra: TS(x) = 
ix-x
W(x) ; )(x W'MS i= 
Ln(x) = W(x) ∑
=
n
0i i i
i
)(xW')x-(x
y 
Ví dụ 1. Cho hàm f(x) thoả mãn: 
xi 0 1 2 4 
f(xi) 2 3 -1 0 
Tìm hàm nội suy của f(x), tính f(5) 
Giải: 
Cách 1: W(x) = x (x - 1) (x - 2) (x - 4) 
W’(0) = (-1) (-2)(-4) = -8 
W’(1) = 1 (-1) (-3) = 3 
W’(2) = 2 (1) (-2) = -4 
W’(4) = 4 (3) (2) = 24 
L3(x) = ))2x(4
1
)1x(3
3
)8(x
2)(4x)(2x)(1x(x −+−+−−−− 
 43
 = ))4x)(1x(x)4x)(2x(x4)4x)(2x)(1x((
4
1 −−+−−+−−−− 
 = ))1x(x)2x(x4)2x)(1x()(4x(
4
1 −+−+−−−− 
 = )2x6x4)(4x(
4

Tài liệu đính kèm:

  • pdfGiao_trinh_phuong_phap_tinh.pdf