Tải bản đầy đủ (.docx) (108 trang)

Một số phương pháp giải gần đúng hệ phương trình tuyến tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (461.21 KB, 108 trang )

Khóa luận tốt nghiệp

Khoa Toán
LỜI CẢM ƠN

Tôi xin chân thành cảm ơn thầy giáo Nguyễn Văn Hùng đã tận tình
hướng dẫn giúp đỡ tôi trong suốt thời gian thực hiện khóa luận.
Xin chân thành cảm ơn các thầy, các cô trong tổ Giải tích-Khoa Toán,
Trường Đại học Sư phạm Hà Nội 2 đã tạo mọi điều kiện giúp đỡ tôi hoàn
thành khóa luận này.
Xin chân thành cảm ơn gia đình và bạn bè đã tạo mọi điều kiện thuận
lợi cho tôi trong quá trình thực hiện khóa luận.
Tôi xin chân thành cảm ơn!
Hà Nội, tháng 05 năm 2010
Sinh viên
Nguyễn Thị Ngọc

Nguyễn Thị Ngọc

1

Lớp K32C


LỜI CAM ĐOAN
Tôi xin cam đoan khoá luận là công trình nghiên cứu của riêng tôi.
Trong khi nghiên cứu, tôi đã kế thừa những thành quả nghiên cứu của
các nhà khoa học, nhà nghiên cứu với sự chân trọng và biết ơn.
Những kết quả nêu trong khoá luận chưa được công bố trên bất kỳ công
trình nào khác.
Hà Nội, tháng 05 năm 2010


Sinh viên
Nguyễn Thị Ngọc


MỤC LỤC
Nội dung
Lời cảm ơn.......................................................................................................1
Lời cam đoan...................................................................................................2
Lời nói đầu.......................................................................................................4
Chương 1: Một số kiến thức cơ bản................................................................6
1.1. Số gần đúng và sai số..............................................................................6
1.2. Hệ phương trình tuyến tính......................................................................13
1.3. Phân tích sai số........................................................................................15
Chương 2: Một số phương pháp giải gần đúng hệ phương trình tuyến tính. 17
2.1. Phương pháp Gauss................................................................................17
2.2. Phương pháp Cholesky...........................................................................25
2.3. Phương pháp trực giao hóa.....................................................................29
2.4. Phương pháp lặp đơn..............................................................................32
2.5. Phương pháp Jacobi................................................................................37
2.6. Phương pháp Seidel................................................................................41
2.7. Phương pháp Gauss-Seidel.....................................................................46
Chương 3: Bài tập áp dụng..............................................................................49
Kết luận
Tài liệu tham khảo


LỜI NÓI ĐẦU
Toán học là một môn khoa học bắt nguồn từ nhu cầu giải quyết bài toán
có nguồn gốc thực tiễn và quay trở lại phục vụ thực tiễn. Cùng với thời gian
và sự tiến bộ của loài người toán học ngày càng phát triển và được chia thành

hai lĩnh vực đó là toán học lý thuyết và toán học ứng dụng.
Nói đến toán học ứng dụng phải kể đến Giải tích số-môn học nghiên
cứu các phương pháp giải gần đúng các bài toán thực tế được mô hình hoá
bằng ngôn ngữ toán học.
Để có lời giải đúng cho bất kì bài toán nào cũng cần phải có dữ kiện
của bài toán, xây dựng mô hình bài toán, tìm thuật toán hiệu quả nhất. Và
cuối cùng là xây dựng chương trình trên máy tính sao cho tiết kiệm thời gian
và bộ nhớ. Tuy nhiên trong thời gian sử lý số liệu không tránh khỏi sai số dù
là rất nhỏ nhưng ảnh hưởng trực tiếp đến quá trình tính toán.
Chính vì vậy phải sử dụng các thuật toán hữu hiệu để giảm thiểu sự sai
số đồng thời thuận lợi cho công việc lập trình tiết kiệm số lượng các phép tính
và thời gian tính toán.
Phương pháp số có ý nghĩa rất lớn trong đại số tuyến tính, đặc biệt là
đối với việc giải hệ phương trình tuyến tính. Khi số các phương trình lớn các
phương pháp truyền thống nhiều khi gặp khó khăn, chúng ta không thể giải
quyết một cách chính xác mà chỉ có thể đưa ra lời giải gần đúng cho một bài
toán. Các nhà toán học đã tìm ra nhiều phương pháp để giải gần đúng hệ
phương trình tuyến tính.
Hệ phương trình tuyến tính có dạng tổng quát là hệ gồm m phương
trình n ẩn. Trong khuôn khổ khoá luận này em xin trình bày mảng nhỏ đó là
hệ n phương trình, n ẩn.


