H C VI N CÔNG NGH B U CHÍNH VI N THÔNG
-------
-------
BÀI GI NG
PH
NG PHÁP S
Biên so n : Ths. PHAN TH HÀ
Ts. PHAN
NG C U
L u hành n i b
HÀ N I - 2006
CuuDuongThanCong.com
/>
Gi i thi u môn h c
GI I THI U MÔN H C
I. GI I THI U CHUNG
Ph ng pháp s là m t l nh v c c a toán h c chuyên nghiên c u các ph ng pháp gi i các
bài toán (ch y u là g n đúng) b ng cách d a trên nh ng d li u s c th và cho k t qu c ng
d i d ng s . Nói g n h n, ph ng pháp s nh b n thân tên g i c a nó, có ngh a là ph ng
pháp gi i các bài toán b ng nh ng con s c th .
Ngày nay ph n l n các công vi c tính toán đ u đ c th c hi n trên máy tính. Tuy v y th c
t ch ng t r ng, vi c áp d ng các thu t toán và ph ng pháp tính toán khác nhau có th cho t c
đ tính toán và đ chính xác r t khác nhau. L y ví d đ n gi n nh tính đ nh th c c a ma tr n
ch ng h n, n u tính tr c ti p theo đ nh ngh a thì vi c tính đ nh th c c a m t ma tr n vuông c p 25
c ng m t hàng tri u n m (ngay c v i máy tính hi n đ i nh t hi n nay); trong khi đó n u s d ng
ph ng pháp kh Gauss thì k t qu nh n đ c g n nh t c th i.
Nh v y, ph ng pháp s là công c không th thi u trong các công vi c c n th c hi n
nhi u tính toán v i t c đ tính toán nhanh và đ chính xác cao nh v t lý, đi n t vi n thông, ...
và d nhiên là t t c các ngành và m t l nh v c đ u c n đ n là công ngh thông tin.
Ph ng pháp s đ c nghiên c u t r t lâu và cho đ n nay nh ng thành t u đ t đ c là m t
kh i l ng ki n th c đ s đ c in trong nhi u tài li u sách, báo... Tuy nhiên, môn h c "Ph ng
pháp s " ch nh m cung c p nh ng ki n th c c n b n nh t v ph ng pháp s . V i l ng ki n
th c này sinh viên có th áp d ng vào gi i quy t nh ng bài toán thông th ng trong th c t và có
kh n ng t tìm hi u đ nâng cao ki n th c cho mình khi g p các v n đ ph c t p h n.
II. M C ÍCH
Môn h c ph ng pháp s cung c p cho sinh viên ki n th c c n b n nh t v m t s ph ng
pháp gi i g n đúng trên d li u s .
T o c s đ h c t t và nghiên c u các nghành khoa h c k thu t nói chung và Công ngh
thông tin nói riêng.
Góp ph n rèn luy n ph ng pháp suy lu n khoa h c, t duy logic, ph ng pháp nghiên c u
th c nghi m
Góp ph n xây d ng th gi i quan khoa h c và tác phong khoa h c c n thi t cho ng i k s
t ng lai.
III. PH M VI NGHIÊN C U
Nghiên c u m t s ph ng pháp c b n nh t c a ph ng pháp s , đ c ng d ng nhi u
trong th c t nh các ph ng pháp s trong đ i s tuy n tính, bài toán n i suy, tìm nghi m g n
đúng các ph ng trình phi tuy n, tính g n đúng đ o hàm và tích phân, gi i g n đúng m t s d ng
c a ph ng trình vi phân...
Tìm hi u các l nh v c ng d ng c a các ph ng pháp trong th c t .
Nghiên c u cách cài đ t các thu t toán trên máy tính.
3
CuuDuongThanCong.com
/>
Gi i thi u môn h c
IV. PH
NG PHÁP NGHIÊN C U:
h c t t môn h c này, sinh viên c n l u ý nh ng v n đ sau:
1. Ki n th c c n tr c:
- Sinh viên ph i có ki n th c c b n v toán h c cao c p.
- Thành th o ít nh t m t ngôn ng l p trình. c bi t trong cu n sách này đã s d ng ngôn
ng l p trình C đ mô t thu t toán, vì v y sinh viên ph i n m đ c ngôn ng l p trình C.
2. Thu th p đ y đ các tài li u:
Giáo trình Ph ng pháp s . Phan ng C u, Phan Th Hà, H c vi n Công ngh BCVT, 2002.
N u c n sinh viên nên tham kh o thêm:
- Gi i tích s . Ph m K Anh, nhà xu t b n đ i h c Qu c Gia Hà N i, 1966.
- Ph ng pháp tính. T V n nh, Nhà xu t b n Giáo d c - 1995.
- Ph ng Pháp tính. D ng Thu V , Nhà xu t b n Khoa h c và K thu t, 2001.
3. t ra m c tiêu, th i h n cho b n thân:
t ra các m c tiêu t m th i và th i h n cho b n thân và c g ng th c hi n chúng
Xây d ng m c tiêu trong ch ng trình nghiên c u.
4 Nghiên c u và n m nh ng ki n th c c t lõi:
Sinh viên nên đ c qua sách h ng d n h c t p tr c khi nghiên c u bài gi ng môn h c và
các tài li u tham kh o khác.
5. Tham gia đ y đ các bu i h ng d n h c t p:
Thông qua các bu i h ng d n h c t p, gi ng viên s giúp sinh viên n m đ c n i dung
t ng th c a môn h c và gi i đáp th c m c, đ ng th i sinh viên c ng có th trao đ i, th o lu n v i
nh ng sinh viên khác v n i dung bài h c.
6. Ch đ ng liên h v i b n h c và gi ng viên:
Cách đ n gi n nh t là tham d các di n dàn h c t p trên m ng Internet, qua đó có th trao
đ i tr c ti p các v n đ v ng m c v i gi ng viên ho c các b n h c khác đang online.
7. T ghi chép l i nh ng ý chính:
Vi c ghi chép l i nh ng ý chính là m t ho t đ ng tái hi n ki n th c, kinh nghi m cho th y
nó giúp ích r t nhi u cho vi c hình thành thói quen t h c và t duy nghiên c u.
8. H c đi đôi v i hành
H c lý thuy t đ n đâu th c hành làm bài t p ngay đ n đó đ hi u và n m ch c lý thuy t.
Nói chung cu i m i ch ng, sinh viên c n t tr l i các câu h i, bài t p. Hãy c g ng v ch ra
nh ng ý tr l i chính, t ng b c phát tri n thành câu tr l i hoàn thi n.
Liên h v i các môn h c khác và các v n đ th c t có liên quan đ hi u sâu h n ý ngh a
c a các ph ng pháp.
Cài đ t các thu t toán b ng nhi u cách khác nhau, có s d ng đ h a đ làm n i b t các đ c
tr ng và k t qu c a các thu t toán. Dùng đ th so sánh các ph ng pháp khác nhau cùng gi i
quy t m t bài toán, phân tích nh ng đi m y u đi m m nh c a các thu t toán. Khi cài đ t thu t
toán n u có gì v ng m c thì sinh viên có th tham kh o thêm ph n code c a toàn b ch ng
trình t ng ng đã đ c vi t b ng ngôn ng l p trình C trong tài li u: “Ph ng pháp s . Phan
ng C u, Phan Th Hà, H c vi n Công ngh BCVT, 2002”.
4
CuuDuongThanCong.com
/>
Ch
CH
S
ng 1: S x p x và sai s
NG 1
X P X VÀ SAI S
M C ÍCH, YÊU C U
Sau khi nghiên c u ch
ng 1, yêu c u sinh viên:
1. Hi u đ
c Ph
2. Hi u đ
c sai s tuy t đ i và sai s t
3. N m đ
c cách vi t s x p x .
4. N m đ
c các qui t c tính sai s .
ng Pháp S là gì, vai trò và t m quan tr ng c a Ph
ng đ i.
5. Hi u và bi t cách đánh giá sai s tính toán và sai s ph
1.1. T NG QUAN V PH
1.1.1. Ph
ng pháp s .
ng pháp .
NG PHÁP S
ng pháp s là gì?
Ph ng pháp s (numerical method) hay đôi khi còn đ c g i là Ph ng pháp tính
(Computational method), Toán h c tính toán (Computational mathematics) ho c Gi i tích s
(Numerical analysis) là m t l nh v c c a toán h c chuyên nghiên c u các ph ng pháp gi i g n
đúng các bài toán b ng cách d a trên nh ng d li u s c th và cho k t qu c ng d i d ng s .
Nói g n h n, ph ng pháp s nh b n thân tên g i c a nó, có ngh a là ph ng pháp gi i các bài
toán b ng nh ng con s c th .
Trong ph
ng pháp s chúng ta th
ng quan tâm đ n hai v n đ :
ng pháp đ gi i bài toán.
•
Ph
•
M i liên h gi a l i gi i s g n đúng và l i gi i đúng, hay v n đ sai s c a l i gi i.
1.1.2. Nh ng d ng sai s th
ng g p
Khi th c hi n m t bài toán b ng ph
ng pháp s ta th
•
Sai s trong vi c mô hình hóa bài toán
•
Sai s ph
•
Sai s c a s li u
•
Sai s tính toán
ng g p nh ng lo i sai s sau đây:
ng pháp
Nh ng sai s trên đây t ng h p l i nhi u khi d n đ n nh ng l i gi i quá cách xa so v i l i
gi i đúng và vì v y không th dùng đ c. Chính vì v y vi c tìm ra nh ng thu t toán h u hi u đ
gi i các bài toán th c t là đi u r t c n thi t.
5
CuuDuongThanCong.com
/>
Ch
ng 1: S x p x và sai s
1.2. SAI S
TUY T
I VÀ SAI S
T
NG
I
1.2.1. Sai s tuy t đ i
Trong tính g n đúng ta làm vi c v i các giá tr g n đúng c a các đ i l ng. Cho nên v n đ
đ u tiên c n nghiên c u là v n đ sai s .Xét đ i l ng đúng A và đ i l ng g n đúng c a nó là
a. Ta nói a x p x A và vi t a ≈ A.
Tr tuy t đ i Δ a = | a-A |
đ
đ
(1.1)
c g i là sai s tuy t đ i c a a (khi dùng a đ x p x A).
Trong th c t ta không bi t đ c s đúng A, do đó nói chung sai s tuy t đ i không tính
c. Vì v y ta tìm cách c l ng sai s tuy t đ i c a a b ng s Ea>0 sao cho
| a - A | ≤ Ea
(1.2)
S d ng Ea đ c g i là sai s tuy t đ i gi i h n c a a. Rõ ràng n u Ea là sai s tuy t
đ i gi i h n c a a thì m i E > Ea đ u là sai s tuy t đ i gi i h n c a a. N u sai s tuy t đ i
gi i h n quá l n so v i sai s tuy t đ i thì nó không còn có ý ngh a v ph ng di n sai s n a.
Trong nh ng đi u ki n c th ng i ta c g ng ch n Ea là s d ng bé nh t có th đ c thoã
mãn (1.1). N u Ea là sai s tuy t đ i gi i h n c a a khi x p x A thì ta quy c vi t:
A = a ± Ea
(1.3)
v i ý ngh a c a (1.1), t c là
a - Ea ≤ A ≤ a + Ea
(1.4)
ng đ i
1.2.2. Sai s t
G i Δa là sai s tuy t đ i c a a khi dùng a đ x p x A, khi đó đ i l
δa =
Δa
|a|
ng
(1.5)
đ c g i là sai s t ng đ i c a a. Tuy nhiên m t l n n a ta th y r ng A th
bi t, vì v y ng i ta đ nh ngh a đ i l ng
εa =
Ea
|a|
ng không
(1.6)
ng đ i gi i h n c a a. T đây ta có
là sai s t
Ea = | a| εa
T đây ng
i ta th
(1.7)
ng vi t
A = a(1 ± εa)
(1.8)
Vì trong th c t chúng ta ch có th thao tác v i các sai s gi i h n, do đó ng i ta th ng
g i m t cách đ n gi n Ea là sai s tuy t đ i, εa là sai s t ng đ i. ôi khi ng i ta bi u di n
sai s t ng đ i d i d ng %. Ví d v i a =10, Ea = 0.05, khi đó ta có εa = 0.05/10 = 0.5 %.
1.2.3. Chú thích:
đ
Sai s tuy t đ i không nói lên đ y đ "ch t l
c ph n ánh qua sai s t ng đ i.
ng" c a m t s x p x , “ch t l
6
CuuDuongThanCong.com
/>
ng” y còn
Ch
1.3. CÁCH VI T S
ng 1: S x p x và sai s
X PX
1.3.1. Ch s có ngh a
M t s vi t d i d ng th p phân có th g m nhi u ch s , nh ng ta ch k các ch s t
ch s khác không đ u tiên tính t trái đ n ch s cu i cùng khác không phía bên ph i là các ch
s có ngh a. Ch ng h n s 2.740 có 3 ch s có ngh a, s 0.02078 có 4 ch s có ngh a.
1.3.2. Ch s đáng tin
M i s th p phân đ u có d ng
a = ± α nα n −1...α1α 0 .α −1α −2 ...α − m = ± Σ αs10s
Trong đó αs là nh ng s nguyên t 0 đ n 9. Gi s a là x p x c a s A v i sai s tuy t đ i
là Δa. N u Δa ≤ 0.5*10s thì ta nói r ng ch s αs là đáng tin (và nh v y các ch s có ngh a bên
trái αs đ u là đáng tin). N u Δa > 0.5*10s thì ta nói r ng ch s αs là đáng nghi (và nh v y các
ch s bên ph i αs đ u là đáng nghi).
Ví d . S x p x
a = 4.67329
v i Δa = 0.004726. Ta có | Δa | ≤ 0.5 *10-2 do đó các ch s đáng tin là: 4,6,7; các ch
s đáng ng là 3,2, 9.
v i Δa = 0.005726. Ta có | Δa | ≤ 0.5 *10-1 (nh ng | Δa | > 0.5 *10-2 ) do đó các ch s
đáng tin là: 4,6; các ch s đáng ng là 7, 3, 2, 9.
1.3.3. Cách vi t s x p x
a. Kèm theo sai s
Cách th nh t là vi t kèm theo sai s nh công th c (1.3)
A = a ± Ea
b. M i ch s có ngh a đ u đáng tin
Cách th hai là vi t theo quy c: m i ch s có ngh a đ u đáng tin; có ngh a là sai s
tuy t đ i gi i h n không l n h n m t n a đ n v hàng cu i cùng.
1.3.4. Sai s quy tròn
Trong tính toán v i các con s ta th ng làm tròn các s theo quy c sau: n u ch s b
đi đ u tiên ≥ 5 thì thêm vào ch s gi l i cu i cùng m t đ n v , còn n u ch s b đi đ u tiên < 5
thì đ nguyên ch s gi l i cu i cùng.
Gi s a là x p x c a A v i sai s tuy t đ i gi i h n là E . Gi s ta quy tròn a thành a'
v i sai s quy tròn tuy t đ i gi i h n là θ, t c là:
| a' - a| ≤ θ.
Ta có
| a' - A| = | a' - a + a -A| ≤ | a' - a| + | a -A| ≤ θ + E
V y có th l y θ +E làm sai s tuy t đ i gi i h n c a a'. Nh v y vi c quy tròn làm t ng
sai s tuy t đ i gi i h n.
7
CuuDuongThanCong.com
/>
Ch
ng 1: S x p x và sai s
1.4. CÁC QUY T C TÍNH SAI S
1.4.1. M đ u
Ta xét bài toán t ng quát h n nh sau:
Xét hàm s
u c a 2 bi n s
x và y:
u = f(x,y)
Gi s x là x p x c a giá tr đúng X, y là x p x c a giá tr đúng Y và ta coi u là x p x
c a giá tr đúng U = f (X,Y).
Cho bi t sai s v x và y, hãy l p công th c tính sai s v u.
Cho bi n x ta s ký hi u Δx = x - X là s gia c a x, còn dx là vi phân c a x.
Theo đ nh ngh a v sai s tuy t đ i, ta có | Δx | ≤ Δ x
Theo công th c vi phân c a hàm nhi u bi n ta có:
du =
∂u
∂u
dx +
dy
∂x
∂y
T đây
Δu ≈
∂u
∂u
Δx +
Δy
∂x
∂y
Suy ra
Δu = |
∂u
∂u
| Δy
| Δx + |
∂x
∂y
(1.9)
1.4.2. Sai s c a t ng
Cho u = x + y
Ta có
∂u ∂u
=
=1
∂x ∂y
T
(1.9) suy ra
Δu = Δx + Δy
(1.10)
Ta có quy t c sau:
Sai s tuy t đ i gi i h n c a m t t ng b ng t ng các sai s tuy t đ i gi i h n c a các s h ng.
Ghi chú. Xét tr
ng h p u = x - y và x, y cùng d u. Lúc đó ta có
δu = Δ u/|u| = ( Δ x + Δ y)/ |x-y|
ng
Ta th y r ng n u | x -y | r t bé thì sai s t
i ta tìm cách tránh tr nh ng s g n nhau.
ng đ i gi i h n r t l n. Do đó trong tính toán
1.4.3. Sai s c a tích
Cho u = xy
8
CuuDuongThanCong.com
/>
Ch
ng 1: S x p x và sai s
Ta có
∂u
∂u
= y,
=x
∂y
∂x
T
(1.9) suy ra
Δ u = |y| Δ x + |x| Δ y
Do đó δu = Δ u/|u| = Δ x/|x| + Δ y/|y| = δx + δy
V y
δu = δx + δy
(1.11)
Ta có quy t c sau:
Sai s t ng đ i gi i h n c a m t tích b ng t ng các sai s t
h ng c a tích.
Xét tr
ng đ i gi i h n c a các s
ng h p đ c bi t u = xn ta có
δxn = n δx
1.4.4. Sai s c a th
(1.12)
ng
Cho u = x/y
Ta có
x
∂u 1 ∂u
= ,
= − 2
∂x y ∂y
y
T
(1.9) suy ra
Δu = |
x
1
|Δx + | 2 |Δy
y
y
Ta có
Δ u / |u| = Δ u . |
x
1
1
y
y
1
| = | | ( | | Δ x + | 2 | Δ y) = | | Δ x + | | Δ y =
x
x
y
x
y
y
Suy ra:
δxy = δx + δy
(1.13)
Ta có quy t c sau:
Sai s t ng đ i gi i h n c a m t th
s h ng c a th ng.
ng b ng t ng các sai s t
ng đ i gi i h n c a các
1.4.5. Sai s c a hàm b t k
Cho u = f(x1, x2,..., xn)
Theo công th c vi phân c a hàm nhi u bi n ta có:
du =
∂u
∂u
∂u
dxn
dx1 +
dx2 + ... +
∂x1
∂x 2
∂x n
9
CuuDuongThanCong.com
/>
Ch
ng 1: S x p x và sai s
T đây ta có
Δu ≈
∂u
∂u
∂u
Δx1 +
Δxn
Δx2 + ... +
∂x1
∂x 2
∂x n
Suy ra
Δu = |
∂u
| Δ
∂x1
x1
+|
∂u
| Δ
∂x 2
x2
+ ... + |
Ví d . Tính sai s tuy t đ i gi i h n và sai s t
V = (1/6)πd
n u cho đ
∂u
| Δ
∂x n
xn
(1.14)
ng đ i gi i h n c a th tích hình c u:
3
ng kính d = 3.7 ± 0.05 cm và π = 3.14 ± 0.0016.
Gi i.
Xem π và d là đ i s c a hàm V, áp d ng (1.12) và (1.13) ta có
δV = δπ + 3δd (H s 1/6 không nh h
ng đ n sai s t
ng đ i)
δπ = 0.0016/3.14 = 0.0005
δd = 0.05/3.7 = 0.0135
Suy ra δV = 0.0005 + 3 * 0.0135 = 0.04
M t khác V = (1/6)πd3 = 26.5 cm3
Ta có Δ V = |V|*δV = 26.5*0.04 = 1.06 ≈ 1.1 cm3
V = 26.5 ± 1.1 cm3
1.5. SAI S
TÍNH TOÁN VÀ SAI S
PH
NG PHÁP
Nh chúng tôi đã nh c đ n trên, khi gi i m t bài toán ph c t p ta ph i thay bài toán đó
b ng bài toán đ n gi n h n đ có th tính toán b ng tay ho c b ng máy. Ph ng pháp thay bài
toán ph c t p b ng m t ph ng pháp đ n gi n tính đ c nh v y g i là ph ng pháp g n đúng.
Sai s do ph ng pháp g n đúng t o ra g i là sai s ph ng pháp. M c d u bài toán đã d ng
đ n gi n, có th tính toán đ c b ng tay ho c trên máy tính, nh ng trong quá trình tính toán ta
th ng xuyên ph i làm tròn các k t qu trung gian. Sai s t o ra b i t t c nh ng l n quy tròn nh
v y đ c g i là sai s tính toán. Trong th c t vi c đánh giá các lo i sai s , nh t là sai s tính
toán nhi u khi là bài toán r t khó th c hi n.
hi u rõ h n b n ch t c a sai s ph ng pháp và
sai s tính toán ta xét ví d sau:
Ta bi t r ng v i s x b t k ta có
x2
xn
x
+ ... +
+...
+
1!
2!
n!
Công th c này có th dùng đ tính giá tr ex . Tuy nhiên đây là t ng vô h n, nên trong th c
x2
xn
x
t ta ch tính đ c t ng Sn = 1+
+
+ ... +
, ngh a là chúng ta đã dùng ph ng pháp g n
1!
2!
n!
đúng. Khi tính t ng Sn ta l i th ng xuyên ph i làm tròn, do đó ta l i g p sai s khi tính toán Sn .
Vi c đ a ra m t đánh giá v sai s t ng h p c a c hai lo i sai s trên là bài toán r t ph c t p.
ex = 1+
10
CuuDuongThanCong.com
/>
Ch
1.6. S
N
ng 1: S x p x và sai s
NH C A M T QUÁ TRÌNH TÍNH TOÁN
Xét m t quá trình tính toán v lý thuy t có vô h n b c đ tính ra m t đ i l ng nào đó. Ta
nói r ng quá trình tính là n đ nh n u sai s tính toán t c là sai s quy tròn tích l y l i không t ng
vô h n. N u sai s đó t ng vô h n thì ta nói quá trình tính là không n đ nh.
Rõ ràng n u quá trình tính không n đ nh thì không có hy v ng tính đ
tính v i sai s nh h n sai s cho phép.
cđ il
ng c n
ki m tra tính n đ nh c a m t quá trình tính toán th ng ng i ta gi s sai s ch x y
ra t i m t b c, các b c sau đó coi nh không có sai s khác phát sinh. N u cu i cùng sai s tính
toán không t ng vô h n thì coi nh quá trình tính là n đ nh.
1.7. M T VÀI I U V M I QUAN H GI A TH C T VÀ MÔ HÌNH
Theo nh ng đi u v a nói trên đây thì chúng ta luôn hi u th c t là tuy t đ i đúng, sai s ch
x y ra khi ta mu n mô hình hóa th c t và ti n hành tính toán mô hình đó. Th c v y, chúng ta có
c m giác r ng gi i t nhiên đang ho t đ ng m t cách chính xác: h m t tr i đã có kho ng 5 t
n m tu i, nh ng s v n hành c a nó có v v n hoàn h o: hàng ngày m t tr i m c, m t tr i l n đ u
theo quy lu t. C sau 365 ngày + 1/4 ngày thì qu đ t quay đ m t vòng quanh m t tr i và h u
h t các vùng trên trái đ t đ u tr i qua b n mùa. Chúng ta có th hình dung r ng ch c n m i n m
s v n hành c a các hành tinh sai l ch đi chút ít thì trong hàng t n m sai s tích l y có th s gây
nên nh ng bi n c khôn l ng! Tuy nhiên theo các nhà thiên v n thì s v n hành c a các hành
tinh không tuy t đ i hoàn h o nh ta t ng. Xét v trí c a m t tr i và trái đ t ch ng h n, theo lý
thuy t thì n u ngày hôm nay m t tr i đ ng v trí gi a b u tr i tính t đông sang tây thì sau 24
gi n a nó c ng v trí gi a b u tr i (t t nhiên là có th ch ch v phía nam n u ta đang Vi t
nam). Nh ng trong th c t không ph i nh v y. Các nhà thiên v n đã không th xây d ng đ c
múi gi m t cách chính xác và nh t quán n u d a vào v trí c a m t tr i. Nói c th h n, n u d a
vào v trí m t tr i c a n m nay làm múi gi cho các vùng trên trái đ t thì n m sau th i gian đó
không còn thích h p cho qu đ o c a m t tr i n a, mà có khác đi chút ít. Chính vì s "đ ng đ nh"
c a m t tr i nh v y nên các nhà thiên v n đã đ a ra khái ni m m t tr i trung bình và th i gian
trung bình. So v i m t tr i trung bình và th i gian trung bình thì hàng n m m t tr i th t đi l ch
trong kho ng th i gian t -14,3 đ n +16,3 phút. Tuy nhiên s d các sai s này không tích l y t
n m này sang n m khác là vì các sai s giao đ ng quanh v trí trung bình và tri t tiêu l n nhau
theo th i gian.
Ngh a là, không ch mô hình c a chúng ta, mà ngay c gi i t nhiên c ng có nh ng sai s . Tuy
nhiên các sai s trong gi i t nhiên đ u có quy lu t và th ng tri t tiêu l n nhau, do đó không làm
nh h ng đ n s v n hành c a các v t th .
BÀI T P
Bài 1. Khi đo 1 s góc ta đ
c các giá tr sau:
a= 21o37’3”;
b=1o10’
Hãy xác đ nh sai s t
ng đ i c a các s x p x đó bi t r ng sai s tuy t đ i trong phép đo
là 1”.
11
CuuDuongThanCong.com
/>
Ch
ng 1: S x p x và sai s
Bài 2. Hãy xác đ nh sai s tuy t đ i c a các s x p x sau đây cho bi t sai s t
chúng:
a) a= 13267 ;
δa=0,1%
b) b=2,32;
δb=0,7%
ng đ i c a
Bài 3. Hãy xác đ nh s các ch s đáng tin trong các s a,b v i sai s nh sau:
a) a= 0,3941;
Δ a=0,25.10-2
b) b=38,2543;
Δ a= 0,27.10-2
Bài 4. Hãy xác đ nh s nh ng ch s đáng tin trong các s a v i sai s t
a) a=1,8921;
δa=0,1.10
b) a=22,351;
δa=0,1
ng đ i nh sau:
-2
Bài 5. Hãy qui tròn các s d i đây( xem là đúng) v i 3 ch s có ngh a đáng tin và xác đ nh sai
s tuy t đ i Δ và sai s t ng đ i δ c a chúng:
a) a= 2,514; b) 0,16152
c) 0,01204; d) –0,0015281
Bài 6. Hãy xác đ nh giá tr c a các hàm s d i đây cùng v i sai s tuy t đ i và sai s t
ng v i nh ng giá tr c a các đ i s cho v i m i ch s có ngh a đ u đáng tin.
a) u=ln(x+y2); x=0,97; y=1,132
b) u=(x+y)2z; x=3,28; y=0,932; z=1,132
12
CuuDuongThanCong.com
/>
ng đ i
Ch
ng 2: Các ph
CH
CÁC PH
NG PHÁP S
ng pháp s trong đ i s tuy n tính
NG 2
TRONG
IS
TUY N TÍNH
M C ÍCH, YÊU C U:
Sau khi nghiên c u ch
1. Hi u và n m đ
trình tuy n tính.
ng 1, yêu c u sinh viên:
ng pháp tìm nghi m đúng, nghi m x p x c a h ph
c các ph
ng
2. Bi t cách ng d ng các ph ng pháp trên vào vi c tính đ nh th c c a ma tr n, tìm ma
tr n ngh ch đ o, gi i quy t các bài toán th c t .
3. Bi t cách đánh giá sai s c a t ng ph
2.1. MA TR N VÀ
ng pháp
NH TH C
2.1.1. Ma tr n
Cho ma tr n ch nh t A c p m x n:
A=
và đ
a11
a12
...
a1n
a21
a22
...
a2n
.
.
...
.
am1
am2
...
amn
đây aij là các s th c. Ma tr n này có m hàng và n c t. Khi m = n ta có ma tr n c p nxn
c g i t t là ma tr n vuông c p n.
Ma tr n vuông c p n mà m i ph n t n m ngoài đ ng chéo chính b ng 0, t c là aij = aji = 0
v i i ≠ j, đ c g i là ma tr n đ ng chéo. N u ma tr n đ ng chéo có aii = 1 thì ta g i A là ma tr n
đ n v và ta th ng ký hi u là E ho c I.
Ma tr n vuông A đ
A=
c g i là ma tr n tam giác trên, n u A có d ng
a11
a12
...
a1n
0
a22
...
a2n
.
.
...
.
0
0
...
ann
13
CuuDuongThanCong.com
/>
Ch
ng 2: Các ph
T
ng pháp s trong đ i s tuy n tính
ng t , ma tr n vuông A đ
A=
c g i là ma tr n tam giác d
a11
0
...
0
a21
a22
...
0
.
.
...
.
an1
an2
...
ann
i, n u A có d ng:
Ma tr n ch nh t AT c p n x m đ c g i là ma tr n chuy n v c a ma tr n A c p m x n n u:
AT =
2.1.2.
a11
a21
...
am1
a12
a22
...
am2
.
.
...
.
a1n
a2n
...
amn
nh th c c a ma tr n
Tr c khi đ a ra đ nh ngh a đ nh th c c a ma tr n, chúng tôi gi i thi u khái ni m hoán v
ch n, hoán v l c a m t t p h p n s nguyên {1, 2, ... , n}.
Cho α = (i1, i2,..., in) là m t hoán v c a t p {1,2,...,n}. Ta xét t t c các c p (ik, ih), trong đó
k < h. N u ik > ih thì ta g i c p (ik, ih) là c p ng c, t c là các giá tr ik, ih đ c s p x p ng c v i
k,h. N u trong α s c p ng c là ch n thì ta g i α là hoán v ch n, ng c l i thì ta g i α là hoán
v l .
V i m i ma tr n vuông A c p n:
A=
t n t i m t s th c đ
b i công th c:
det A =
a11
a12
...
a1n
a21
a22
...
a2n
.
.
...
.
an1
an2
...
ann
c g i là đ nh th c c a ma tr n A, ký hi u là det A, đ
s(i1, i2,..., in) a
∑
α
1i1
a 2i2 ...a nin
(2.0)
v i α = (i1, i2,..., in) ch y trong t p t t c các hoán v c a t p {1,2,...,n}, và
s(i1, i2,..., in) =
1 n u α là hoán v ch n
-1 n u α là hoán v l
14
CuuDuongThanCong.com
/>
c xác đ nh
Ch
nh th c c a ma tr n còn đ
A=
ng 2: Các ph
ng pháp s trong đ i s tuy n tính
c ký hi u là
a11
a12
...
a1n
a21
a22
...
a2n
.
.
...
.
an1
an2
...
ann
V i m i ma tr n ch nh t A c p m x n b t k ta có th tính đ nh th c c a t t c các ma
tr n con vuông c p k, v i k ≤ min (m, n). N u t n t i m t s r sao cho có m t ma tr n con c p r
có đ nh th c khác 0, còn m i ma tr n con vuông c p l n h n r đ u b ng 0 thì ta nói r ng r là h ng
c a ma tr n A.
Các phép bi n đ i s c p sau đây không làm bi n đ i h ng c a ma tr n:
•
i ch 2 hàng ho c 2 c t b t k .
•
Nhân m t hàng hay m t c t b t k v i m t s khác không.
•
C ng các thành ph n t
ng ng c a 2 hàng ho c hai c t b t k .
Các phép bi n đ i s c p s đ
h ph ng trình tuy n tính.
Ma tr n E đ
c g i là ma tr n đ n v c p n n u E là ma tr n vuông c p n và E có d ng
E=
2.1.3. Các ph
c s d ng đ tính đ nh th c c a ma tr n và tìm nghi m c a
1
0
...
0
0
1
...
0
.
.
...
.
0
0
...
1
ng pháp tính đ nh th c
a. Tính đ nh th c d a tr c ti p vào đ nh ngh a
Ta có th dùng (2.0) đ tính đ nh th c c a m t ma tr n trên máy tính. Tuy nhiên cách tính
này đòi h i kho ng c*n! phép tính. ây là con s kh ng l v i n không l n l m. Ví d v i máy
tính hi n đ i nh t hi n nay c ng c n hàng tri u n m đ tính đ nh th c c a ma tr n c p n = 25.
b. Tính đ nh th c d a vào công th c khai tri n theo hàng
Cho A là ma tr n vuông c p n và aij là m t ph n t b t k c a nó. nh th c c a ma tr n
con c p n-1 sau khi “xóa” hàng th i và c t th j đi và không thay đ i v trí các thành ph n còn
l i, đ c g i là minor c a ph n t aij , và đ c ký hi u là Mij. Giá tr Aij = (-1)i+j Mij đ c g i là
ph n bù đ i s c a ph n t aij. Ta có các công th c sau đ tính đ nh th c ma tr n vuông c p n
thông qua vi c tính đ nh th c c a các ma tr n con c p bé h n:
Khai tri n đ nh th c theo hàng th
i:
n
det A =
∑ aij Aij
j=1
15
CuuDuongThanCong.com
/>
Ch
ng 2: Các ph
ng pháp s trong đ i s tuy n tính
Khai tri n đ nh th c theo c t th j:
n
∑ aij Aij
det A =
i=1
Áp d ng các công th c trên đây ta có th dùng thu t toán đ quy sau đây đ tính đ nh th c
c a ma tr n vuông c p n :
N u
n = 1 : A11 = 1; det A = a11 A11
n
∑ a1j A1j
n > 1: det A =
j=1
Tuy nhiên, c ng nh cách tính tr c ti p, cách tính này c n kho ng c*n! phép tính, và nh
v y không th th c hi n đ c trên máy tính hi n đ i nh t hi n nay dù ch v i n không l n l m. Rõ
ràng vi c phân tính thu t toán giúp chúng ta đánh giá đ c th i gian tính toán trên máy tính và
n u th i gian đó là quá l n thì chúng ta kh i ph i t n công vô ích vi t ch ng trình và ch y th .
c. Tính đ nh th c b ng cách chuy n ma tr n v d ng tam giác trên
Ta s bi n đ i đ đ a ma tr n A v d ng ma tr n tam giác trên
B=
b11
b12
...
b1n
0
b22
...
B2n
.
.
...
.
0
0
...
bmn
B
V y det A=det B = b11 b22...bnn
2.1.4. Ma tr n ngh ch đ o
Ma tr n ngh ch đ o c a m t ma tr n vuông A c p n là ma tr n đ
mãn đi u ki n
c ký hi u là A-1, tho
A-1A = A A-1 = E
Trong đó E là ma tr n đ n v . Có th ch ng minh r ng đ th a mãn đi u ki n trên thì b t
bu c A-1 ph i là ma tr n vuông, và ma tr n đ o n u t n t i là duy nh t.
i u ki n t n t i c a ma tr n ngh ch đ o: Ma tr n vuông A c p n có ma tr n ngh ch đ o
khi và ch khi det A ≠ 0.
Cách tính ma tr n ngh ch đ o:
G i Aij là ph n bù đ i s c a ph n t
A-1 =
1
det A
aij , khi đó ta có:
A11
A21
...
An1
A12
A22
...
An2
.
.
...
.
A1n
A2n
...
Ann
16
CuuDuongThanCong.com
/>
Ch
ng 2: Các ph
ng pháp s trong đ i s tuy n tính
Tuy nhiên công th c này ch có ý ngh a lý thuy t, không th áp d ng đ tính tr c ti p ma
tr n đ o trên máy tính đ c vì s phép tính đòi h i quá l n.
Trong ph n sau ta s áp d ng ph ng pháp kh Gauss-Jordan đ tính ma tr n ngh ch đ o
v i s phép tính nh h n nhi u (kho ng n3)
2.2. H PH
NG TRÌNH
Xét m t h ph
IS
TUY N TÍNH
ng trình g m n ph
ng trình tuy n tính v i n n s x1, x2,...,xn nh sau:
a11x1 + a12x2 + . . . + a1nxn = b1
a21x1 + a22x2 + . . . + a2nxn = b2
. . . . . . . . . . . . . . . .
(2.1)
an1x1 + an2x2 + . . . + annxn = bn
H ph
ng trình này có th vi t d
⎡ a11
⎢a
21
A= ⎢
⎢ .
⎢
⎣a n1
a12
a 22
.
an2
i d ng ma tr n
... a1n ⎤
... a 2 n ⎥⎥
,x=
... . ⎥
⎥
... a nn ⎦
⎛ x1 ⎞
⎜ ⎟
⎜ x2 ⎟
⎜ . ⎟,b=
⎜ ⎟
⎜x ⎟
⎝ n⎠
Ax = b, trong đó
⎛ b1 ⎞
⎜ ⎟
⎜ b2 ⎟
⎜ . ⎟
⎜ ⎟
⎜b ⎟
⎝ n⎠
N u det A ≠ 0 thì nghi m c a h (2.1) có th tính theo công th c x = A-1b. Áp d ng công th c
tính ma tr n đ o ta có th bi n đ i và d n đ n l i gi i đ c di n t b ng đ nh lý Cramer nh sau:
nh lý Cramer. G i Aj là ma tr n nh n đ c t ma tr n A b ng cách thay c t th j b ng
c t b, khi đó h (2.1) có nghi m duy nh t và xj đ c tính b i công th c
xj =
det A j
det A
Tuy nhiên trong th c hành ng i ta không dùng công th c này đ tính nghi m vì s phép
tính quá l n. Ng i ta dùng nh ng ph ng pháp h u hi u h n mà chúng tôi s gi i thi u sau đây.
2.2.1. Ph
ng pháp tr c ti p gi i h ph
Gi s ta gi i h ph
a. Ph
ng trình tuy n tính
ng trình(2.1)
ng pháp kh Gauss
Ph ng pháp kh Gauss dùng cách kh d n các n đ đ a h ph ng trình đã cho v m t
d ng tam giác trên r i gi i h tam giác này t gi i lên trên, không ph i tính m t đ nh th c nào
ng pháp này đ
Ph
c th c hi n qua các b
c sau:
Quá trình xuôi:
- B
(
c 0: Dùng ph ng trình đ u tiên đ kh x1 trong n-1 ph ng trình còn l i. Gi s a11≠0.
cho công th c đ n gi n , tr c khi kh ta có th chia ph ng trình th nh t cho a11 ).
C th đ kh x1 hàng th k( k=2,3,…n) ta ph i tính l i các h s akj
(j=1,2,..n+1) nh sau: akj=akj-a1j*ak1/a11
hàng th k
...
17
CuuDuongThanCong.com
/>
Ch
ng 2: Các ph
ng pháp s trong đ i s tuy n tính
- B c 1: Dùng ph ng trình th 2 đ kh x2 trong n-2 ph ng trình còn l i phía sau. Gi
s a22≠0. ( cho công th c đ n gi n, tr c khi kh ta có th chia ph ng trình th hai
cho a22).
C th đ kh x2 hàng th k (k=3,4,…n) ta ph i tính l i các h s akj
(j=2,..n+1) nh sau: akj=akj-a2j*ak2/a22
hàng th k
…….
- B c i: Dùng ph ng trình i đ kh xi trong các ph ng trình th i+1,i+2, ..., n. Gi
cho công th c đ n gi n, tr c khi kh ta có th chia ph ng trình th i cho
s aii≠0.
aii).
C th đ kh xi hàng th k (k=i+1,…n) ta ph i tính l i các h s akj
(j=i,..n+1) nh sau: akj=akj-aij*aki/aii
- B
(
hàng th k
c n-1: Dùng ph ng trình th n-1 đ kh xn-1 trong ph ng trình th n.Gi s an-1 n-1≠0.
cho công th c đ n gi n, tr c khi kh ta có th chia ph ng trình th n-1 cho an-1 n-1)
C th đ kh xn-1 hàng th n ta ph i tính l i các h s anj
nh sau: anj=anj-an-1j*an-1i/an-1n-1
hàng th n (j=n-1,n,n+1)
K t thúc quá trình kh .
Chú ý:
Trong quá trình gi i xuôi ta gi thi t a11≠0, a22≠0,a33≠0,...,an-1 n-1≠0. N u 1 trong các h s
đó b ng không thì quá trình không ti p t c đ c. Lúc đó ta ph i thay đ i cách tính.
Gi s khi kh x1 ta g p a11=0 thì ta nhìn các h s a21, a31 ...an1 c a x1 các ph ng trình
phía d ói, n u có h s nào khác không ta có th l y nó thay cho vai trò c a a11 b ng cách hoán v
hai ph ng trình. N u t t c các h s s a11, a21, a31 ...,an1 đ u b ng không thì h đã cho suy bi n.
V y t t nh t là tr c khi kh x1 ta ch n trong các h s a11, a21, a31 ...,an1 h s có giá tr tuy t đ i
l n nh t làm tr th nh t( g i là tr t i đ i th nh t) r i hoán v hàng th nh t cho hàng có giá
tr tuy t đ i l n nh t). T c là ta ch n hàng r sao cho:
Sau đó ta đ i hàng r cho hàng 1.
| ar1 | = max {| ak1 | / k=1,2, ... ,n}
T
ng t
trong các b
c kh x2,... xn-1 , tr
c khi kh ta c ng tìm tr t i đ i:
| ari | = max {| aki | / k=i,i+1, ... ,n} ( v i i=2,3,…,n-1)
Sau đó ta đ i hàng r cho hàng i.
Sau khi th c hi n xong quá trình gi i xuôi h ph
D ng1: T i các b
c (b
ng trình (2.1) có d ng:
c i) ta không chia cho h s aii
a11x1 + a12x2 + . . . + a1nxn = b1
a22x2 + . . . + a2nxn = b2
. . . . . . . . . . .
ann xn = bn
18
CuuDuongThanCong.com
/>
Ch
ho c: D ng 2: T i các b
c (b
ng pháp s trong đ i s tuy n tính
ng 2: Các ph
c i) ta chia cho h s aii:
x1 + a12x2 + . . . + a1nxn = b1
x2 + . . . + a2nxn = b2
. . . . . . . . . . .
xn = bn
Xu t phát t ph ng trình th
quá trình gi i ng c sau:
Quá trình gi i ng
n ta l n l
t tính đ
c các giá tr xi b ng các công th c c a
c
xn = bn/ann ho c ( xn=bn)
...
n
n
j=i+1
j=i+1
xi = (bi -( ∑ aijxj) )/aii ) ho c (bi -( ∑ aijxj) ), i =n-1, n-2, ..., 1
vi c vi t ch ng trình đ c đ n gi n, khi cài đ t trên máy tính ta dùng m t m ng
thay cho c ma tr n a và vec t b. T c là
⎡ a11
⎢a
⎢ 21
⎢ .
⎢
⎢⎣a n1
a12
... a1n
a 22
... a 2 n
.
an2
...
.
... a nn
a1,( n +1) ⎤ ⎡ a11
a 2,( n +1) ⎥⎥ ⎢a 21
= ⎢
. ⎥ ⎢ .
⎥ ⎢
a n ,( n +1) ⎥⎦ ⎣a n1
a12
... a1n
a 22
... a 2 n
.
an2
...
.
... a nn
a
b1 ⎤
b2 ⎥⎥
.⎥
⎥
bn ⎦
Ta áp d ng các phép bi n đ i s c p nh v a trình bày đ bi n đ i ma tr n ch nh t c p
nx(n+1) trên đây v d ng
⎡1 a'12
⎢0 1
⎢
⎢.
.
⎢
⎢⎣0 0
Ví d :Gi i h ph
... a'1n
... a' 2 n
...
...
.
1
a'1,( n +1) ⎤
a' 2,( n +1) ⎥⎥
. ⎥
⎥
a' n ,( n +1) ⎥⎦
ng trình sau b ng ph
ng pháp kh Gauss:
2x1 + 3x2 +x3 = 11
-x1 + 2x2 -x3 = 0
3x1 + 2x3
B
c1: H ph
ng trình trên t
=9
ng đ
ng v i:
=9
h1=h3
-x1 + 2x2 -x3 = 0
h2=h2
2x1 + 3x2 +x3 = 11
h3=h1
3x1 + 2x3
19
CuuDuongThanCong.com
/>
Ch
ng 2: Các ph
ng pháp s trong đ i s tuy n tính
3x1 + 0 + 2x3
B
h1=h1
=9
2x2 - x3/3 = 3
h2=h2+h1/3
3x2 - x3/3
=5
h3=h3-2*h1/3
3x1 + 0 +2x3
=9
h1=h1
3x2 -
x3/3
=5
h2=h3
2x2 -
x3/3
=3
h3=h2
c 2:
3x1 + 0 + 2x3 = 9
h1=h1
x2 - x3 /3 = 5
h2=h2
h3=h3-2*h2/3
-x3/9 = -1/3
V y
x3=3
x2=2
x1=1
Ch
ng trình minh h a.
Sau đây là đo n ch
ng trình chính th hi n (mô t ) thu t toán kh Gauss.
/*Giai he phuong trinh tuyen tinh dung khu Gauss, ma tran vuong n,
cac phan tu cot thu n+1 la vecto b*/
/*Dua ma tran a ve dang tam giac tren Giai he phuong trinh tuyen tinh.
Tra ve gia tri true neu co nghiem */
int khugauss(kmatran a,double *x,int n)
{
int i,j,k,h;double tmp,p;kmatran aa;
int n1=n+1;
for(i=1;i<=n;i++)
for(j=1;j<=n1;j++) aa[i][j]=a[i][j];
for(i=1;i<=n;i++) //Vong lap cac buoc khu
{//Tim hang co phan tu dau lon nhat
h=i;
for(k=i+1;k<=n;k++)
if(fabs(a[k][i])>fabs(a[h][i]) {h=k;}
if(a[h][i])==0) {cout<<"Ma tran suy bien";delay(1000);return false;}
20
CuuDuongThanCong.com
/>
Ch
ng 2: Các ph
ng pháp s trong đ i s tuy n tính
if(h!=i) //Doi hang i va hang h vi a[h][i] > a[i][i]
{int j;double tmp;
for(j=i;j<=n1;j++)
{tmp=a[i][j];a[i][j]=a[h][j];a[h][j]=tmp;}
}
//chuyen he so a[i][i] = 1
tmp=a[i][i];
for(j=i;j<=n1;j++) a[i][j] = a[i][j]/tmp;
//Bat tinh lai cac hang
for(k=i+1;k<=n;k++)
{p=a[k][i];
/*Vi ta biet a[k][i] =0 sau bien doi,
chi tinh tu a[k][i+1]*/
for(j=i+1;j<=n1;j++) a[k][j]=a[k][j] - p*a[i][j];
}
}
x[n]=a[n][n+1];
for(i=n-1;i>=1;i--)
{double xx=0;
for(j=i+1;j<=n;j++) xx=xx+a[i][j]*x[j];
x[i]=a[i][n+1]-xx;//b[i]-xx
}
//Dat cac gia tri phi duoi duong cheo chinh bang 0(phan nay khong can)
for(i=2;i<=n;i++)
for(j=1;j
//Thu lai
kvecto bb;
for(i=1;i<=n;i++)
{bb[i]=aa[i][1]*x[1];
for(j=2;j<=n;j++) bb[i]+=aa[i][j]*x[j];
}
//Dua ket qua vao tep ketqua
return true;
}
21
CuuDuongThanCong.com
/>
Ch
b. Ph
ng 2: Các ph
ng pháp s trong đ i s tuy n tính
ng pháp kh Gauss-Jordan
Ph ng pháp kh Gauss-Jordan dùng cách kh d n các n đ đ a h ph ng trình đã cho
v m t d ng ma tr n đ ng chéo r i gi i h ph ng trình này, không ph i tính m t đ nh th c nào
ng pháp này đ
Ph
c th c hi n qua các b
c sau:
- B c 1: Dùng ph ng trình đ u tiên đ kh x1 trong n-1 ph ng trình còn l i, cách làm
t ng t nh ph ng pháp kh đ tính đ nh th c... ( cho công th c đ n gi n, tr c khi
kh ta có th chia ph ng trình th nh t cho a11).
C th đ kh x1 hàng th k( k=2,3,…n) ta ph i tính l i các h s akj
(j=1,2,..n+1) nh sau: akj=akj-a1j*ak1/a11
hàng th k
...
- B
(
c i: Dùng ph ng trình i đ kh xi trong các ph ng trình th 1,2, i-1,i+1,i+2,...,n..
cho công th c đ n gi n , tr c khi kh ta có th chia ph ng trình th i cho aii)
C th đ kh xi hàng th k (k=1,2, i-1,i+1,i+2,...,n.) ta ph i tính l i các h s akj
th k (j=i,..n+1) nh sau: akj=akj-aij*aki/aii
hàng
...
- B c n: Dùng ph ng trình th n đ kh xn trong ph ng trình th 1,2, ..., n-1.. (
công th c đ n gi n, tr c khi kh ta có th chia ph ng trình th n cho ann)
C th đ kh xn hàng th k( k=1,2, ..,n-1.) ta ph i tính l i các h s akj
(j=n,n+1) nh sau: akj=akj-anj*akn/ann
cho
hàng th k
T ng t phép kh Gauss t i m i b c, tr c khi kh ta ph i ch n tr t i đ i. C th t i
b c i ta luôn ch n hàng có ph n t ari có giá tr tuy t đ i l n nh t r i đ i cho hàng th i cho hàng
th r.
H ph
ng trình sau khi kh có d ng:
a11 x1
= b1
a22 x2
= b2
. . . . . . . .. .
ann xn = bn
Ho c (N u t i các b
c (b
c i) ta chia cho h s aii):
= b1
x1
x2
= b2
. . . . . . . .. .
xn = bn
T c là ta đã có các nghi m mà không c n ph i tính toán thêm.
C ng nh trong ph ng pháp kh Gauss, khi cài đ t trên máy tính ta dùng m t m ng a
thay cho c ma tr n A và vec t b. T c là
22
CuuDuongThanCong.com
/>
Ch
⎡ a11
⎢a
⎢ 21
⎢ .
⎢
⎣⎢a n1
a12
a 22
.
an2
... a1n
... a 2 n
...
.
... a nn
ng 2: Các ph
a1,( n +1) ⎤ ⎡ a11
a 2,( n +1) ⎥⎥ ⎢a 21
= ⎢
. ⎥ ⎢ .
⎥ ⎢
a n ,( n +1) ⎦⎥ ⎣a n1
a12
a 22
.
an2
ng pháp s trong đ i s tuy n tính
b1 ⎤
b2 ⎥⎥
.⎥
⎥
bn ⎦
... a1n
... a 2 n
...
.
... a nn
Ta áp d ng các phép bi n đ i s c p nh v a trình bày đ bi n đ i ma tr n ch nh t c p n
x (n+1) trên đây v d ng
⎡1 0 ... 0 a '1,( n +1) ⎤
⎢0 1 ... 0 a '
⎥
2 , ( n +1) ⎥
⎢
⎢ . . ... .
. ⎥
⎢
⎥
⎣⎢0 0 ... 1 a ' n ,( n +1) ⎦⎥
V y ta có xi = a'i,(n+1)
Ví d :Gi i h ph
ng trình sau b ng ph
ng pháp kh Gauss-Jordan:
2x1 + 3x2 +x3 = 11
-x1 + 2x2 -x3 = 0
B
B
c1: H ph
3x1 + 2x3
=9
ng trình trên t
ng đ
ng v i:
3x1 + 2x3=9
h1=h3
-x1 + 2x2 -x3 = 0
h2=h2
2x1 + 3x2 +x3 = 11
h3=h1
c 1:
3x1 + 0 +2x3
=9
h1=h1
2x2 -x3/3
=3
h2=h2+h1/3
h3=h3-2*h1/3
3x2 -x3//3 = 5
B
c 2:
3x1 + 0 +2x3
=9
h1=h1
3x2 - x3/3
=5
h2=h3
2x2 - x3/3
=3
h3=h2
23
CuuDuongThanCong.com
/>
Ch
ng 2: Các ph
ng pháp s trong đ i s tuy n tính
3x1 + 0 + 2x3 = 9
h1=h1
3x2 - x3/3 = 5
h2=h2
-x3/9 = -1/3
B
h3=h3-2*h2/3
c 3:
3x1 + 0 +0
3x2 -0
=3
h1=h1-2*h3/(-1/9)
=6
h2=h2-(1/3)*h3/(-1/9)
-x3/9 =-1/3
h3=h3/(-1/9)
V y
x1=1
x2=2
x3=3
Ch
ng trình minh h a.
Sau đây là đo n ch
ng trình chính th hi n (mô t ) thu t toán kh Gauss-Jordan.
int gjordan(kmatran a,double *x,int n)
{int i,j,k,h;double tmp,p;kmatran aa;
int n1=n+1;
for(i=1;i<=n;i++)
for(j=1;j<=n1;j++) aa[i][j]=a[i][j];
for(i=1;i<=n;i++) //Vong lap cac buoc khu
{//Tim hang co phan tu dau lon nhat
h=i;
for(k=i+1;k<=n;k++)
if(fabs(a[k][i])>fabs(a[h][i]) {h=k;}
if(a[h][i]==0) {cout<<"Ma tran suy bien";delay(1000);return false;}
if(h!=i) //Doi hang i va hang h vi a[h][i] > a[i][i]
{int j;double tmp;
for(j=i;j<=n1;j++)
{tmp=a[i][j];a[i][j]=a[h][j];a[h][j]=tmp;}
}
//chuyen he so a[i][i] = 1
24
CuuDuongThanCong.com
/>
Ch
ng pháp s trong đ i s tuy n tính
ng 2: Các ph
tmp=a[i][i];
for(j=i;j<=n1;j++) a[i][j] = a[i][j]/tmp;
//Bat tinh lai cac hang
for(k=1;k<=n;k++)
{if(k==i) continue;
p=a[k][i];
/*Vi ta biet a[k][i] =0 sau bien doi,
chi tinh tu a[k][i+1]*/
for(j=i+1;j<=n1;j++) a[k][j]=a[k][j] - p*a[i][j];
}
}
for(i=1;i<=n;i++) x[i]=a[i][n+1];
/*Dat cac gia tri khong o tren duong cheo chinh bang 0
(phan nay khong can)*/
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) {if(i!=j) a[i][j]=0;}
//Thu lai
kvecto bb;
for(i=1;i<=n;i++)
{bb[i]=aa[i][1]*x[1];
for(j=2;j<=n;j++) bb[i]+=aa[i][j]*x[j];
}
//Dua ket qua vao tep ketqua
return true;
2.2.2. Áp d ng ph
ng pháp kh Gauss-Jordan đ tính ma tr n ngh ch đ o
gi i h n ph ng trình n n Ax = b, trong ph ng pháp kh Gauss-Jordan ta đã dùng
các phép bi n đ i s c p đ đ a ph ng trình này v d ng
Ex = b'
Vì Ex = x, do đó ta có x=b'. N u B là m t ma tr n ch nh t c p n x k tùy ý, ta có th áp
d ng ph ng pháp kh Gauss-Jordan đ gi i đ ng th i k h n ph ng trình n n:
AX = B
(2.2)
trong đó
25
CuuDuongThanCong.com
/>
Ch
ng pháp s trong đ i s tuy n tính
ng 2: Các ph
⎡ x11
⎢x
21
X= ⎢
⎢ .
⎢
⎣ x n1
x12
x 22
.
xn2
⎡b11
⎢b
21
B= ⎢
⎢ .
⎢
⎣bn1
b12
b22
.
bn 2
... x1k ⎤
... x 2 k ⎥⎥
... . ⎥
⎥
... x nk ⎦
... b1k ⎤
... b2 k ⎥⎥
... . ⎥
⎥
... bnk ⎦
Ta vi t ma tr n B bên ph i ma tr n A nh sau:
⎡ a11
⎢a
⎢ 21
⎢ .
⎢
⎣a n1
a12
a 21
.
an2
... a1n
... a 2 n
...
.
... a nn
b11
b12
b21
b22
.
bn1
.
bn 2
... b1k ⎤
... b2 k ⎥⎥
... . ⎥
⎥
... bnk ⎦
N u ma tr n A không suy bi n, ta có th áp d ng các phép bi n đ i s c p đ đ a ma tr n
này v d ng:
⎡1 0 ... 0 b'11
⎢0 1 ... 0 b'
21
⎢
⎢ . . ... .
.
⎢
⎣0 0 ... 1 b' n1
b'12
b' 22
.
b' n 2
... b'1k ⎤
... b' 2 k ⎥⎥
...
. ⎥
⎥
... b' nk ⎦
Khi đó ta có
⎡ x11
⎢x
21
X= ⎢
⎢ .
⎢
⎣ x n1
x12
x 22
.
xn2
⎡b'11
⎢b'
21
t B’ = ⎢
⎢ .
⎢
⎣b' n1
... x1k ⎤ ⎡b'11
... x 2 k ⎥⎥ ⎢⎢b' 21
=
... . ⎥ ⎢ .
⎥ ⎢
... x nk ⎦ ⎣b' n1
b'12
b' 22
.
b' n 2
b'12
b' 22
.
b' n 2
... b'1k ⎤
... b' 2 k ⎥⎥
;
...
. ⎥
⎥
... b' nk ⎦
... b'1k ⎤
... b' 2 k ⎥⎥
...
. ⎥
⎥
... b' nk ⎦
Xét tr ng h p đ c bi t B = E, ta có ma tr n B' chính là ma tr n ngh ch đ o c a ma tr n A.
Th t v y, n u X là nghi m c a (2.2) thì
X = A-1B
N u B = E thì X = A-1. Do đó vi c tìm ma tr n ngh ch đ o c a ma tr n A t ng đ ng
v i vi c gi i ph ng trình
AX = E
26
CuuDuongThanCong.com
/>