Với lòng yêu thích toán học, đam mê nghiên cứu khoa học em đã quyết
định chọn đề tài cho mình là: “Một số phương pháp giải gần đúng hệ phương
trình tuyến tính”.
Có khá nhiều phương pháp giải hệ phương trình tuyến tính nhưng do
mới bước đầu làm quen với việc nghiên cứu khoa học và thời gian nghiên cứu
còn ít nên trong khuôn khổ khoá luận này em xin trình bày một số vấn đề sau:
Chương 1: Một số kiến thức cơ bản về sai số, làm tròn số, số gần đúng,

hệ phương trình tuyến tính, tập nghiệm của hệ phương trình, số điều kiện của
ma trận, phân tích sai số.
Chương 2: Một số phương pháp giải gần đúng hệ phường trình tuyến
tính. Chương này gồm 7 phương pháp giải gần đúng hệ phương trình tuyến
tính gồm phương pháp trực tiếp và các phương pháp lặp được trình bày theo
thứ tự: cơ sở lý thuyết, thuật toán, ứng dụng và đánh giá sai số (nếu có).
Chương 3: Bài tập áp dụng.


CHƢƠNG 1: MỘT SỐ KIẾN THỨC CƠ BẢN
1.1.

Số gần đúng và sai số

1.1.1 Định nghĩa
Trong thực tế tính toán ta thường không biết số đúng

a* mà chỉ biết

số đủ gần nó là a . Ta nói a là số gần đúng của a* , nếu a không sai khác
*

a nhiều.
được gọi là sai số thực sự của a .

Đại lượng 
*

a a
Do không biết a* nên cũng không biết nhưng ta có thể tìm

được số
a 0 cho a
 a a

*

(1.1)
*

Hay a a a a
Số ∆ a thoả mãn (1.1) được gọi là sai số tuyệt đối của a .

a

Tỉ số a 

a

được gọi là sai số tương đối của a .

Ví dụ 1.1.1.1. Cho số
*

a  a 3.14
;
3.14 a 
3.15;

a 0.01


*

3.14 a 3.142; a 0.002
Trong phép đo nói chung sai số tuyệt đối càng nhỏ càng tốt.
Ví dụ 1.1.1. 2. Đo độ dài hai đoạn đường ta được:


a
100m;
b
6km;


a


0.5

100

a 0.5m
b 20m

1

;

b 

200


20
6000



1

300


Nhận xét:
Từ ví dụ trên ta thấy rằng phép đo b chính xác hơn phép do a mặc dù
a b . Như vậy độ chính xác của phép đo phản ánh qua sai số
tương đối.
1.1.2. Sai số thu gọn
Xét số thập phân a được biểu diễn dưới dạng:

Trong đó:

a  
 10

p

p

p

10p1


....

pq 10

pq



0 i 9;
p 1 i p q
p 0;
 Nếu p q 0 thì a là số nguyên.
 Nếu p q
 0

thì a là số thập phân có phần lẻ gồm

p q chữ số
 Nếu p q thì a là số thập phân vô hạn.
Ví dụ 1.1.2.1.
4087 4 103 0 102 8 101 7 100
Ta thấy:

p q nên a =4083 là số nguyên.
Ví dụ 1.1.2.2. 0

31.8783 3101 110 0 8 10



10 3 310 4

1

7 10

2

8

Ta thấy :

p q = 4 nên a =31.8783 là số thập phân có phần lẻ gồm 4 chữ số.


Thu gọn a là vứt bỏ một số các chữ số bên phải của a để được

số ngắn gọn hơn nhưng vẫn đảm bảo độ chính xác cần thiết.


Quy tắc thu gọn

Giả sử:
j


p




a   p  ... 
j10
p 10
10
j1

j

...  10

p q




Giả sử ta muốn giữ lại đến hàng thứ j, gọi phần bỏ đi là M. Khi đó ta
được số thu gọn là:



a  
p 10

p

... j10
j

p




10p1

0 M 0.510 
j

Trong đó:

 j

j

j
j
j 1  0.510 M 10 

Nếu M=0.510
thì

j

j nếu j là chẵn j



j

nếu j là lẻ



j1

tính toán với số chẵn tiện hơn.
Ví dụ 1.1.2.3.

3.141592654 3.14159265 3.1415926
3.141592 3.14159 3.1415
3.141 3.14 3.1 3


Giả sử số thu gọn của a là a . Ta có a
a

a*  a* a
a
 a a

a* a
 a a

a

a a .

Từ đánh giá trên ta có nhận xét: Khi thu gọn số a thì sai số tuyệt đối
*

của a với


a lớn hơn hoặc bằng sai số tuyệt đối của a và a* .

1.1.3. Chữ số có nghĩa, chữ số chắc.
1.1.3.1. Chữ số có nghĩa
Chữ số có nghĩa là mọi chữ số khác 0 và cả chữ số 0 nếu nó kẹp giữa
hai chữ số có nghĩa hoặc nó đại diện cho hàng được giữ lại.


Ví dụ 1.1.3.1.

0.000870190
Bốn chữ số 0 ở vị trí đầu tiên là những chữ số không có nghĩa, toàn bộ
những chữ số còn lại là những chữ số có nghĩa.
1.1.3.2. Chữ số chắc
Xét số a 



p

10

p


p

10p1

...


pq10

pq




trước.

được gọi là chữ số chắc nếu a 10 . Với
 là số cho
i

Chữ số
j

Tham số được chọn để một chữ số vốn đã chắc sau khi thu
gọn vẫn là chữ số chắc.
Ví dụ 1.1.3.2.
a 1.70134
a 0.001 10

Khi đó:

3

a 110 7 10
4
5

10 4 10
0

Chọn



1

0 10

2

110

3

3

thì a có bốn chữ số chắc là 1,7,0,1 còn lại hai chữ số


1

không chắc là 3,4.
1

Nếu chọn 

thì a có ba chữ số chắc là 1,7,0 còn ba chữ số 1,3,4 là


2

không chắc.
Ta xét việc chọn . Giả sử a được viết dưới dạng:

a



p

10

p



10p1
p

...

pq10

pq






Ta chọn sao cho sau khi thu gọn đến bậc

i1

(i+1) thì Muốn vậy phải có:
a a 10



10

0.5 10

i 1

 vẫn là chắc

i 1

10

i

5 10 

i 1





5

9

Trong thực tế người ta chọn 1 hoặc 
2
1 người ta nói chữ số là chắc theo nghĩa
Nếu rộng, còn khi

người ta nói chữ số là chắc theo nghĩa hẹp.

1




1
2


Lưu ý:
Khi viết số gần đúng ta chỉ nên giữ lại một hai chữ số không chắc để
khi tính toán sai số chỉ tác động đến những chữ số không chắc mà thôi.
1.1.4. Sai số tính toán
Giả sử ta phải tính đại lượng y theo công thức:
f x1, x2 ,..., xn .
y
Gọi


 x , x ,..., x
;

*

*

x


*

1

*

y f  x* là các giá trị đúng. Giả sử ta không

*



2

biết các giá trị đúng này, mà ta chỉ biết các giá trị x  x , x
 1 2
,..., xn ;

y f 
x


lần lượt là các giá trị gần đúng của x * và y* .
Giả sử x ; (với i=1,2,...,n) là các sai số tuyệt đối và tương đối của
i
xi
các đối số. Khi đó sai số của hàm y f  x1, x2

được gọi là các sai số

,..., xn 

tính toán.
Giả sử

f  x1, x2 ,..., xn  là hàm số khả vi liên tục thì:



*

y  y

y
n f

x

'

 f x1, x2 ,...,

xn

 x , ,...,
 x


2

1





xi



1

n

Với x  x1, x2 ,...,
xn



*

*


*

*



fx1 , x2 ,..., xn

xi x
i

*

là điểm nằm giữa x và

*

x . Vì f khả vi liên tục



xi


xi 
xi

khá bé nên


n

y f


'
i

x





với

x 
xi

x  x1, x2 ,..., xn 

i1

Vậy
:

y n
y y 






ln f x 
xi

xi

i1

y ln y

và cũng có thể viết

1.1.4.1. Sai số của phép toán cộng, trừ:
n

Nếu

y


xi

i1

thì

'


yx 1 với i=1,…,n.
i

(1.1.4)


Vậy ta có:


n

2

xi

i

1

n

n


i

y 

(1.1.4.1)


  ...  x
f
i1
x   
n
x
x x
y
Chú ý rằng nếu tổng đại số y 
bé về giá trị tuyệt đối thì y lớn,
i

1

'


xi

i1

phép tính sẽ kém chính xác. Ta khắc phục bằng cách tránh công thức đưa đến
hiệu của hai số gần nhau.
Ví dụ:
y  2.01  2.00
0.01
y  2.01  2.00 
Ta có:

0.01


 0.0035.

1.42 1.41

1.1.4.2. Sai số của phép toán nhân, chia:
 Sai số của phép nhân
Xét:

y x1 x2 ...xn

Ta có: y 
x1
ln y l
n x1



x2 ... xn
ln
x2

... ln xn

Từ (1.1.4.1) ta có:
l 
n y ln
x1




ln ... ln xn
x2

y x1 x2 ... xn
Từ (1.1.4) suy
ra:

y 


y y

Vậy sai số tương đối của một tích bằng tổng các sai số tương đối của
các số hạng thành phần.
 Sai số của phép chia
Xét :

y 
x2

x1


x
'
Ta có: y x' 1 ; y x2  2 1
x2
x2
i



y


Suy
ra:

x x x x
2

1

1

2

y
x

x

; 

x22

1

2


1.1.4.3. Sai số của phép tính luỹ thừa
Xét y 

x

 , x
0, khi đó 

y

x

Như vậy nếu 1 thì độ chính xác là giảm đi, nếu
1 thì độ chính
xác tăng lên. Nếu



(phép nghịch đảo) thì độ chính xác là không đổi,


1
nếu 
, k 
k

*

1


(phép khai căn) thì độ chính xác tăng lên.

1.1.4.4. Sai số của phép tính logarit.
Xét y=lnx, ta có y 
x
Ví dụ: Biết diện tích hình vuông S=12.34 và S 0.01. Hãy tính cạnh
của
hình vuông.

Gọi x là cạnh hình vuông, thì x  S  3.513 .
XétS
vậy

x  1.4 10
3 cuối

3

S



S
0.008,

, từ đó ta thấy rằng x có 3 chữ số chắc (trừ chữ số

cùng).
1.1.5. Bài toán ngược của bài toán sai số



Giả sử đại lượng y được tính theo công thức: y=

f

x1, x2 ,..., xn .

Cần
tính  để y
xi ;

(0) cho trước. Theo công thức tổng quát của
sai số

tính toán ta phải có:
f
y  xi 
n


x
suy
ra

i1

i




xi 
n f x'i


Kết luận: Nếu các biến
xi

có vai trò “đều nhau” thì ta có thể lấy x 



i

,

n f x'i

khi đó y .
Ví dụ: Một hình trụ có chiều cao h 3m , bán kính đáy R
2m . Tìm số

để thể tích V được tính chính xác đến 0.1m3.

h,
R ,

2
Ta có: V = R h, nên V
2
V

R ..
có:
V
2
=2Rh,
=R h,
h

0.1
0,1
R
0,1
Vậy   0.03 ; R 
0.001; h

0, 003 .
343
3.6.2
3. .4

1.2

Hệ phƣơng trình đại số tuyến tính

1.2.1 Dạng tổng quát của hệ phương trình tuyến tính
Một hệ phương trình tuyến tính tổng quát là hệ có m phương trình n ẩn.
Ở đây ta chỉ xét những hệ n phương trình , n
ẩn. Nghĩa là chỉ xét hệ có dạng:

Ax


b (2.1)
Trong đó:

A

nn

là ma trận cấp n n

b
là vectơ cho trước

n
là vectơ nghiệm cần tìm
x

n

Hay viết dưới dạng tường minh:

a11x1 a12 x2 ... a1n xn b1

a x ...


a21 x1 22 2
2n n
2


..........
 a x a x ... a x b
n2 2
nn n
n
 n1 1
1.2.2. Định lý về sự tồn tại và duy nhất nghiệm
Gọi det
Ai

i bởi vế phải.

là định thức suy ra từ định thức det A bằng cách thay cột thứ


Nếu det A =0 ta nói ma trận A suy biến và hệ (2.1) suy biến. Khi đó
hệ phương trình vô nghiệm hoặc vô số nghiệm.
Định lý (định lý Cramer):
Nếu det A 0 tức là hệ không suy biến thì hệ (2.1) có nghiệm duy
nhất cho bởi công thức:

det với i=1,2,…,n
xA
i det
A
i

1.2.3. Biện luận về số nghiệm
Cho hệ phương trình (2.1) với ma trận hệ số A và ma trận bổ sung





Nếu rank A
rank Abs

thì hệ vô nghiệm.

Nếu rank A =rank Abs = r thì có 2 trường hợp: r = n và r < n

1. Trường hợp r = n
Hệ phương trình đã cho có dạng:

a '
x
11
'
a
x


1

'

a ...' b
a 1n
12
1


...'
a

22 2

b
2n


.....
a ' b'
 nn n
'
Trong đó: a

'

'

2

'

11

, ' ,..., a 0
a
22

nn


Hệ này có nghiệm duy nhất.
2. Trường hợp r < n
Hệ phương trình đã cho có dạng:

a '  a '
x
x12
11 1


...' b
a 1n 1
2

'


a
x

'

...
 b
'
a x
22 2

2n n



.....
'

'
a' ...
a b
 rr
rn
r

'

2

Cho các ẩn

xr1, xr2
,..., xn
được

(là các ẩn tự do) những giá trị tuỳ ý ta tính

x1, x2 ,..., qua các ẩn tự do đó. Điều đó chứng tỏ hệ phương trình có vô
xr

số nghiệm.
Tóm lại:
- Nếu rankA rankAbs : hệ vô nghiệm.

- Nếu rankA rankAbs n : hệ phương trình có nghiệm duy
nhất.
- Nếu
rankA rankAbs n : hệ phương trình có vô số nghiệm.
1.3. Phân tích sai số
1.3.1. Số điều kiện của ma trận
Xét

A
 a

n

Kí hiệu:

và x là một chuẩn nào đó của vectơ

x R

n

ij i, j1

Ax
Ax
M sup , m inf
x0 x
x0 x

Từ kết quả của giải tích hiện đại ta có:


M , hơn nữa

nếu

A

m
thì
0

ma trận A không suy biến, do đó ma trận A có ma trận nghịch đảo A1 và

1

m A1

Định nghĩa

M

Đại lượng



m


A


được gọi là số điều kiện của ma trận A và đại

A1

lượng đó kí hiệu là

cond ( A) .

Ma trận A được gọi là ma trận điều kiện xấu nếu cond( A ) là khá lớn
cond( A) 1.
Tính chất của số điều kiện:
1. cond ( A) 1.
2.Nếu A là ma trận trực giao
thì

cond ( A) 1.

3. c
cond (cA) cond ( A)
 0 thì


4.Nếu D diag

 d n

i

thì cond  D 
max di

min di

1.3.2. Phân tích sai số

(2.1)

Giả sử x là nghiệm của phương trình: Ax
b
x' x
x

là nghiệm của phương trình Ax' b' với b' b b

Khi đó:
x
1

m


x


1

x 
inf A(  1 A(x)
m x0 x)x
mx


1
A(x)
m

1
m A  x 

Suy
ra


x


Do đó

1
x 
b .
m

1
x  M x 1 Ax b
.
M
M

b
x M
M b


Vậy: x

m b
A)

cond (

(3.2)

b

Ước lượng (3.2) chứng tỏ rằng sai số tương đối của nghiệm có thể bằng
tích của cond(A) với sai số của vế phải.
Từ đó suy ra rằng với ma trận A điều kiện xấu thì nghiệm của nó thay
đổi nhiều so với những thay đổi nhỏ ở hệ số và số hạng tự do. Như vậy, vấn


×