nct _ phuong phap tinh va toi uu version 2

101
NGUYN CHÍ TRUNG NGUYN TÂN ÂN NGUYN THTHU THY PHƯƠNG PHÁP TÍNH VÀ BÀI TOÁN TI ƯU HÀ NI - 2010

Upload: ba-nghia-nguyen

Post on 26-Jul-2015

162 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NGUYỄN CHÍ TRUNG NGUYỄN TÂN ÂN

NGUYỄN THỊ THU THỦY

PHƯƠNG PHÁP TÍNH VÀ BÀI TOÁN TỐI ƯU

HÀ NỘI - 2010

Page 2: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

MỤC LỤC

MỞ ĐẦU.........................................................................................................................................5

Chương 1 TÍNH GẦN ĐÚNG VÀ SAI SỐ...................................................................................8

1. Số gần đúng và sai số của nó ..................................................................................................8 1.1. Số gần đúng và sai số .......................................................................................................8 1.2. Chữ số có nghĩa và chữ số đáng tin..................................................................................9 1.3. Cách viết số gần đúng ....................................................................................................10 1.4. Sai số làm tròn................................................................................................................10

2. Sự lan truyền sai số ...............................................................................................................11 2.1. Mở đầu ...........................................................................................................................11 2.2. Sai số của tổng................................................................................................................11 2.3. Sai số của tích.................................................................................................................12 2.4. Sai số của thương ...........................................................................................................13 2.5. Sai số của hàm bất kỳ .....................................................................................................14

3. Các loại sai số .......................................................................................................................14 3.1. Các loại sai số mắc phải khi giải một bài toán thực tế ...................................................14 3.2. Các loại đánh giá sai số phương pháp...........................................................................15

BÀI TẬP ...................................................................................................................................15

Chương 2. TÍNH GIÁ TRỊ VÀ XẤP XỈ HÀM SỐ ......................................................................16

1. Tính giá trị hàm số ................................................................................................................16 1.1. Thuật toán Hoocner tính giá trị đa thức .........................................................................16 1.2. Tính hàm nhờ chuỗi lũy thừa .........................................................................................17

2. Bài toán nội suy hàm số ........................................................................................................18 2.1. Đa thức nội suy Lagrange trên mốc không đều .............................................................19 2.2. Đa thức nội suy Lagrange với mốc cách đều .................................................................22 2.3. Đa thức nội suy Newton trên mốc không cách đều........................................................23 2.4. Đa thức nội suy Newton trên mốc cách đều...................................................................27 2.5. Nội suy tổng quát (nội suy Hermit)................................................................................29

3. Xấp xỉ bình phương cực tiểu.................................................................................................30 3.1. Phương pháp chung........................................................................................................30 3.2. Một số dạng hàm cụ thể. ................................................................................................31

BÀI TẬP ...................................................................................................................................33

CHƯƠNG 3 GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH PHI TUYẾN............................................35

1. Nghiệm và khoảng phân ly nghiệm ......................................................................................35

2. Phương pháp chia đôi ...........................................................................................................36 2.1. Mô tả phương pháp ........................................................................................................36 2.2. Thuật toán tìm nghiệm xấp xỉ bằng phương pháp chia đôi............................................37

3. Phương pháp lặp đơn ............................................................................................................38 3.1. Mô tả phương pháp ........................................................................................................38 3.2. Cách chọn ϕ(x) thỏa điều kiện hội tụ của phương pháp lặp đơn ...................................40

2

Page 3: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

3.3. Thuật toán tìm nghiệm xấp xỉ bằng phương pháp lặp đơn.............................................41

4. Phương pháp tiếp tuyến (Newton) ........................................................................................41 4.1. Mô tả phương pháp ........................................................................................................41 4.2. Sự hội tụ của phương pháp.............................................................................................42 4.3. Thuật toán tìm nghiệm xấp xỉ bằng phương pháp Newton............................................43

5. Phương pháp cát tuyến..........................................................................................................43 5.1. Mô tả phương pháp ........................................................................................................43 5.2. Thuật toán tìm nghiệm xấp xỉ bằng phương pháp Cát tuyến .........................................44

6. Phương pháp dây cung..........................................................................................................45 6.1. Mô tả phương pháp ........................................................................................................45 6.2. Sự hội tụ của phương pháp.............................................................................................45

BÀI TẬP ...................................................................................................................................45

Chương 4 PHƯƠNG PHÁP SỐ TRONG ĐẠI SỐ TUYẾN TÍNH.............................................47

1. Đại số ma trận .......................................................................................................................47 1.1. Vectơ cột và vectơ hàng .................................................................................................47 1.2. Ma trận ...........................................................................................................................48

2. Hệ phương trình đại số tuyến tính ........................................................................................51 2.1. Giới thiệu........................................................................................................................51 2.2. Giới thiệu phương pháp Cramer.....................................................................................52 2.3. Phương pháp khử Gauss.................................................................................................53 2.4. Phương pháp Gauss-Seidel ............................................................................................56 2.5. Phương pháp giảm dư ....................................................................................................60 2.6. Vấn đề ổn định của nghiệm của hệ phương trình...........................................................63

3. Tính gần đúng giá trị riêng và véc tơ riêng của ma trận .......................................................64 3.1. Giới thiệu........................................................................................................................64 3.2. Ma trận đồng dạng..........................................................................................................65 3.3. Tìm giá trị riêng bằng phương pháp Đa-nhi-lép-ski ......................................................65 3.4. Tìm vectơ riêng bằng phương pháp Đan-nhi-lep-ski .....................................................68

BÀI TẬP ...................................................................................................................................70

Chương 5 TÍNH GẦN ĐÚNG ĐẠO HÀM VÀ TÍCH PHÂN ....................................................72

1. Tính gần đúng đạo hàm.........................................................................................................72 1.1. Đạo hàm cấp 1................................................................................................................72 1.2. Đạo hàm cấp hai .............................................................................................................72

2. Tính gần đúng tích phân .......................................................................................................73 2.1. Giới thiệu bài toán..........................................................................................................73 2.2. Công thức hình chữ nhật trung tâm................................................................................73 2.3. Công thức hình thang .....................................................................................................75 2.4. Công thức Simpson (hay công thức Parabol).................................................................77 2.5. Các thuật toán “hcn, ht, sim” tính gần đúng tích phân xác định ....................................79

Chương 6 BÀI TOÁN QUI HOẠCH TUYẾN TÍNH .................................................................80

1. Giới thiệu bài toán tối ưu tổng quát ......................................................................................80 1.1. Ví dụ mở đầu..................................................................................................................80 1.2. Mô hình bài toán tối ưu tổng quát ..................................................................................80

3

Page 4: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

1.3. Dạng chuẩn tắc và dạng chính tắc..................................................................................81

2. Đặc điểm của tập các phương án của bài toán QHTT ..........................................................82 2.1. Tập lồi và đa diện lồi......................................................................................................82 2.2. Đặc điểm của tập các phương án của bài toán QHTT....................................................84

3. Thuật toán đơn hình giải bài toán QHTT..............................................................................85 3.1. Đường lối chung của thuật toán .....................................................................................85 3.2. Các định lý cơ bản của thuật toán đơn hình ...................................................................86 3.4. Thuật toán đơn hình .......................................................................................................90

4. Tìm phương án cực biên ban đầu..........................................................................................95 4.1. Nhận xét .........................................................................................................................95 4.2. Định nghĩa ràng buộc chuẩn...........................................................................................96 4.3. Phương pháp phạt hay phương pháp bài toán M............................................................97

BÀI TẬP .................................................................................................................................101

4

Page 5: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

MỞ ĐẦU

1. Giới thiệu môn học Phương pháp tính

Có các tên gọi sau: Phương pháp tính (Computional methods), phương pháp số (Numerical methods), Giải tích số (Numerical analysis), rộng hơn nữa là Toán học tính toán (Computional mathematics, Numerical mathematics) (theo Bách khoa toàn thư về khoa học và kỹ thuật, NXB Mc. Graw Hill 1992).

Là một khoa học nghiên cứu cách giải gần đúng, mà chủ yếu giải bằng số (gọi là giải số) các phương trình, các bài toán xấp xỉ hàm số và các bài toán tối ưu hóa. Một cách ngắn gọn là giải các bài toán bằng số trên máy tính.

2. Phân biệt toán tính và toán lí thuyết

Toán lí thuyết quan tâm đến các vấn đề định tính của bài toán: tồn tại, duy nhất, tính chất nghiệm của các bài toán.

Toán tính quan tâm đến xây dựng phương pháp, thuật toán để để tìm nghiệm bài toán trên máy tính.

Thuật toán được xây dựng phải thỏa mãn yêu cầu về tính khả thi và tính ổn định.

Một thuật toán là khả thi nếu nó thực hiện được trên máy tính. Một thuật toán gọi là ổn định nếu sai số tính toán (do máy tính làm tròn số) không bị khuếch đại trong quá trình tính.

Ví dụ 1 (tính ổn định). Giả sử cần tính tích phân

)1(11

0

≥= −∫ ndxexI xnn .

Tích phân từng phần: đặt u=xn thì du = nxn-1dx; đặt dv=ex-1dx thì v = ex-1 ta được

.1 11

1

0

110

1−

−−− −=−= ∫ nxnxn

n nIdxexnexI

Ngoài ra ta có

.3679.01)1( 1

011

1

01 ≈=−== −−∫ e

xedxexI xx

Như vậy, để tính ta thu được công thức truy hồi tính được In về mặt lý thuyết: nI

.3679.0,2,1

1

1

=≥−= −

InnII nn

Về mặt thực tế tính trên máy tính không cho kết quả mong muốn khi n lớn. Cụ thể là tính trên máy tính với n=25 ta được bảng kết quả sau (liệt kê theo từng hàng)

0.3679 0.2642 0.2073 0.1709 0.1455

0.1268 0.1124 0.1009 0.0916 0.0839

5

Page 6: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

0.0774 0.0718 0.0669 0.0627 0.0590

0.0555 0.0572 -0.0295 1.5596 -30.1924

635.0403 -13969.8864 321308.3881 -7711400.3133 192785008.8325

Kết quả giảm dần từ 0.3679 (khi n=1) đến 0.0555 (khi n=16)

Kết quả sau đó kết quả thay đổi thất thường và giá trị tuyệt đối tăng rất nhanh.

Điều này hoàn toàn không phù hợp với lý thuyết vì theo lý thuyết thì khi 0→nI ∞→n do đó

.1

101

0 +=≤≤ ∫ n

dxxI nn

Hiện tượng kết quả tính toán nêu trên là sự không ổn định của thuật toán: sai số ban đầu khi

tính

nI

3679.011 ≈=

eI đã bị khuyếch đại trong quá trình tính.

Nguyên nhân: thay vì e

I 11 = ta thu được , trong đó δ+= 11

~ II δ là sai số. Giả sử các tính toán

tiếp theo không mắc phải sai số. Với n = 2 ta được

.22)21()(21~21~21112 δδδ −=−−=+−=−= IIIII

Thu được 2~I với sai số δ2|~| 22 =− II . Tương tự, ở bước thứ n thay cho giá trị đúng ta thu

được giá trị gần đúng

nI

nI~ với sai số δ!|~| nII nn =− . Do đó, dù δ có bé thì khi n đủ lớn, sai số vẫn

đủ lớn và ta không thể nhận được giá trị chấp nhận được là gần đúng cho . nI

Ví dụ 2 (tính khả thi). Cho hệ phương trình đại số tuyến tính

bAx = , (1)

trong đó A là ma trận vuông cấp n với định thức khác 0.

Về lý thuyết có thể giải hệ trên bằng công thức Cramer

∆∆

= iix , (i =1,..., n), (2)

trong đó , còn nhận được từ Adet=∆ i∆ ∆ do việc thay cột thứ i bởi cột tự do b. Nhưng việc

tính toán ra nghiệm bằng số cụ thể lại là một việc không đơn giản. Theo công thức (2) cần phải tính n +1 định thức cấp n. Mỗi định thức là tổng của n! số hạng, mỗi số hạng là tích của n thừa số. Do vậy, để tính mỗi số hạng cần thực hiện n – 1 phép nhân. Như vậy, tất cả số phép tính nhân cần thực hiện trong (2) là Q = n!(n+1)(n-1).

Giả sử n = 20. Khi đó . Nếu tốc độ của máy tính là 100 triệu phép tính/giây thì

thời gian để thực hiện khối lượng tính toán trên là giờ = năm. Một thời gian lớn vô cùng! Và như vậy, thuật toán nêu trên là hoàn toàn không khả thi dù máy tính có tăng tốc độ lên gấp hàng nghìn, hàng vạn lần.

2010*7073.9≈Q910*2.6965 510*0782.3

6

Page 7: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Ở trên ta mới chỉ xét việc giải một hệ cỡ 20, mà thực tế khoa học và công nghệ đòi hỏi phải giải các hệ phương trình đại số tuyến tính cỡ hàng vạn, hàng triệu hoặc hơn thế nữa. Vì thế, cần phải nghiên cứu đề xuất các phương pháp hiệu quả để có thể giải được các hệ thống phương trình cỡ lớn. Đó là một trong các nhiệm vụ của ngành Phương pháp tính.

Chương 1 gồm các nội dung sau:

Các khái niệm cơ bản: số xấp xỉ (hay số gần đúng), sai số tuyệt đối và sai số tương đối, chữ số có nghĩa và chữ số đáng tin, cách viết số gần đúng, sai số quy tròn và quy tắc làm tròn để số còn lại gồm các số đáng tin;

Sự lan truyền sai số đầu vào dẫn đến sai số đầu ra x f(x), từ đó tính được sai số của tổng, hiệu, tích, thương.

Các loại sai số: giới thiệu các nguyên nhân dẫn đến sai số: sai số khi xây dựng mô hình hóa các đối tượng, sai số về phương pháp thực hiện, sai số do tính toán. Và, cách đánh giá tiên nghiệm, hậu nghiệm đối với sai số.

7

Page 8: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Chương 1 TÍNH GẦN ĐÚNG VÀ SAI SỐ

1. Số gần đúng và sai số của nó

1.1. Số gần đúng và sai số Định nghĩa 1.1 Số a được gọi là số gần đúng hay số xấp xỉ của số đúng A (tức giá trị đúng của đại lượng cần quan tâm) và ký hiệu là Aa ≈ , nếu sai khác a A không đáng kể. Nếu Aa < thì

được gọi là xấp xỉ thiếu, còn nếu thì được gọi là xấp xỉ thừa của a Aa > a A .

Thí dụ: Đối với số 2A = thì 1 1,41a = là xấp xỉ thiếu, còn 2 1, 42a = là xấp xỉ thừa vì

2 1, 4142135623...= ; đối với số 3,1415926535...π = thì 3,14 là xấp xỉ thiếu, còn 3,15 là xấp xỉ thừa.

Định nghĩa 1-1.1 Số | A a |∆ = − được gọi là sai số tuyệt đối của số gần đúng . a

Thông thường số đúng A không biết nên ta cũng không biết chính xác sai số tuyệt đối của số gần đúng , mà chỉ có thể đánh giá nó. Vì thế ta có thể xem đánh giá tốt nhất của ∆ là sai số tuyệt đối giới hạn của , đó là số bé nhất có thể biết được, thỏa mãn điều kiện

aa a∆

aA ∆≤−α (1-1.1)

Từ bất đẳng thức trên suy ra

aa aAa ∆+≤≤∆− . (2-1.1)

Để đơn giản người ta thường viết aA a= ± ∆ để ám chỉ rằng a∆ là sai số tuyệt đối giới hạn của

. a

Ví dụ 1-1.1. Nếu coi là xấp xỉ của 14,3=a π thì sai số tuyệt đối là 0,002a∆ ≤ .

Sai số tuyệt đối không phản ánh đầy đủ mức độ chính xác của phép đo hoặc tính toán. Chẳng hạn, đo chiều dài của hai thanh sắt bằng cùng một thước đo ta nhận được các kết quả sau:

cmcmlcmcml

1,05,71,06,115

2

1

±=±=

Tuy sai số tuyệt đối của hai phép đo trên là như nhau (= 0,1 cm) nhưng rõ ràng là phép đo thứ nhất chính xác hơn. Để thể hiện điều đó ta đưa vào khái niệm sau.

Định nghĩa 2-1.1. Sai số tương đối của số gần đúng , ký hiệu bởi a δ , là

AaA

A−

=∆

=δ (3-1.1)

với giả thiết là . 0A ≠

Tuy nhiên, do số A và ∆ không biết nên trong thực hành ta sẽ chấp nhận sai số tương đối của số gần đúng là số a aδ dưới đây, gọi là sai số tương đối giới hạn của a

8

Page 9: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

aa

a∆

=δ (4-1.1)

Người ta thường tính sai số tương đối bằng phần trăm. Vì thế

%100||×

∆=

aa

aδ .

Trở lại phép đo chiều dài của các thanh sắt ta thấy rằng sai số tương đối của là 1l

10,1 100% 0,09%

115,6δ = × = , của là 2l 2

0,1 100% 1,33%7,5

δ = × = . Rõ ràng là 1δ nhỏ hơn rất nhiều

so với 2δ và phép đo thứ nhất chính xác hơn nhiều so với phép đo thứ hai.

1.2. Chữ số có nghĩa và chữ số đáng tin Một số viết ở dạng thập phân có thể gồm nhiều chữ số. Chẳng hạn số 20,15 có 4 chữ số; số 3,1412 có 5 chữ số.

Định nghĩa 1-1.2. Những chữ số có nghĩa của một số là những chữ số của số đó kể từ chữ số khác không đầu tiên tính từ trái sang phải.

Ví dụ 1-1.2. Trong các số sau, những chữ số được gạch dưới là những chữ số có nghĩa: 12,57; 20,15 ; 0,03047 ; 0,304500 .

Giả sử là số gần đúng của a A và a có biểu diễn

nmm −−−−± ααααααα ...,... 2101`

tức là

∑±=++++++++±= −

−−

−−

s

ss

nn

mm

mma

10.

...)10....10.10.10....10.10.( 11

001

11

α

αααααα(1-1.2)

trong đó sα là những số nguyên từ 0 đến 9, gọi là chữ số hàng thứ s của số a.

Định nghĩa 2-1.2. Gọi là sai số tuyệt đối của số , chữ số hàng thứ s của số a được gọi là

chữ số đáng tin (hay chữ số đúng) nếu sai số tuyệt đối của số a không vượt quá một nửa đơn vị

của hàng thứ s (tức là

a∆ a

sa 10.

21

≤∆ ), và gọi là chữ số nghi ngờ nếu sai số tuyệt đối của số a

không vượt quá một nửa đơn của hàng thứ s (tức là sa 10.

21

>∆ ), trong đó là sai số tuyệt đối

của số a.

a∆

Từ định nghĩa trên suy ra rằng nếu αs là chữ số đáng tin thì mọi chữ số có nghĩa bên trái nó đều là đáng tin, và nếu αs là đáng ngờ thì mọi chữ số bên phải nó đều là đáng ngờ. Việc đánh giá các chữ số đáng tin và đáng ngờ của một số gấn đúng a không phụ thuộc vào bản thân các chữ số đó mà phụ thuộc vào sai số tuyệt đối của a và vị trí của chúng.

9

Page 10: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Ví dụ 2-1.2. Số gần đúng a = 3.7284 với a∆ = 0.0047 có 3 chữ số đáng tin là 3, 7 và 2, còn các

chữ số 8 và 4 là đáng ngờ.

1.3. Cách viết số gần đúng Có hai cách viết số gần đúng.

Cách 1: Viết kèm theo sai số aa ∆±

Cách này thường dùng để viết các kết quả đo đạc, thực nghiệm, trong đó là sai số của thiết

bị đo. a∆

Ví dụ 1-1.3. 150 cm ± 0.1 cm; 65 kg ± 0.1 kg

Cách 2: Viết theo quy ước: mọi chữ số có nghĩa đều đáng tin, có nghĩa là sai số tuyệt đối a∆

không lớn hơn một nửa đơn vị ở hàng cuối cùng.

Ví dụ 2-1.3. Theo cách này ta viết a = 23.54 nếu 21 10 0.0052a

−∆ ≤ × = .

1.4. Sai số làm tròn Khi thực hiện các tính toán nếu số có quá nhiều chữ số trong biểu diễn thập phân, chẳng hạn

=3.14151926535, thì để cho thuận tiện người ta thu gọn số này bằng cách bỏ bớt một số chữ số cuối để được một số

aa

'a ngắn gọn hơn và gần đúng nhất với . Việc làm này được gọi là quy tròn hoặc làm tròn số. Số

a

' |a a a ' |θ = − được gọi là sai số làm tròn.

Dưới đây là quy tắc làm tròn số nhằm bảo đảm cho sai số làm tròn không vượt quá nửa đơn vị của chữ số cuối cùng được giữ lại:

• Nếu bỏ đi nhiều chữ số khác 0 và 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.

• Nếu chỉ bỏ đi một chữ số 5 thì chữ số được giữ lại cuối cùng nếu là chữ số lẻ thì tăng thêm 1, còn nếu là chẵn thì giữ nguyên.

Ví dụ 1-1.4. Đối với số =3.14151926535 ta làm tròn thành 3.141519, 3.14152, 3.1415, 3.142, 3.14 nếu cần giữ lại 6, 5, 4, 3 hoặc 2 chữ số sau dấu chấm thập phân. Sai số làm tròn tương ứng

không vượt quá

a

12×10-6, 1

2×10-5, 1

2×10-4, 1

2×10-3 và 1

2×10-2.

Ví dụ 2-1.4. Số 12.25 ta làm tròn thành 12.2 với sai số là 0.05 = 12×10-1.

Bây giờ giả sử a là xấp xỉ của A với sai số tuyệt đối là a∆ . Giả sử ta làm tròn a thành a' với

sai số làm tròn là 'aθ , tức là | a' - a| ≤ 'aθ . Kho đó sai số tuyệt đối của số a’ là

=| A-a’| = | A-a +a-a’| ≤ | A -a| + | a - a’| ≤ 'a∆ a∆ + 'aθ

10

Page 11: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Như vậy việc quy tròn thường làm tăng sai số tuyệt đối. Điều này dẫn đến kết cục là sau khi làm tròn một số chữ số đáng tin trở nên đáng ngờ.

Ví dụ 3-1.4. Cho a = 0.35 với =0.003. Do đó các chữ số 3 và 5 là đáng tin. Sau khi làm tròn

thành a’ = 0.4 ta có =

a∆

'a∆ ∆ a + 'aθ = 0.003 + 0.05 = 0.053 > 12×10-1. Vì thế chữ số 4 trong a’ là

đáng ngờ. Trong trường hợp này không nên quy tròn số a .

2. Sự lan truyền sai số

2.1. Mở đầu Trên đây ta đã định nghĩa các loại sai số của một số gần đúng. Trong thực tế tính toán các đại lượng gần đúng thường xuất hiện trong một biểu thức phức tạp. Thí dụ thể tích của hình cầu được tính bằng V = (1/6)πd3, trong đó ta chỉ biết xấp xỉ của số π và đường kính d. Vấn đề đặt ra là biết sai số của π và d, liệu ta có thể tính được sai số của V không. Một cách tổng quát, vấn đề đặt ra là sai số của các dữ liệu đầu vào lan truyền và dẫn đến sai số của kết quả tính toán như thế nào?

Để giải quyết vấn đề này 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). Biết sai số về x và y, hãy tính sai số của u.

Ký hiệu ∆x = x - X là số gia của x, còn dx là vi phân của biến 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 = xu∂∂ dx +

yu∂∂ dy

Từ đây ta có

∆u ≈ xu∂∂

∆x + yu∂∂

∆y

Suy ra

yxu yu

xu

∆∂∂

+∆∂∂

=∆ |||| (1-2.1)

Chú ý: Công thức (1-2.1) là công thức quan trọng để tính sai số của hàm hai biến u = f(x,y) bất kỳ dựa vào đạo hàm riêng của từng biến. Công thức (1-2.1) được sử dụng trong việc chứng minh các công thức tính sai số của tổng, hiệu, tích thương biểu diễn hàm hai biến.

2.2. Sai số của tổng Cho u = x y.±

11

Page 12: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Ta có

xu∂∂ = 1, 1u

y∂

= ±∂

.

Do đó, từ (1.6) suy ra

(1-2.2) yxu ∆+∆=∆

Như vậy, sai số tuyệt đối của một tổng đại số bằng tổng các sai số tuyệt đối của các số hạng.

Ví dụ 1-2.2. Giả sử x = 3.6 và y = 6.4 là hai số đã được làm tròn. Tính tổng của chúng và xác định sai số của tổng thu được.

Giải. Vì x và y đã được làm tròn đến một chữ số sau dấu chấm thập phân nên sai số tuyệt đối của chúng là ∆ x = ∆ y = 0.05. Do đó u = x + y =3.6 + 6.4 =10.0 với sai số tuyệt đối là ∆ u = ∆ x + ∆ y = 0.05 + 0.05 = 0.1, tức là u = 10 ± 0.1.

Chú ý: Xét trường hợp u = x - y và x, y cùng dấu. Lúc đó ta có

yxyx

uu

u −∆+∆

=∆

=)(δ

Ta thấy rằng nếu | x -y | rất bé thì sai số tương đối rất lớn.

Ví dụ 2-2.2. Giả sử x = 15.29 và y = 15.14 là hai số đã được làm tròn. Xác định sai số tương đối của x, y và của hiệu hai số trên.

Giải. Ta có hiệu u = x - y = 15.29 -15.14 = 0.15. Do x và y đã được làm tròn đến 2 chữ số sau dấu chấm thập phân nên sai số tuyệt đối của chúng là ∆ x = ∆ y = 0.005. Vì thế sai số tuyệt đối của hiệu là ∆ u = ∆ x + ∆ y = 0.01. Do đó sai số tương đối của hiệu là δu =∆ u/ |u| = 0.01/ 0.15 =

0.066 trong khi sai số tương đối của x và y tương ứng là 000327.029.15

005.0==

∆=

xx

xδ ,

000330.014.15

005.0==

∆=

yy

yδ . Rõ ràng là sai số tương đối của hiệu lớn gấp 200 lần sai số tương

đối của từng số x và y.

Trong tính toán người ta cố gắng tránh việc trừ hai số gần nhau bằng cách biến đổi biểu thức của hiệu (trong những trường hợp có thể được).

Thí dụ: Để tính hiệu u = 200210 − ta có thể biến đổi

)200201(1

)200201()200201)(200201(

+=

+

+−=u

2.3. Sai số của tích Giả sử u = xy. Ta có

xyu=

∂∂ .

12

Page 13: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Từ (1-1.2) suy ra

yxu xy ∆+∆=∆

Do đó

yxu

u yy

xx

uδδδ +=

∆+

∆=

∆=

Vậy

yxu δδδ += (1-2.3)

Ta có quy tắc sau:

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 thừa số của tích.

Ví dụ 1-2.3. Giả sử X và Y là hai cạnh của một hình chữ nhật mà độ dài của chúng (tính bằng cm) được làm tròn đến một chữ số sau dấu chấm thập phân là 15.6 và 8.2. Hỏi giá trị thực sự của diện tích của hình chữ nhật nằm trong khoảng nào?

Giải: Ký hiệu x = 15.6, y = 8.2. Như vậy x là giá trị gần đúng của X và y là giá trị gần đúng của Y với sai số tuyệt đối là 0.05. Do đó sai số tương đối của chúng là

0061.02.805.0,0032.0

6.1505.0

==== yx δδ . Theo (3-1.2) sai số tương đối của tích là

0093.00061.00032.0 =+=uδ . Vì u = x * y =15.6 * 8.2 =127.92 nên sai số tuyệt đối của u là

19.10093.0*92.127|| ===∆ uu u δ . Do đó, 19.192.127* ±=YX , tức là giá trị thực sự của

diện tích của hình chữ nhật nằm trong khoảng từ 126.73 đến 129.11.

2.4. Sai số của thương Cho . Ta có: yxu /=

xu∂∂ =

y1 ,

yu∂∂ = 2y

x−

Từ (1.6) suy ra

yxu yx

y∆+∆=∆ 2

1

Do đó yxyxuu

yxxy

yx

yxy

u∆+∆=⎟⎟

⎞⎜⎜⎝

⎛∆+∆=∆=

∆ 111|| 2 .

Suy ra:

yxyx δδδ +=/ (1-2.4)

Ta có quy tắc sau:

Sai số tương đối của một thương bằng tổng các sai số tương đối của số chia và số bị chia.

13

Page 14: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

2.5. Sai số của hàm bất kỳ Cho hàm . Theo công thức vi phân của hàm nhiều biến ta có: ),...,,( 21 nxxxfu =

du = 1x

u∂∂ dx1 +

2xu

∂∂ dx2 + ... +

nxu

∂∂ dxn

Từ đây ta có

∆u ≈ 1x

u∂∂

∆x1 + 2x

u∂∂

∆x2 + ... + nx

u∂∂

∆xn

Suy ra

nxn

xxu xu

xu

xu

∆∂∂

++∆∂∂

+∆∂∂

=∆ ...21

21

(1-2.5)

Ví dụ 1-2.5. Tính sai số tuyệt đối và sai số tương đối của thể tích hình cầu:

V = (1/6)πd3

nếu cho đườ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-2.4) và (1-2.5) 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

Giá trị gần đúng của thể tích là V = (1/6)πd3 = 26.5 cm3 . Do đó, ta tính được sai số tương đối của nó là ∆ V = |V|*δV = 26.5*0.04 = 1.06 ≈ 1.1 cm3. Vì thế

V = 26.5 ± 1.1 cm3.

3. Các loại sai số

3.1. Các loại sai số mắc phải khi giải một bài toán thực tế Như đã biết, để nghiên cứu một đối tượng thực tế, chẳng hạn một đối tượng vật lý như dòng chảy trong sông, hiện tượng dẫn nhiệt trong một thanh vật chất, hay một đối tượng kinh tế-xã hội,... người ta thường xây dựng mô hình toán học của đối tượng và nghiên cứu đối tượng thông qua mô hình. Do tính chất phức tạp của đối tượng nên người ta không thể đưa hết tất cả các yếu tố liên quan vào mô hình, mà buộc phải loại bỏ những yếu tố không quan trọng và ảnh hưởng ít đến đối tượng. Kết quả là người ta chỉ nhận được mô hình toán học phản ánh gần đúng đối tượng cần nghiên cứu. Sai số mắc phải trong quá trình này gọi là sai số mô hình.

Khi đã có mô hình toán học, thường là các phương trình vi phân, tích phân hoặc phương trình đại số,... người ta phải giải nó. Nói chung người ta không nhận được lời giải đúng của một bài toán mà chỉ có thể nhận được lời giải gần đúng bằng một phương pháp nào đấy, thí dụ phương pháp lặp giải phương trình phi tuyến, phương pháp hình thang tính tích phân,... . Sai số mắc phải khi

14

Page 15: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

phải giải một bài toán bằng phương pháp gần đúng được gọi là sai số phương pháp. Đây là loại sai số mà chúng ta cần quan tâm khi nghiên cứu các phương pháp gần đúng (giải tích hoặc số trị) vì sai số này phản ánh chất lượng của phương pháp và thông qua nó có thể đánh giá được khối lượng tính toán cần thiết để có được lời giải với một độ chính xác cho trước.

Sau khi đã có phương pháp hoặc thuật toán giải một bài toán cần phải thực hiện nó trên máy tính để có được lời giải số. Trong quá trình tính toán bằng số này không thể tránh khỏi việc làm tròn số. Sai số xảy ra trong công đoạn này được gọi là sai số tính toán.

Một loại sai số nữa có thể mắc phải khi giải một bài toán thực tế là sai số dữ liệu khi các dữ liệu đầu vào của bài toán nhận được bằng các phép đo đạc hoặc quan sát thực nghiệm hoặc là lời giải gần đúng của một bài toán khác.

3.2. Các loại đánh giá sai số phương pháp Sai số của một phương pháp số có thể được đánh giá tiên nghiệm hoặc hậu nghiệm.

Đánh giá sai số tiên nghiệm là đánh giá sai số nhận được trước khi thực hiện tính toán. Thí dụ, để giải một phương trình phi tuyến bằng một phương pháp lặp đơn (xem Chương 3) ta có thể đánh giá được sai số của nghiệm gần đúng nhận được sau n lần lặp theo công thức

01*

1xx

qqxx

n

n −−

≤− ,

trong đó 0< q< 1, x* là nghiệm đúng, x0 là xấp xỉ ban đầu.

Đánh giá sai số hậu nghiệm là đánh giá sai số nhận được sau khi tính toán được nghiệm. Thí dụ, sau khi tính được xn theo phương pháp lặp đơn (xem Chương 3) ta có đánh giá hậu nghiệm

1*

1 −−−

≤− nnn xxq

qxx

BÀI TẬP 1. Khi xác định hằng số khí của không khí, nhận được R =29.25. Hãy xác định các giới hạn của R biết sai số tương đối giới hạn của R là 1%.

2. Đo trọng lượng của 1 dm3 nước ở 00 C nhận được: p = 999.847g ± 0.001g

Hãy xác định sai số tương đối của phép đo trên.

3. Cho số e = 2.718281828459045... Hãy quy tròn số e đến chữ số có nghĩa thứ 13, 12 và 11 và xác định sai số quy tròn tuyệt đối.

4. Lấy a=2.718 thay cho số e. Hãy xác định sai số tương đối.

5. Hãy quy tròn các số dưới đây (xem là đúng) với ba 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) 2.1514 b) 0.16152

c) 0.01204 d) - 0.00152281

15

Page 16: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Chương 2. TÍNH GIÁ TRỊ VÀ XẤP XỈ HÀM SỐ

1. Tính giá trị hàm số

1.1. Thuật toán Hoocner tính giá trị đa thức a) Giới thiệu thuật toán

Cho đa thức p(x) bậc n có dạng tổng quát:

p(x) = a0xn + a1xn-1 + a2xn-2 + … + an-1x + an (a0 ≠ 0)

Để tính giá trị p(x0) cần 2n-1 phép nhân và n phép cộng. Hơn nữa các số hạng của đa thức thường lớn nên bất lợi trong tính toán.

Nếu ta phân tích đa thức thành

p(x) = (b0xn-1 + b1xn-2 + … + bn-2x + bn-1) ( x - x0) + bn (1-1.1)

Ta có ngay p(x0) = bn.

Khai triển (1-1.1) ta được:

p(x) = b0xn – b0xn-1x0 + b1xn-1 – b1xn-2x0 + b2xn-2 - b2xn-3x0… - bn-3x2x0 + bn-2x2 – bn-2 x1x0 + bn-1x1 – bn-1 x0 + bn

= b0xn + (b1xn-1 – b0xn-1x0) + (b2xn-2 – b1xn-2x0) + …+ (bn-2x2 – bn-3x2x0) + (bn-1x1 - bn-2 x1x0 ) + (bn – bn-1x0)

= b0xn + (b1 – b0x0) xn-1

+ (b2 – b1x0) xn-2 + … + (bn-2 – bn-3x0)x2

+ (bn-1 - bn-2 x0 )x + (bn – bn-1x0)x0

= knkk

n

k

n xxbbxb −−

=

−+∑ )( 011

0

Vậy ta có đồng nhất thức :

∑=

−−− −+=+++

n

k

knkk

nnn

n xxbbxbaxaxa1

01010 )(...

Hay :

∑∑=

−−

=

− −+=+n

k

knkk

nn

k

knk

n xxbbxbxaxa1

0101

0 )(

Đồng nhất hai vế ta có

b0 = a0, bk - bk-1x0 = ak, ∀ k = n,1 hay

bk = ak + bk-1x0, hay bk = ak + ck với ck = bk-1x0

Thuật toán Hoocner tính giá trị các hệ số của đa thức trong (1-2.1) như sau :

⎪⎩

⎪⎨

⎧=∀

+===

− nkcab

xbcab

kkk

kk ,101

00

(2-1.1)

16

Page 17: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Hệ (2-1.1) cho thấy chỉ cần tính n phép nhân và n phép cộng và các số hạng tham gia tính toán bé hơn phương pháp tính trực tiếp.

b) Sơ đồ tính bằng tay

Để tính bằng tay, ta biểu diễn (2-1.1) dưới bảng sau

a0 a1 … an x0

c1 … cn

b0 b1 … bn p(x0)=bn

Ví dụ 1-1.1

Tính f(x) = 2x5 - 3x4 + x3 - 4x2 + 7x + 8 tại x = 2 như sau

2 -3 1 -4 7 8 2

4 2 6 4 22

2 1 3 2 11 30 p(2)=30

Chú ý: Khi phương trình p(x) = 0 có nghiệm x = x0 thì lược đồ Hoocner cho phép tìm ước của p(x) dưới dạng q(x) = b0xn-1 + b1xn-2 + … + bn-2x + bn-1

1.2. Tính hàm nhờ chuỗi lũy thừa Nếu hàm số y = f(x) dễ tính đạo hàm mọi cấp tại x = x0 và biểu diễn hàm dưới dạng chuỗi Taylor dưới đây hội tụ :

∑∞

=

−=0

00

)(

)(!

)()(k

kk

xxk

xfxf (1-1.2)

thì ta có thể tính gấn đúng

∑=

−≈n

k

kk

xxk

xfxf0

00

)(

)(!

)()( (2-1.2)

và ước lượng sai số là :

10

)1(

)!1()()( +

+

−+

= nn

n xxn

cfxR hoặc trực tiếp ước lượng từ phần dư của chuỗi.

trong đó c là điểm nào đó giữa x và x0

Ví dụ 1-1.2. Tính sin 360

Đặt x = 360 = π/ 6 + π/30. Đặt x0 = π/6, suy ra x – x0 = π/30

Áp dụng công thức 2-1.2 với n = 1 và x0 = π/6 ta có:

17

Page 18: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

và )()()()(!1

)()(!0

)()( 0'

001

00

)1(0

00

)0(

xfxxxfxxxfxxxfxf −+=−+−=

Thay vào ta có sin 360 = sin (π/ 6 + π/30) = sin (π/6) + (π/30) cos (π/6) + R1

= 123.

3021 R++

π trong đó 22

1 10302

sin −≤⎟⎠⎞

⎜⎝⎛=πcR

2. Bài toán nội suy hàm số Một trong các bài toán cơ bản của giải tích số là nội suy hàm số. Bài toán này thường gặp trong các trường hợp sau :

i) Cần phục hồi hàm số đối với mọi điểm x thuộc khoảng [a, b] nếu chỉ biết giá trị của nó

tại một số điểm . Những giá trị này thường là các giá trị quan sát, hoặc đo đạc

được.

)(xf],[,...,, 10 baxxx n ∈

ii) Khi hàm cho bởi công thức quá phức tạp chẳng hạn )(xf

∫ ++

=2

)cos(

23

)sin()()(

x

xt dt

xtetxxf

và cần tính )(xf ],[ bax∈∀ . Khi đó người ta tính gần đúng tại một số điểm rồi xây dựng một hàm gần đúng với f(x) để tính các giá trị khác.

)(xf

iii) Ngoài ra, nội suy hàm số còn được sử dụng để xây dựng các công thức tính đạo hàm, tính tích phân số hoặc tìm gần đúng nghiệm của phương trình.

Bài toán nội suy hàm một biến số được phát biểu như sau: Trên đoạn [a, b] cho tập các điểm nút a < x 1 <...<x nox≤ ≤ b và tại các điểm này cho các giá trị ),0(),( nixfy ii == của hàm

. Cần xây dựng hàm dễ tính toán và trùng với hàm tại các điểm nút trên tức là )(xf )(xg )(xf

),0(,)( niyxg ii == . Hàm g(x) được gọi là hàm nội suy. Các điểm nút xi ( ni ,0= ) gọi là các

mốc nội suy.

Một số dạng hàm thường được dùng để nội suy hàm số là: )(xg

- Đa thức đại số

- Hàm hữu tỉ, tức là phân thức đại số

- Đa thức lượng giác

- Hàm ghép trơn (spline), tức là hàm đa thức từng mẩu.

Trong chương này chúng ta chỉ tập trung vào nội suy bởi đa thức đại số - một công cụ nội suy kinh điển và một phần về nội suy bởi hàm ghép trơn - công cụ nội suy hiện đại. Các dạng nội suy khác sẽ chỉ được giới thiệu qua. Nếu không nói rõ hơn ta sẽ ngầm định hiểu đa thức là đa thức đại số.

18

Page 19: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

2.1. Đa thức nội suy Lagrange trên mốc không đều 2.1.1. Thiết lập đa thức nội suy Lagrange

Đa thức nội suy Lagrange của hàm y = f(x) tại các điểm mốc xi ∈ [a, b] ( ),0 ni = cho bởi công thức sau:

∑=

=n

iiin xlxfxL

1)()()(

(1-2.1)

Trong đó đa thức li(x) cho bởi công thức

∏=≠+−

+−

−=

−−−−−−−−

=n

jij ji

j

niiiiii

niii xx

xxxxxxxxxx

xxxxxxxxxl

0110

110

))...()()...(())...()()...((

)( (2-2.1)

(Tử số khuyết nhân tử (x - xi), mẫu số khuyết nhân tử (xi - xi))

Ta thấy Ln(x) thỏa mãn điều kiện nội suy

),0(),()( nixfxL iin == (3-2.1)

Thật vậy, dễ thấy rằng

⎩⎨⎧

≠=

==jiji

xl ijji ,0,1

)( δ (4-2.1)

Vì khi i = j, thay x ở tử số bởi xi thì tử số giống mẫu số. Khi i ≠ j thì trên tử số có số hạng dạng (xj - xj) = 0 (lưu ý rằng tử số chỉ khuyết số hạng xj-xi). Thay (4-2.1) vào (1-2.1) ta thu được (4-2.1)

Xét hai trường hợp đơn giản của đa thức nội suy Lagrange.

a) Nội suy Lagrange bậc nhất Nội suy bậc nhất còn gọi là nội suy tuyến tính.

Khi n = 1, ta có hai mút nội suy x 0 và x 1 , và

01

01

10

101 )()()(

xxxxxf

xxxxxfxL

−−

+−−

= (5-2.1)

b) Nội suy Lagrange bậc hai Khi n = 2 ta có ba nút nội suy và 2x vµ 10 , xx

))(())(()(

))(())(()(

))(())(()()(

1202

102

2101

201

2010

2102 xxxx

xxxxxfxxxx

xxxxxfxxxx

xxxxxfxL−−−−

+−−−−

+−−−−

= (6-2.1)

trong đó i =0, 1, 2. ),( ii xfy =

Ví dụ 1-2.1. Xây dựng đa thức nội suy cho hàm xy πsin= tại các nút

61,0 10 == xx và .

21x 2 =

19

Page 20: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Giải. Ta có bảng giá trị của hàm

x 0 1/6 1/2

y 0 1/2 1

Áp dụng công thức (6-2.1) ta được

.327

)61

21)(0

21(

)61)(0(

.1)

21

61)(0

61(

)21)(0(

.21

)210)(

610(

)21)(

61(

.0)( 22 xx

xxxxxxxL −=

−−

−−+

−−

−−+

−−

−−=

Ví dụ 2-2.1. Tìm đa thức nội suy hàm trên đoạn [-1, 1] dựa vào giá trị của hàm tại các

điểm Sử dụng đa thức này tính gần đúng

xy 3=

.1,1 10 ==−= 2x 0,xx 3 .

Giải. Ta có bảng các giá trị của hàm tại các điểm đã cho: xy 3=

x -1 0 1

y 1/3 1 3

Theo công thức (6-2.1) ta có đa thức nội suy

)342(31

2)1(3)1)(1(

6)1(

)01)(11()0)(1(.3

)1.(1)1)(1(.1

)11.(1)1(.

31)(

2

2

++=+

+−+−−

=

−+−+

+−

−++

−−−−

=

xxxxxxxx

xxxxxxxL

Để tính 2/133 = ta xấp xỉ 21

36

11)21(2 =≈ L .

c) Đánh giá sai số Vấn đề quan trọng đặt ra khi xấp xỉ hàm tại điểm x bất kì bởi đa thức nội suy là phải đánh

giá được sai số, tức độ lệch - . Định lí sau đây cho ta đánh giá đó.

)(xf

)(xf )(xLn

Định lý 4.2.1 Giả sử hàm số , tức là có đạo hàm liên tục đến cấp n+1 trên [a,

b] chứa tất cả các nút nội suy

)(xf ],[)1( baC n+∈

ix ),0( ni = . Khi đó sai số nội suy )()()( xLxfxR nn −= có dạng

),()!1(

)()( 1

)1(

xn

fxR n

n

n +

+

+= ωξ (7-2.1)

trong đó ξ là một diểm phụ thuộc x và thuộc [a , b] và ∏=

+ −=n

iin xxx

01 )()(ω

Hệ quả. Đối với sai số của đa thức nội suy Lagrange cho hàm f(x) tại các mút

có đánh giá nxxx ,,, 0 K

],[ ba∈

,)()!1(

)()( 11 x

nM

xLxf nn

n ++

+≤− ω (8-2.1)

20

Page 21: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

trong đó bxa

nn xfM

≤≤

++ = ).(max )1(

1 và ∏=

+ −=n

iin xxx

01 )()(ω

Ví dụ 3-2.1. Cho giá trị của hàm y = sin x tại 3 điểm bởi bảng sau:

x 0 4

π 2π

y 0 0,707 1

Tính gần đúng sin 3π nhờ đa thức nội suy và đánh giá sai số.

Giải. Đa thức nội suy hàm y=sin x xây dựng theo các điểm đã cho là

.)

42(

2

)4

(.1

)24

(4

)2

(.707,0)(2 πππ

π

πππ

π

−+

−=

xxxxxL

Ta có .851,0)3

(3

sin 2 ≈≈ππ L

Theo công thức (8-2.1)

.)3

(!3

)3

(3

sin 33

2πωππ M

L ≤−

Dễ tính được

,1cosmax)('''max2

02

03 ===

≤≤≤≤

xxyMxx ππ

.21623

.433

)3

(3

3πππππππω =−−=

Do đó 024,02166

1)3

(3

sin3

2 =×≤−πππ L

Như vậy, sin 3π =0,851 0,024 ±

Chú ý. Công thức đánh giá sai số (4.8) được thiết lập với giả thiết Nếu điều kiện trên không thoả mãn, tức là khi hàm không có đủ độ trơn cần thiết thì ta không thể nói gì về sai số nội suy cả. Trong trường hợp này cần phải xem xét bài toán cụ thể.

].,[)( )1( baCxf n+∈

)(xf

Ví dụ 4-2.1. Cho hàm bởi công thức =)(xf )(xf x .

Khi đó đa thức nội suy hàm tại các điểm )(xf 1,1 10 ==−= 2x 0,xx là đa thức

22 )( xxL = .

Để đánh giá sai số )()( 2 xLxf − ta không thể áp dụng công thức (8-2.1) vì hàm không có

đạo hàm tại x = 0. Nhưng ta có thể đánh giá được sai số nội suy trên đoạn [-1, 1] như sau

)(xf

21

Page 22: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

41maxmax)()(max 2

1

2

121=−=−=−

≤≤≤xxxxxLxf

xxx

2.1.2. Thuật toán nội suy Lagrange

Bài toán: Cho bảng các giá trị ( , ), ii yx ),0( ni = . Tính giá trị của đa thức nội suy

Lagrange tại điểm x cho trước theo công thức )(xLn

∑ ∏=

=≠ −

−==

n

i

n

jij ji

jin xx

xxyxLy

00

)(

input: x, xi, yi ),0( ni =

output: y là giá trị của hàm tại x

Algorithm:

1. Khởi tạo y = 0

2. for i = 0 n

2.1. P = 1; /* P chính là đa thức li */

2.2. for j = 0 n

if (j ≠ i) then P = P * (x - xj) / (xi - xj)

2.3. y = y + yi*P

3. return y

2.2. Đa thức nội suy Lagrange với mốc cách đều

Giả sử hàm f(x) nhận các giá trị yi tại các điểm tương ứng xi ( noi ,= ) cách đều một khoảng h.

Đặt h

xxt 0−= , khi đó :

)(...

))1(())1((

...)1(

.

1

1

1

0

nthxx

ithxxithxx

thxxthxx

n

i

i

−=−

+−=−−−=−

−=−=−

+

)(...

...)1(

.

1

1

1

0

inhxx

hxxhxx

ihxxihxx

ni

ii

ii

i

i

−−=−

−=−=−

−=−=−

+

Do đó đa thức trong công thức (2-2.1) có dạng )(xli

).(....2.1.)1.(1)...1()))...(1())(1()...(1()( 0 inii

ntitittthtxl ini −−−−+−−−−

=+ − (1-2.2)

hay

22

Page 23: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

10 )1()!(!)())...(1()( −−−−

−−=+ ni iniit

nttthtxl (2-2.2)

Vậy công thức nội suy Lagrange (1-2.1) trong trường hợp mốc cách đều một khoảng h có dạng :

∑=

−−−

−−=+n

i

in

n iniitxfnttthtxL

0

1

0 )!(!)()()1())...(1()( (3-2.2)

hay

∑=

−−−−

=+n

i

ini

n

n itCxf

nnttthtxL

0

1

0 )()()1(

!))...(1()( (4-2.2)

Ví dụ 1-2.2. Tìm hàm nội suy cho hàm f(x) thỏa mãn :

xi 0 2 4

f(xi) 5 -2 1

Giải: Áp dụng công thức (4-2.2.2) ta có

5125)102410(21

21

145

2)2)(1(

2.1

12

05

!2)2)(1()2(

22

22

12

02

2

+−=+−=

⎟⎠⎞

⎜⎝⎛

−+

−+

−−=

⎟⎟⎠

⎞⎜⎜⎝

⎛−

+−

−−

−−−

=

tttt

tttttt

tC

tC

tCttttL

2.3. Đa thức nội suy Newton trên mốc không cách đều Đa thức nội suy Lagrange (1-2.1), như ta đã thấy rất đơn giản và dễ tính nếu các nút nội suy đã được cố định. Nhưng nếu như ta bổ sung thêm nút nội suy thì quá trình tính lại phải thực hiện lại từ đầu. Đây là nhược điểm rất lớn của đa thức nội suy Lagrange. Để khắc phục nhược điểm này người ta tính đa thức nội suy theo một cách khác hiệu quả hơn. Đó là công thức nội suy Newton. Để xây dựng công thức này, ta cần đến khái niệm tỷ sai phân đối với các mốc không đều và khái niệm sai phân đối với mốc cách đều.

2.3.1. Khái niệm tỷ sai phân

Giả sử là một hàm số xác định và liên tục trong đoạn )(xf [ ]ba, . Tiếp theo giả sử

a= =b là tập các điểm nút, tại đó cho trước giá trị của hàm. nxxx <<< ...10

Ta định nghĩa:

- Tỷ sai phân bậc 0 của hàm tại là . )(xf ix )( ixf

- Tỷ sai phân bậc 1 của hàm tại và là )(xf ix jxji

jiji xx

xfxfxxf

−=

)()(),(

- Tỷ sai phân bậc 2 của hàm tại , , là )(xf ix jx kx

23

Page 24: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

ki

kjjikji xx

xxfxxfxxxf

−=

),(),(),,(

- Một cách tổng quát, tỷ sai phân bậc k của f tại là kxxx ,...,, 10

k

kkk xx

xxxfxxxfxxxf−−

= −

0

2111010

),...,,(),...,,(),...,,(

Dễ thấy rằng tỷ sai phân có các tính chất sau:

i) Thứ tự các nút trong tỷ sai phân có thể đảo ngược, chẳng hạn

),( ji xxf = ),( ij xxf ,

),,( kji xxxf = ),,( ijk xxxf , ...,

).,...,,(),...,,( 0110 xxxfxxxf kkk −=

ii) Nếu là đa thức bậc n thì tỷ sai phân bậc nhất là một đa thức bậc n-1, tỷ sai phân bậc

hai là một đa thức bậc n-2, ..., tỷ sai phân bậc n của P

)(xPn ),( 0xxPn

),,( 10 xxxPn n(x) là đa thức bậc 0, và tỷ sai phân

bậc n + 1 của Pn(x) là đa thức = 0. Kết luận này dễ chứng minh dựa vào định lý

Bezout.

),...,,,( 10 nn xxxxP

2.3.2. Đa thức nội suy Newton trên mốc không cách đều Từ định nghĩa các tỷ sai phân suy ra

),,().()()( 000 xxPxxxPxP nnn −+= vì 0

00

)()(),(xx

xPxPxxP nnn −

−=

),,().(),(),( 101100 xxxPxxxxPxxP nnn −+= vì 1

10010

),(),(),,(xx

xxPxxPxxxP nnn −

−=

),,,().(),,(),,( 210221010 xxxxPxxxxxPxxxP nnn −−=

. . . . . . . . . .

),...,,().(),...,(),...,,( 10111,010 −−−− −−= nnnnnn xxxPxxxxxPxxxP

),...,,().(),...,,(),...,,( 01010 nnnnnnn xxxPxxxxxPxxxP −+=−

),...,(0).(),...,( 1,011,0 nnnnn xxxPxxxxxP =−−= −

Từ các hệ thức trên và để ý rằng = 0 ta được ),...,,( 0 nn xxxP

),...,,())...()(()...,,())((),()()()(

10110

210101000

nnn

nnnn

xxxPxxxxxxxxxPxxxxxxPxxxPxP

−−−−+−−+−+=

(1-2.3)

Bây giờ, nếu là đa thức nội suy của hàm tại các nút tức là

)(xPn )(xf nxxx ,...,, 10

),()( iin xfxP = ),0( ni = thì công thức (4.3.1) có thể viết thành

24

Page 25: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

),...,,())...()(()...,,())((),()()()(

10110

210101000

nn

n

xxxfxxxxxxxxxfxxxxxxfxxxfxP

−−−−+−−+−+=

(2-2.3)

hay

∑=

−−−−+=n

iiin xxxfxxxxxxxfxP

1101100 ),...,,())...()(()()(

(3-2.3)

Đa thức dạng (2-2.3) hay (3-2.3) được gọi là đa thức nội suy Newton (tiến) xuất phát từ

nút . Nó trùng với đa thức nội suy Lagrange (vì đa thức nội suy là duy nhất) nhưng được viết

trong dạng khác.

)(xPn

0x

Nhận xét 1. Việc tính toán đa thức nội suy theo các công thức trên khắc phục được nhược điểm của cách tính theo công thức Lagrange (1-2.1) vì khi bổ sung các nút nội suy mới chỉ cần tính thêm một số số hạng mới cộng vào tổng cũ.

Nhận xét 2. Sau khi đã tính được các tỷ sai phân, để tính đa thức nội suy Newton một cách hữu hiệu người ta thường dùng lược đồ Horner.

[ ][ ][ ]...),...,()(),,()(),()()()( 30221011000 +−+−+−+= xxfxxxxxfxxxxfxxxfxP

2.3.3. Đánh giá sai số của nội suy Newton mốc không đều

Từ định nghĩa của các tỷ sai phân viết cho hàm , tương tự như trong tiểu mục trước, có thể thu được

)(xf

),...,,,())...((),...,,())...(()...,,())((),()()()(

1001010

210101000

nnnn xxxxfxxxxxxxfxxxxxxxfxxxxxxfxxxfxf

−−+−−+−−+−+=

Để ý đến (2-2.3) ta viết được

),...,,,()()()( 101 nnn xxxxfxxPxf ++= ω .

Từ đây suy ra biểu diễn sai số của đa thức nội suy Newton

),...,,,()()()( 101 nnn xxxxfxxPxf +=− ω , (4-2.3)

trong đó

∏=

+ −=n

iin xxx

01 )()(ω (5-2.3)

2.3.4. Sơ đồ tính tỷ sai phân và đa thức newton mốc không đều

Để tính các tỷ sai phân (t.s.p) trong công thức của đa thức nội suy Newton (4.3.2) người ta lập bảng sau (thí dụ cho n=4)

x f(x) T.s.pbậc 1 T.s.p bậc 2 T.s.p bậc 3 T.s.p bậc 4

x0 f(x0) f(xo,x1) f(x0,x1,x2) f(x0,x1,x2,x3) f(x0,x1,x2,x3,x4)

x1 f(x1) f(x1,x2) f(x1,x2,x3) f(x1,x2,x3,x4)

25

Page 26: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

x2 f(x2) f(x2,x3) f(x2,x3,x4)

x3 f x3) f(x3,x4)

x4 f(x4)

Ví dụ 1-2.3. Cho bảng giá trị của hàm số )(xfy =

x 0 2 3 5 6

y 1 3 2 5 6

1) Xây dựng đa thức nội suy Newton tiến xuất phát từ nút x0 = 0 của hàm số . )(xfy =

2) Sử dụng đa thức nội suy nhận được tính gần đúng )25.1(f

Giải. 1) Lập bảng tỷ sai phân

x f(x) T.s.pbậc 1 T.s.p bậc 2 T.s.p bậc 3 T.s.p bậc 4

x0

0

f(x0)

1

f(xo,x1)

1

f(x0,x1,x2)

-2/3

f(x0,x1,x2,x3)

3/10

f(x0,x1,x2,x3,x4)

-11/120

x1

2

f(x1)

3

f(x1,x2)

-1

f(x1,x2,x3)

5/6

f(x1,x2,x3,x4)

-1/4

x2

3

f(x2)

2

f(x2,x3)

3/2

f(x2,x3,x4)

-1/6

x3

5

f (x3)

5

f(x3,x4)

1

x4

6

f(x4)

6

Hoặc ngắn gọn là:

x f(x) T.s.pbậc 1 T.s.p bậc 2 T.s.p bậc 3 T.s.p bậc 4

0 1 1 -2/3 3/10 -11/120

2 3 -1 5/6 -1/4

3 2 3/2 -1/6

5 5 1

6 6

Theo công thức (3-2.3) ta có

),,,,())()()((),,,())()((

),,())((),()()()(

432103210

3210210

21010

10004

xxxxxfxxxxxxxxxxxxfxxxxxx

xxxfxxxxxxfxxxfxP

−−−−+−−−

+−−+−+=

26

Page 27: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

.160413

120601

6073

12011

)12011()5)(3)(2(

103)3)(2()

32()2(11)(

234

4

++−+−=

−⋅−−−+⋅−−+−⋅−+⋅+=

xxxx

xxxxxxxxxxxP

2) Khi đó .9312.3)25.1()25.1( 4 =≈ Pf

2.3.5. Thuật toán nội suy newton trên mốc không đều

Nhìn vào bảng tỷ sai phân và công thức nội suy Newton (3-2.3) dễ thấy rằng việc tính giá trị của đa thức Newton tại điểm x có thể mô tả bởi đoạn mã sau:

input: x, xi, fi ),0( ni =

output: y là giá trị của hàm f(x) tại một điểm trong khoảng chứa các mốc nội suy

Algorithm

1. Khởi tạo y = f0; tich = 1;

2. for i = 1 n

2.1. for j = 0 n - i

fj = (fj+1 - fj) / (xj+i - xj)

2.2. tich = tich * (x - xi-1);

2.3. y = y + tich * f0;

2. return y;

2.4. Đa thức nội suy Newton trên mốc cách đều Giả sử các nút nội suy cách đều nhau một khoảng là h, tức là ix ihxxi += 0 , ),1( ni = . Trong

trường hợp này việc tính đa thức nội suy trở nên dễ dàng hơn nhờ các sai phân.

2.4.1. Khái niệm sai phân

Giả sử cho các giá trị = của hàm .Ta định nghĩa sai phân cấp một của hàm

nh sau: if )( ixf )(xf )(xf

• Sai phân cấp một tại nút là ix iii fff −=∆ +1 .

• Sai phân trung tâm cấp một . 12/112/1 +++ =−= iiii ffffδ

Sai phân cấp cao hơn được định nghĩa qua sai phân cấp thấp hơn như sau

• , )( 1i

ki

k ff −∆∆=∆

Ví dụ 1-2.4.

iiiiiiiiiii fffffffffff −−=−−−=∆−∆=∆∆=∆ ++++++ 1211212 2)()()( .

Từ các định nghĩa sai phân và tỷ sai phân ta có

27

Page 28: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

hf

xxff

xxff

xxf 0

01

01

10

1010 ),(

∆=

−−

=−−

= .

Một cách tổng quát, dễ chứng minh được

i

i

i hif

xxxf!

),...,,( 010

∆= ),1( ni = . (1-2.4)

2.4.2. Đa thức nội suy Newton trên mốc cách đều

Trong công thức của đa thức nội suy Newton (2-2.3) hoặc (3-2.3) ở mục trước biểu diễn tỷ sai phân qua sai phân theo công thức (1-2.4) và đặt x = x0 + t.h ta thu được

∑=

∆+−−

+=

∆+−−

++∆−

+∆+=+

n

i

i

nn

fi

itttf

fn

ntttfttftfthxP

100

002

000

!)1)...(1(

!)1)...(1(...

!2)1()(

(2-2.4)

Đây chính là công thức của đa thức nội suy Newton trên mốc cách đều (thường được dùng để nội suy hàm số đối với những giá trị của x ở vùng đầu bảng tức là gần x0.)

2.4.3. Đánh giá sai số của nội suy Newton mốc cách đều

Sai số (hay phần dư) của đa thức nội suy này đã chứng minh được có dạng

1)1(

00 ))...(1()!1(

)()()( ++

−−+

=+−+ nn

n hntttn

fthxPthxf ξ (3-2.4)

2.4.4. Sơ đồ tính sai phân với mốc cách đều

Để tính các sai phân tiến làm hệ số trong đa thức Newton ta lập bảng các sai phân (thí dụ cho n = 4)

x f ∆f ∆2f ∆3f ∆4f

x0 f0 ∆f0 ∆2f0 ∆3f0 ∆4f0

x1 f1 ∆f1 ∆2f1 ∆3f1

x2 f2 ∆f2 ∆2f2

x3 f3 ∆f3

x4 f4

Ví dụ 2-2.4.

Cho bảng các giá trị của hàm y=f(x):

x 0 1 2 3

y 1 0 1 10

Xây dựng đa thức nội suy Newton xuất phát từ x0 = 0, rồi dùng đa thức này tính gần đúng f(0,5).

Giải. Lập bảng các sai phân

28

Page 29: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

x f ∆f ∆2f ∆3f

0 1 -1 2 6

1 0 1 8

2 1 9

3 10

Do x0 = 0 và h = 1 nên x = t. Theo công thức (2-2.4) ta có

).2)(1()1(

66

)2)(1(22

)1()1(1)(3

−−+−+−=

⋅−−

+⋅−

+−⋅+=

tttttt

tttttttP

1

Vì thế . 625,0)2/1()2/1( 3 =≈ Pf

2.4.5. Thuật toán nội suy newton trên mốc cách đều

Dưới đây là tính giá trị của hàm cần nội suy tại điểm x thuộc các mốc nội suy. Khác với tính đa thức Newton trên lưới không đều, ở đây ta chỉ cần một mảng fi ),0( ni = . Từ bảng sai phân và công thức nội suy Newton (2-2.4) ta đi đến đoạn mã giả sau

input: x0, x, h, fi ),0( ni =

output: y là giá trị của hàm tại điểm x

Algorithm:

1. Khởi tạo : t = (x - x0)/h;

y = f0; tich = 1;

2. for i =1 n

2.1. for j = 1 n - i

fj = fj+1 - fj

2.2. tich = tich * (t - i + 1)/i;

2.3. y = y + tich * f0;

3. return y;

2.5. Nội suy tổng quát (nội suy Hermit) Mục này giới thiệu sơ lược bài toán nội suy đa thức cho hàm số một cách tổng quát.

Giả sử trên đoạn [a, b] thuộc miền xác định của hàm số ( )f x cho nút phân biệt 1m +

0 1, ,..., mx x x và giả sử tại các nút đó ta biết các giá trị của hàm số và giá trị của đạo hàm của nó

đến một cấp nào đó (cấp cao nhất của đạo hàm tại mỗi nút có thể khác nhau). Chẳng hạn,

• tại 0x biết 0( )0 0( ), '( ),..., ( ),k

0f x f x f x

• tại 1x biết 1( )1 1( ), '( ),..., ( ),k

1f x f x f x

29

Page 30: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

• . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

• tại mx biết ( )( ), '( ),..., ( )mkm m mf x f x f x .

Số được gọi là bội của nút ik ( 0,1,..., ).ix i m=

Giả sử rằng tổng bội của tất cả các nút là 0 1 ... 1.mk k k n+ + + = + Cần xây dựng đa thức

bậc sao cho

( )nH x

n

),0,,0()()( )()(ii

jni

jn kjmixfxH === (1-2.5)

Ta sẽ gọi đa thức là đa thức nội suy trên nút bội (hay đa thức Hermit) của hàm ( )nH x ( )f x .

Một cách hình thức, việc tìm đa thức này chính là xác định 1n + hệ số của biểu diễn

(2-2.5)

0 1, ,..., na a a

nn

n

k

kkn xaxaaxaxH +++== ∑

=

...)(0

10

từ hệ phương trình ẩn số: 1n + 1n +

0 0

1 1

( ) ( )0 0 0 0 0 0

( ) ( )1 1 1 1 1 1

( ) ( ), '( ) '( ), ..., ( ) ( ),

( ) ( ), '( ) '( ), ..., ( ) ( ),. . . . . . . . . . . . . . . . . . . . . . . . . . .

( ) ( ),

k kn n n

k kn n n

n m m n

H x f x H x f x H x f x

H x f x H x f x H x f x

H x f x H

= = =

= = =

= ( ) ( )'( ) '( ), ..., ( ) ( )m mk km m n m mx f x H x f x= =

(3-2.5)

Người ta đã chứng minh được rằng hệ phương trình trên có duy nhất một nghiệm tức là đa thức nội suy Hermit tồn tại và duy nhất. Ngoài ra, sai số của đa thức này cho bởi công thức sau

]),[()...()()()!1(

)()()( 1010

)1(

baxxxxxxn

fxHxf mkm

kkn

n ∈−−−+

=−+

ξξ (6-2.5)

3. Xấp xỉ bình phương cực tiểu

3.1. Phương pháp chung

Giả sử người ta thu thập được số liệu thực nghiệm về sự phụ thuộc của hai đại lượng (vật lý, hoá học, kinh tế,...) x và y trong bảng sau

x x1 x2 ... xn

y y1 y2 ... yn

Bài toán đặt ra là xác định sự phụ thuộc hàm số giữa x và y, tức là tìm hàm y = f(x). Nói chung, người ta không thể tìm được hàm đúng với tất cả các điểm (xi, yi), mà chỉ mong muốn tìm một hàm trơn tru và lệch ít nhất so với số liệu thực nghiệm. Thông thường người ta có thể dự đoán dạng của hàm f(x), chẳng hạn

y = a + bx,

y = a + bx + cx2

y = a + b cos (x) + c sin (x)

30

Page 31: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

y = aebx

y = axb

nhưng chưa biết giá trị cụ thể của các tham số. Để tìm các tham số người ta sử dụng phương pháp dưới đây có tên gọi là phương pháp bình phương cực tiểu.

Giả sử dạng phụ thuộc hàm số giữa x và y là

y = Q(x, a0, a1,..., am), (1-3.1)

trong đó a0, a1,..., am là các tham số cần tìm. Các tham số này được chọn sao cho tổng bình phương các độ lệch của hàm Q tại các điểm xi so với các giá trị thực nghiệm yi là bé nhất. Nói cách các tham số cần được chọn sao cho tổng bình phương các sai số bé nhất, tức là hàm

[2

11010 ),...,,,(),...,,( ∑

=

−=n

iimim yaaaxQaaaS ] 2-3.1)

đạt min. Điều kiện cực trị của hàm S là

miaS

i

,...,0,0 ==∂∂

. (3-3.1)

Các điều kiện trên lập thành hệ phương trình để tìm các tham số a0, a1,..., am.

3.2. Một số dạng hàm cụ thể.

i) Dạng hàm tuyến tính y = a + bx.

Khi đó (2-3.1) có dạng

(1-3.2) (∑=

−−=n

iii bxaybaS

1

2),( )

Các hệ số a và b tìm từ điều kiện

⎪⎪⎩

⎪⎪⎨

=∂∂

=∂∂

0

0

bSaS

(2-3.2)

hay từ hệ phương trình

( )

( )⎪⎪⎩

⎪⎪⎨

=−−−

=−−−

=

=

0)(2

0)1(2

1

1

i

n

iii

n

iii

xbxay

bxay

Rút gọn ta được

31

Page 32: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎪⎪⎩

⎪⎪⎨

=+

=+

∑∑∑

∑∑

===

==

i

n

ii

n

ii

n

ii

n

ii

n

ii

yxbxax

ybxna

11

2

1

11

)()(

)( (3-3.2)

Đây là một hệ hai phương trình với hai ẩn số a và b. Giải hệ này ta nhận được a và b phải tìm.

ii) Dạng hàm bậc hai y = a + bx + cx2. Trong trường hợp này để

(4-3.2) (∑=

−−−=n

iiii cxbxaycbaS

1

22),,( )

bé nhất a, b và c phải thoả mãn hệ phương trình

( )

( )

( )⎪⎪⎪

⎪⎪⎪

=−−−−=∂∂

=−−−−=∂∂

=−−−−=∂∂

=

=

=

0)(2

0)(2

0)1(2

1

22

1

2

1

2

n

iiiii

i

n

iiii

n

iiii

xcxbxaycS

xcxbxaybS

cxbxayaS

Rút gọn ta được

⎪⎪⎪

⎪⎪⎪

=++

=++

=++

∑∑∑∑

∑∑∑∑

∑∑∑

====

====

===

i

n

ii

n

ii

n

ii

n

ii

i

n

ii

n

ii

n

ii

n

ii

n

ii

n

ii

n

ii

yxcxbxax

yxcxbxax

ycxbxna

1

2

1

4

1

3

1

2

11

3

1

2

1

11

2

1

)()()(

)()()(

)()(

(5-3.2)

Đây là một hệ ba phương trình với ba ẩn số a, b và c. Giải hệ này ta nhận được a, b và c phải tìm.

iii) Dạng hàm mũ y = aebx, a>0. Lấy logarit hai vế ta được lny = lna + bx. Đặt Y = lny, A = lna. Khi đó ta có

Y=A+bx.

Như vậy bằng cách lấy logarit hai vế ta đã đưa quan hệ phi tuyến đối với a và b về dạng tuyến tính đối với A và b. Tìm A và b như trong trường hợp hàm tuyến tính ta sẽ tìm được a=eA.

iv) Dạng hàm y = axb. Lấy logarit hai vế ta được lny = lna + blnx. Đặt Y = lny, A = lna, X = lnx. Khi đó ta có

Y=A+bX.

32

Page 33: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Như vậy bằng cách lấy logarit hai vế ta đã đưa quan hệ phi tuyến đối với a và b về dạng tuyến tính đối với A và b. Tìm A và b như trong trường hợp hàm tuyến tính ta sẽ tìm được a = eA.

Ví dụ 1-3.2. Cho biết các cặp giá trị của x và y theo bảng sau

x 0.65 0.75 0.85 0.95 1.15

y 0.96 1.06 1.17 1.29 1.58

Tìm hàm nội suy hàm ẩn trên. Lấy hàm nội suy có dạng y = aebx

Giải. Ta có y = aebx

Lấy logarit cơ số e hai vế : ln y = ln a + bx

Đặt Y = Ln y ; A = ln a ; X = X

Ta đưa về dạng Y = A + BX

Xi = xi 0.65 0.75 0.85 0.95 1.15

Yi =ln yi -0.04 0.06 0.18 0.25 0.46

và n = 5

∑=

5

1iiX ∑

=

5

1

2

iiX ∑

=

5

1iiiYX ∑

=

5

1iiY

4.35 3.93 0.92 0.89

Áp dụng công thức (3-3.2) ta có hệ

⎪⎪⎩

⎪⎪⎨

=+

=+

∑∑∑

∑∑

===

==5

1

5

1

25

1

5

1

5

1

)()(

)(

iii

ii

ii

ii

ii

YXBXAX

YBXnA

⎩⎨⎧

=+=+

92.093.335.489.035.45

BABA

Giải hệ trên ta được A = -0.69, B= 1. Do đó a = eA = 1/2, b = B = 1.

Vậy đa thức nội suy là g(x) = xe21

BÀI TẬP

1. Dùng các giá trị dưới đây của x

x 1 2 4

x 1 1.414 2

tính gần đúng 3 và đánh giá sai số.

33

Page 34: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

2. Hàm f(x) được xấp xỉ bởi đa thức nội suy Lagrange tại ba điểm cách đều nhau trên đoạn cho trước. Hãy tính gần đúng giá trị của hàm tại điểm ξ và đánh giá sai số

a) f(x) = cos(x) trên đoạn [0, π/2], 12/πξ =

b) f(x) = xcos(x) trên đoạn [0, π/2], 6/πξ =

c) f(x) = 2x trên đoạn [-1, 1], ξ = 0.5

d) f(x) = ex trên đoạn [-1, 1], ξ = 0.5 (cho e ≈ 2.7183)

3. Cho 3 x bởi bảng sau

x 8 9 10 11 12

3 x 2 2.0800 2.1544 2.2240 2.2894

Dùng đa thức nội suy Newton trên lưới đều tính 3 5.8 và đánh giá sai số.

4. Dân số của một quốc gia qua điều tra được cho trong bảng sau

Năm 1960 1970 1980 1990 2000

Dân số (triệu người)

45 50.5 54 60.5 64

Hãy ước lượng dân số của quốc gia này năm 1975.

5. Tìm đa thức bậc ba nội suy tốt nhất cho hàm:

(i) trên đoạn [-1, 1]. (ii) xxf 2)( = )sin()( xxf = trên đoạn [0, π /2].

34

Page 35: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

CHƯƠNG 3 GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH PHI TUYẾN

1. Nghiệm và khoảng phân ly nghiệm Cho f(x) là một hàm số xác định và liên tục trong miền D của trục số thực. Xét phương trình:

f(x) = 0 (1-1)

Ta gọi x* ∈ D là nghiệm của phương trình (1-1) nếu f(x*) = 0.

Định nghĩa 1-1 Nếu khoảng (a, b) chỉ chứa một nghiệm x* của phương trình (1-1) thì ta gọi khoảng (a, b) là khoảng phân ly của nghiệm x*.

Định lý 1-1 Về sự tồn tại nghiệm

Giả sử f(x) là hàm số liên tục trên đoạn kín [a, b] và nhận giá trị trái dấu tại các điểm mút a và b, tức là f(a)f(b). Khi đó trong khoảng (a, b) tồn tại ít nhất một điểm x* sao cho f(x*)=0.

Định lý 2-1. Về sự tồn tại duy nhất nghiệm

Nếu hàm f(x) liên tục và đơn điệu (tăng/giảm) trong khoảng [a, b] và f(a).f(b) < 0 thì (a, b) là khoảng phân ly của một nghiệm của phương trình f(x) = 0.

Một phương trình có thể có nhiều nghiệm số (thực). Trước khi đi tìm xấp xỉ các nghiệm này ta cần phải phân ly chúng, nghĩa là tìm các khoảng sao cho mỗi khoảng chỉ chứa một nghiệm. Phân ly nghiệm của phương trình có thể thực hiện bằng hai phương pháp: phương pháp giải tích và phương pháp đồ thị.

Phương pháp giải tích dựa trên việc khảo sát sự biến thiên của hàm số và định lý 2-1.

Ví dụ 1-1. Xét phương trình

026)( 3 =+−= xxxf (1)

Ta có f'(x) = 3x2 - 6, f'(x) = 0 x = 2± . Lập bảng biến thiên của hàm f(x)

x -∞ 2− 2 +∞

f'(x) + 0 - 0 +

f(x)

-∞

M > 0

m < 0

+∞

Ta thấy f(-∞) < 0, 0)2(,0)2( <=>−= fmfM , f(∞) > 0 và f(x) tăng trong các khoảng (-∞,

2− ), ( 2 , +∞) và giảm trong khoảng ( 2− , 2 ), do đó các khoảng trên là khoảng phân ly của 3 nghiệm của phương trình (1). Tiếp theo, ta có thể thu hẹp khoảng phân ly của các nghiệm thành (-3, -2), (0, 1) và (2, 3).

Ví dụ 2-2.1. Xét phương trình

f(x) = 2x - cos x = 0 (2)

35

Page 36: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Ta có f’(x) = 2 + sin x > 0 và f(0) = - 1 < 0 , f(1) = 2 - cos 1 > 0. Do đó (0, 1) là khoảng phân ly của nghiệm duy nhất của phương trình đã cho.

Phương pháp đồ thị tìm khoảng phân ly của các nghiệm của phương trình f(x) = 0 dựa trên việc xác định các khoảng chứa các điểm cắt của đồ thị của hàm số y = f(x) với trục hoành hoặc hoành độ của các điểm cắt nhau của hai đồ thị g(x), h(x) nếu phương trình g(x) = h(x) tương đương với phương trình đã cho.

Ví dụ 3-1. Lại xét phương trình (2). Đặt g(x) = x và h(x) = (1/2)cos x. Nhìn vào hình vẽ ta thấy khoảng phân ly của nghiệm duy nhất của phương trình (2) là (0, π/2).

Nếu khoảng phân ly (a, b) của một nghiệm x* của phuơng trình là khá nhỏ thì ta có thể coi điểm bất kỳ trong khoảng này là xấp xỉ của x*.

Một cách thông dụng để thu hẹp khoảng phân ly của nghiệm là phương pháp chia đôi được trình

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

2.1. Mô tả phương pháp Giả sử (a, b) là khoảng phân ly của nghiệm x* củly của x* bằng cách liên tiếp chia đôi khoảng pkhoảng phân ly nhỏ hơn sai số ε cho trước.

Bước 1. Đặt a0 = a, b0 = b;

Bước 2. Lặp các công việc sau đây:

2.1. Chia đôi khoảng [a0, b0] bởi điểm gi

200

0ba

x+

=

2.2. Xử lí một trong 3 khả năng sau sẽ xảy

(i) Nếu f(x0) = 0 thì x0 là nghiệm x

(ii) Nếu f(x0).f(a0) < 0 thì nghiệmb1 = x0.

(iii) Nếu f(x0).f(b0) < 0 thì nghiệmb1 = b0.

Như vậy sau lần chia đôi thứ nhất hoặc ta

khoảng phân ly thành [a1, b1] với độ rộng

2.3. Quay trở lại bước 2.1. để tiếp tục quđược xn-1 là nghiệm đúng hoặc ta thu

36

0 0.5 1 1.50

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

y=x

y=1/2*cos(x)

pi/2

Hình 1-2.1

bầy dưới đây.

a phương trình f(x). Ta sẽ thu hẹp khoảng phân hân ly mới tìm được cho đến khi độ rộng của

ữa

ra

* cần tìm.

nằm trong khoảng (a0, x0), do đó ta đặt a1 = a0,

nằm trong khoảng (x0, b0), do đó ta đặt a1 = x0,

thu được nghiệm đúng x0 hoặc ta thu hẹp được

2111

ababd −=−= .

á trình chia đôi, sau n lần chia đôi hoặc ta thu được khoảng phân ly (an, bn) với độ rộng

Page 37: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

nnnnababd

2−

=−= . Nếu ε<−n

ab2

là sai số cho trước ta dừng quá trình chia đôi và lấy

2nn

nabx −

= là nghiệm gần đúng. Khi đó ε<−

≤− nn

abxx

2* .

Rõ ràng là dãy số xn tiến dần đến x* khi n ∞ tức là phương pháp chia đôi hội tụ.

Nhận xét. Phương pháp chia đôi sử dụng rất ít thông tin về hàm f(x) (chỉ cần dấu của hàm) nên dễ lập trình nhưng hội tụ rất chậm.

Ví dụ 1-2.1. Bằng phương pháp chia đôi tìm nghiệm dương của phương trình 4 - ex - 2x2 = 0 với độ chính xác ε = 10-2.

Giải. Xét hàm f(x) = 4 - ex - 2x2. Ta thấy f là hàm đơn điệu, liên tục trong khoảng (0, 1) và

f(0).f(1) < 0, do đó (0, 1) là khoảng phân ly của nghiệm dương x*.

Ta có [a0, b0] = [0, 1], x0 = (a0 + b0)/2 = 0,5.

Vì f(a0) = 3, f(x0) = 1,8513 nên ta đặt

.5,0;1,8513,1 1110101 =−===== abdbbxa

Ta có [a1, b1] = [0,5; 1] là khoảng phân ly.

Đặt x1 = (a1 + b1)/2 = 0,75. Khi đó

.25,0,1,75,0758,0)(,8513,1)( 2121211 =====⇒== dbbxaxfaf

Tiếp tục quá trình chia đôi. Sau 7 bước ta đạt được x6 = 0,8828 với sai số d6 = 0,0078 < .01.0=ε

Cụ thể ta có bảng sau: a b x0 f(a) f(b) f(x0) |b-a|<0.01 1 0 1 0.5 3 -0.71828 1.851279 FALSE 2 0.5 1 0.75 1.851279 -0.71828 0.758 FALSE 3 0.75 1 0.875 0.758 -0.71828 0.069875 FALSE 4 0.875 1 0.9375 0.069875 -0.71828 -0.3114 FALSE 5 0.875 0.9375 0.90625 0.069875 -0.3114 -0.1176 FALSE 6 0.875 0.90625 0.890625 0.069875 -0.1176 -0.02308 FALSE 7 0.875 0.890625 0.882813 0.069875 -0.02308 0.023594 FALSE 8 0.882813 0.890625 0.886719 0.023594 -0.02308 0.000307 TRUE 9 0.886719 0.890625 0.888672 0.000307 -0.02308 -0.01137 TRUE

10 0.886719 0.888672 0.887695 0.000307 -0.01137 -0.00553 TRUE

2.2. Thuật toán tìm nghiệm xấp xỉ bằng phương pháp chia đôi Input: hàm phi tuyến f(x), khoảng phân ly nghiệm [a, b], sai số được phép ε

Ouput: nghiệm gần đúng x0 của phương trình f(x) = 0

Algorithm:

Bước 1: Gán c = (a + b)/2;

Bước 2: Lặp quá trình sau đây khi (b-a) > ε

37

Page 38: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

2.1. Nếu f(c) = 0 thì gán x0 := c và kết thúc lặp, ngược lại làm bước 2.2

2.2. Nếu f(a)f(c) < 0 thì gán b := c

Nếu không thì gán a := c

Bước 3: In ra nghiệm x0 = c;

3. Phương pháp lặp đơn

3.1. Mô tả phương pháp Giả sử phương trình f(x) = 0 có thể viết dưới dạng:

x = ϕ(x) (1-3.1)

và (a, b) là khoảng phân ly của nghiệm x*. Lấy một điểm x0 ∈ (a, b) và tính các xấp xỉ x1, x2, …, theo công thức

xn = ϕ(xn-1), n = 1, 2, …. (2-3.1)

Định lý 1-3.1. Về sự hội tụ của phương pháp lặp

Giả sử ϕ(x) là hàm khả vi trên đoạn [a.b] và thoả mãn các điều kiện sau:

i) ],[1)('max],[

baxqxbax

∈∀<≤∈

ϕ (3-3.1)

ii) ],[],[)( baxbax ∈∀∈ϕ (4-3.1)

Khi đó

i) Phương trình (1-3.1) có nghiệm duy nhất x* ∈ (a, b)

ii) Quá trình lặp (2-3.1) hội tụ và có ước lượng

11* −−

−≤− nnn xx

qqxx (5-3.1)

011* xx

qqxx

n

n −−

≤− (6-3.1)

Trong quá trình chứng minh định lý, ta còn rút ra được:

** 1 xxqxx nn −≤− − (7-3.1)

Để đặc trưng cho tốc độ hội tụ của các phương pháp lặp dưới đây chúng ta đưa ra khái niệm về cấp hội tụ của phương pháp.

Định nghĩa 1-3.1. Ta nói một phương pháp lặp giải phương trình có cấp hội tụ α nếu

- sai số tiên nghiệm của xấp xỉ thứ n là đại lượng cấp α của sai số xấp xỉ thứ n - 1, nghĩa là, α

** 1 xxCxx nn −≤− − , trong đó x* là nghiệm đúng, C>0 là hằng số,

- hoặc sai số hậu nghiệm của xn là đại lượng cấp α của độ lệch giữa hai xấp xỉ liên tiếp xn và x n-

1, nghĩa là α1* −−≤− nnn xxCxx .

38

Page 39: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Như vậy từ các đánh giá (5-3.1), (7-3.1) ta thấy rằng phương pháp lặp đơn có tốc độ hội tụ cấp 1 hay tốc độ hội tụ tuyến tính.

Ví dụ 1-3.1. Tìm gần đúng nghiệm của phương trình 2x - cos x = 0 với độ chính xác 10-3.

Giải. Trong Ví dụ (2-2.1) ta đã xác định được khoảng phân ly nghiệm của phương trình trên là (0, π/2), và phương trình trên đưa được về dạng

x = ϕ(x) với ϕ(x) = (1/2)cos x

Lấy một điểm x0 bất kỳ trong khoảng (0, π/2), chẳng hạn, x0 = 0,5 và xây dựng dãy lặp xn = ϕ(xn-1), n = 1, 2, ...

Ta sẽ kiểm tra các điều kiện của phương pháp lặp:

21sin

21)(' =≤−= qxxϕ

,

221)(0 πϕ <≤≤ x

do đó

].2

,0[]2

,0[)( ππϕ ∈∀∈ xx

Các điều kiện của định lí được thỏa mãn. Vậy công thức lặp tính xn theo ϕ(xn-1) là hội tụ và lấy x0 = 0.5, ta có:

i xi-1 xi |xi - xi-1| |xi - xi-1| < 10-3

1 0.5 0.4307 false

2 0.4307 0.4426 false

3 0.4426 0.4496 false

4 0.4496 0.4502 0.0006 true

Vậy x4 = 0.4502 là nghiệm xấp xỉ của phương trình đã cho với độ chính xác 10-3.

Ví dụ 2-3.1. Tìm nghiệm gần đúng của phương trình f(x) = 5x3 - 10x + 3 = 0 bằng phương pháp lặp đơn với độ chính xác 10-4 biết khoảng phân ly nghiệm là (0, 1).

Giải. Trước hết, ta đưa phương trình đã cho về dạng tương đương x = ϕ(x). Trong số các cách đưa về dạng này, ta phải chọn cách sao cho thỏa mãn các điều kiện của định lý 1-3.1. Ta sẽ chọn x = ϕ(x) với ϕ(x) = (5x3 + 3)/20. Khi đó ϕ(x) thỏa mãn điều kiện (3-3.1) vì

143

43max)('max

2

1010<==

≤≤≤≤

xxxx

ϕ

và cũng thỏa mãn điều kiện (4-3.1) vì 3/20 < ϕ(x) ≤ 2/5, do đó ϕ(x) ∈ [0, 1], ∀x ∈ [0, 1]. Do đó, phương pháp lặp đơn cho dãy nghiệm:

]1,0[,20

35 31 ∈∀+

= − xxx nn

39

Page 40: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

hội tụ và có đánh giá

*xxn − 13 −−≤ nn xx .

Chọn x0 = 0,5 ta tính được các xấp xỉ xn như sau

n xn xn - xn-1 3(xn - xn-1)

1 0.1812 0.3187 0.9562

2 0.1515 0.0298 0.0893

3 0.1509 0.0006 0.0019

4 0.1509 0.0000 0.0000

Cách chọn hàm ϕ(x) thỏa mãn các điều kiện của định lý 1-3.1, hơn nữa làm cho phương pháp lặp hội tụ nhanh nhất

3.2. Cách chọn ϕ(x) thỏa điều kiện hội tụ của phương pháp lặp đơn ],[1)('max

],[baxqx

bax∈∀<≤

∈ϕ Là điều kiện (3-3.1)

Trước hết nhận xét rằng λ ≠ 0 thì phương trình f(x) = 0 tương đương với phương trình x = ϕ(x) với

ϕ(x) = x + λf(x) (1-3.2)

Giả sử (a,b) là khoảng phân ly nghiệm và f’(x) > 0 trên [a, b]. Ký hiệu

)('min),('max xfmxfMbxabxa ≤≤≤≤

==

Đặt

Mmq

M−=−= 1,1λ

.

Xét hàm ϕ(x) dạng (1-3.2). Ta có M

xfx )('1)(' −=ϕ .

Vì 0 < m ≤ f’(x) ≤ M nên 11)('1)(' <=−≤−= qMm

Mxfxϕ trên toàn đoạn [a, b]. Như vậy, hàm

ϕ(x) được xây dựng như trên thoả mãn điều kiện thứ nhất của Định lý 1-3.1.

Có thể chứng minh được rằng với cách chọn

2M m

λ = −+

thì hàm xác định bởi (1-3.2) sinh ra phương pháp lặp hội tụ nhanh nhất với số

M mqM m

−=

+ ,

trong đó

40

Page 41: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

| '( ) |, min | '( ) |a x ba x b

.M max f x m f x≤ ≤≤ ≤

= =

3.3. Thuật toán tìm nghiệm xấp xỉ bằng phương pháp lặp đơn Input: phương trình f(x) = 0 đã được chuyển về dạng x = g(x) biểu thị xn = ϕ(xn-1);

khoảng phân ly [a, b], sai số được phép ε, điểm ban đầu x0 ∈ [a, b]

Ouput: nghiệm gần đúng x của phương trình f(x) = 0

Algorithm:

Bước 1: Khởi gán sai số e := 1;

Bước 2: Lặp quá trình sau đây khi e > ε

2.1. Tính x := g(x0);

2.2. Tính e := abs(x-x0);

2.3. Gán x0 := x;

Bước 3: In ra nghiệm x;

4. Phương pháp tiếp tuyến (Newton)

4.1. Mô tả phương pháp Ý tưởng của phương pháp Newton giải phương trình f(x) = 0 là thay phương trình này bởi một phương trình tuyến tính gần đúng trong lân cận của nghiệm. Vì thế phương pháp này còn có tên gọi là phương pháp tuyến tính hoá.

Mô tả phương pháp: Giả sử xn-1 là một xấp xỉ đã tính được của nghiệm đúng x*. Trong lân cận của x*, thay đường cong y = f(x) bởi tiếp tuyến với nó tại điểm A(xn-1, f(xn-1)). Tiếp tuyến này có phương trình là

y = f’(xn-1)(x - xn-1) + f(xn-1) (1-4.1)

Giả sử f’(xn-1) ≠ 0. Ký hiệu hoành độ của điểm cắt của tiếp tuyến với trục hoành là xn. Thế thì

)(')(

1

11

−− −=

n

nnn xf

xfxx (2-4.1)

Ta coi xn là xấp xỉ tiếp theo của x*. Vì thế phương pháp tìm nghiệm gần đúng theo công thức (2-4.1) còn có tên gọi là phương pháp tiếp tuyến .

Nhận xét.

1) Công thức lặp (2-4.1) có thể viết trong dạng xn = ϕ(xn-1) với

)(')()(

xfxfxx −=ϕ (3-4.1)

Điều đó có nghĩa phương pháp Newton là một trường hợp đặc biệt của phương pháp lặp đơn. Do đó có thể khảo sát sự hội tụ của phương pháp nhờ vào Định lý 1-3.1

41

Page 42: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

2) Nếu xấp xỉ ban đầu x0 chọn không thích hợp thì phương pháp Newton có thể không sử dụng được, vì xấp xỉ tiếp theo x1 có thể vuợt ra khỏi khoảng phân ly, thậm chí vượt ra khỏi khoảng xác định của hàm số. Để tránh được điều này, cần chọn xấp xỉ ban đầu là một điểm Fourier được định nghĩa dưới đây:

Định nghĩa 1-4.1. Điểm x0 thoả mãn điều kiện sau được gọi là điểm Fourier.

0)('')( 00 >xfxf (4-4.1)

4.2. Sự hội tụ của phương pháp Định lý 1-4.2 Về sự hội tụ của phương pháp lặp Newton

Giả sử

• f là hàm khả vi liên tục hai lần trên đoạn [a, b] và [a, b] là khoảng phân ly nghiệm x* của phương trình f(x) = 0.

• f’(x) và f”(x) không đổi dấu trên [a, b].

• x0 ∈ [a, b] là điểm Fourier.

Khi đó phương pháp Newton (2-4.1) hội tụ và đối với nghiệm gần đúng xn có các đánh giá sau

1

)(*

mxf

xx nn ≤− , (1-4.2)

21

1

2

2* −−≤− nnn xx

mMxx , (2- 4.2)

trong đó m1 và M2 là các hằng số thoả mãn

0 < m1 ≤ |f’(x)|, |f ”(x)| ≤ M2, ∀x ∈ [a, b]

Bỏ qua phần chứng minh. Khi áp dụng, thường chọn m1 = min{f'(x)}; M2 = max{f'(x)}

Định lý 2-4.2 Đối với phương pháp Newton ta có đánh giá tiên nghiệm sau 2

1 nn zqz ≤+ (3-4.2)

trong đó *,,2 1

2 xxzm

Mq nn −== M2 và m1 được xác định như trong Định lý 1-4.2.

Bỏ qua phần chứng minh.

Ví dụ 1-4.2. Áp dụng phương pháp Newton tìm nghiệm dương của phương trình x2 - x - 1 = 0 với độ chính xác 0.001.

Giải. Đặt f(x) = x2 - x -1. Ta có f(1) = -1 < 0, f(2) = 1 > 0 và f’(x) = 2x-1 > 0. Do đó [1, 2] là khoảng phân ly nghiệm dương của phương trình đã cho. Ngoài ra, ta có f’’(x) = 2 > 0. Do đó chọn m1 =1, M2 =2. Với tư cách xấp xỉ ban đầu ta chọn điểm Fourier x0 = 2. Phương pháp lặp Newton có dạng

.12

1)(')(

1

12

11

1

11 −

−−−=−=

−−−

−−

n

nnn

n

nnn x

xxxxfxfxx

42

Page 43: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Rút gọn vế phải ta được

12 1 −−nn x

121 += −nxx (1)

Theo định lý 1-4.2 ta có

21

2112× nn

2* −− −=−≤− nnn xxxxxx.

Tính theo công thức (1) ta được kết quả sau

n xn xn- xn- (xn- xn-1)21

1 1.666666 -0.333333 0.111111

2 1.619048 19 -0.0476 0.002267

3 1.618034 -0.001013 0.000001

Vậy x3 = 1.618 là nghiệm ớ ơn

4.3. Thuật to tìm n ấp ph áp Newton 1 + f(xn-1)/f'(xn-1);

2: Lặp quá trình sau đây khi e > ε

Bước 3

5. Phương n

5.1. Mô tả phương pháp ewton (2-4.1) có thể tốn thêm nhiều thời gian nếu f’(x) là

ay f’(xn-1) bởi tỷ sai phân

gần đúng v i sai số nhỏ h 0.001.

án ghiệm x xỉ bằng ương phInput: f(x) = 0 được chuyển về dạng x = g(x) biểu thị xn = xn-

khoảng phân ly [a, b], sai số được phép ε, điểm fourier x0 ∈ [a, b]

số q=M/2*m, mới 0<m<|f'(x)| và |f"(x)| <M1

Ouput: nghiệm gần đúng x của phương trình f(x) = 0

Algorithm:

Bước 1: Khởi gán sai số e := 1;

Bước

2.1. Tính x := g(x0);

2.2. Tính e := q*abs(x-x0)^2;

2.3. Gán x0 := x;

: In ra nghiệm x;

pháp cát tuyế

Việc tính đạo hàm trong công thức Nhàm phức tạp. Vì thế, người ta th

21

21 )()(

−−

−−

−−

nn

nn

xxxfxf

.

Khi đó, phương pháp lặp có dạng

43

Page 44: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

,...3,2),()()( 1

11

21 −−= −− xxxx nn1 =

− −−−

− nxfxfxf n

nnnn (1-5.1)

x0, x1 là các xấp xỉ cho trước.

1 = b, (a, b) là khoảng phân ly của nghiệm.

) vì ý nghĩa hình

ua hai điểm là

Thông thường, người ta đặt x0 = a, x

Phương pháp lặp trên có tên là phương pháp cát tuyến (phương pháp vị trí ảohọc của nó cụ thể như sau:

Phương trình của cát tuyến q ))(,()),(,( 1122 −−−− nnnn xfxxfx

12

11)( −− −=

− nn xxxfy

12 )()( −−−− −− nnnn xxxfxf .

Phương pháp cát tuyến (1-2.5) hội tụ chậm hơn phương pháp Newton nhưng hội tụ nhanh hơn

3 -3x + 2 = 0 có một nghiệm là x* = 2. Sử dụng phương -3

66

5.2. Thuật toán tìm nghiệm xấp xỉ bằng phương pháp Cát tuyến

ởi gán sai số e := 1; Nghiệm tìm xấp xỉ cần tìm là x = x1

-f(x0)));

:=x;

Bước 3

phương pháp lặp đơn.

Ví dụ 1-5.1. Cho phương trình f(x) = xpháp cát tuyến với sai số 10 , x0 = -2,6, x1 = -2,4 ta được

n x(n)

2 -2.10

3 -2.0226

4 -2.0015

5 -2.0000

6 -2.0000

Input: Hàm số f(x) = 0, 2 nghiệm xấp xỉ ban đầu x0 và x1, sai số được phép ε,

Ouput: nghiệm gần đúng x của phương trình f(x) = 0

Algorithm:

Bước 1: Kh

Bước 2: Lặp quá trình sau đây khi e > ε

2.1. Tính x := x1-f(x1)-((x1-x0)/(f(x1)

2.2. e := abs(x-x0);

2.3. Gán x0 := x1; x1

: In ra nghiệm x;

44

Page 45: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

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

6.1. Mô tả phương pháp Giả sử (a, b) là khoảng phân ly của phương trình f(x) = 0. Ý tưởng của phương pháp dây cung là thay dây cung cong của đường cong y = f(x) bằng dây cung trương cung cong ấy và xem hoành độ xn của giao điểm của dây cung với trục hoành là giá trị xấp xỉ của nghiệm đúng x*.

Giả thiết đạo hàm cấp hai f’’(x) không đổi dấu trên đoạn [a, b]. Khi đó trong hai đầu mút a và b, ta cố định một đầu, mà tại đó giá trị của hàm cùng dấu với dấu của f”(x) (tức là điểm Fourier), và lấy đầu mút còn lại làm xấp xỉ ban đầu x0. Công thức lặp của phương pháp dây cung sẽ như sau:

,...2,1,)()())((

1

111 =

−−

−=−

−−− n

dfxfdxxfxx

n

nnnn (1-6.1)

trong đó d = b, x0 = a nếu f(b).f”(x) > 0; và d = a, x0 = b nếu f(a).f”(x) > 0.

6.2. Sự hội tụ của phương pháp Người ta đã chứng minh được rằng phương pháp dây cung hội tụ và thu được các đánh giá dưới đây về sai số của phương pháp:

1

| ( ) || * | nn

f xx xm

− ≤ ,

1 11

1

| * | |n nM mx x x x

m − |,n−

− ≤ −

Ở đây, như thường lệ, ta ký hiệu

1 1max | '( ) |, min | '( ) |a x ba x b

M f x m f x≤ ≤≤ ≤

= =.

BÀI TẬP 1. Tìm khoảng phân ly với độ rộng bằng 1 cho các nghiệm của các phương trình sau:

)0(02034 >=−− xxx

)0(0523 >=−− xxx

0533 =++ xx

0=+ xex

2 ln( ) 0x x− − =

)0(024 2 >=−− xxex

51sin =− xx

.0sin2 =− xx π

2. Bằng phương pháp chia đôi tìm nghiệm của các phương trình cho trong bài 1 với độ chính xác ε = 10-2.

3. Tìm nghiệm của các phương trình cho trong bài 1 với độ chính xác ε = 10-2 bằng phương

pháp lặp đơn. So sánh số lần lặp thực sự với số lần lặp ước lượng trước khi tính ,..., 32 xx

45

Page 46: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

4. Sử dụng phương pháp lặp đơn dạng xn+1 = xn + λf(xn) giải phương trình f(x) = 0 tìm

7 .

5. Tìm nghiệm của các phương trình cho trong bài 1 với độ chính xác ε = 10-3 bằng phương pháp Newton.

6. Tính 13 bằng phương pháp Newton, phương pháp lặp đơn và phương pháp cát tuyến với độ chính xác 10-3.

7. Phương pháp Newton hội tụ tới nghiệm nào trong ba nghiệm 0; 1 và -1 của phương trình x3 - x = 0 nếu xuất phát từ điểm x0 bất kỳ?

8. Tính cos 200 với độ chính xác 10-3.

Gợi ý: Sử dụng cos 3 × 200 = 1/2.

9. Tìm nghiệm gần đúng của phương trình 2x2 - x - 0,1=0 bằng các phương pháp cát tuyến và phương pháp dây cung với độ chính xác 0.001 và so sánh tốc độ hội tụ.

10. Lập chương trình giải phương trình phi tuyến bằng các phương pháp cát tuyến và dây cung. Sử dụng chương trình này giải phương trình trong bài tập 7.

46

Page 47: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Chương 4 PHƯƠNG PHÁP SỐ TRONG ĐẠI SỐ TUYẾN TÍNH

1. Đại số ma trận

1.1. Vectơ cột và vectơ hàng a) Định nghĩa

Ta gọi vectơ cột là một dạy hữu hạn có thứ tự các số sắp xếp từ trên xuống dưới.

Ví dụ 1-1.1.

⎟⎟⎟

⎜⎜⎜

⎛=

213

u là một vectơ cột ba thành phần.

Ta gọi vectơ hàng là một dạy hữu hạn có thứ tự các số được sắp xếp nối tiếp nhau theo hàng ngang.

Ví dụ 2-1.1. là một vectơ hàng có 4 thành phần. ( 924=v )

b) Các phép toán trên vectơ

Cộng hai vectơ

Cho và , thì ⎟⎟⎟

⎜⎜⎜

⎛=

3

2

1

uuu

u⎟⎟⎟

⎜⎜⎜

⎛=

3

2

1

vvv

v⎟⎟⎟

⎜⎜⎜

+++

=+

33

22

11

vuvuvu

vu

Tương tự,

Cho và , thì ( )321 ,, uuuu = ( )321 ,, vvvv = ( )332211 ,, vuvuvuvu +++=+

Nhân một số với một vectơ

Nếu u = (u1, u2, u3) và a là một số thì au = (au1, au2, au3).

Vectơ không, kí hiệu là 0, là vectơ mà các thành phần của nó đều bằng 0.

Tích vô hướng (khi nhân vectơ hàng với vectơ cột)

Cho và ( )321 ,, uuuu =⎟⎟⎟

⎜⎜⎜

⎛=

3

2

1

vvv

v

Khi đó tích vô hướng của vectơ hàng u với vectơ cột v là số 332211 vuvuvuuv ++=

Ví dụ 3-1.1.

47

Page 48: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Một sản phẩm được tạo ra bởi ba công đoạn, mỗi công đoạn cần một công nhân làm. Công nhân thứ nhất làm mất 3 giờ, công nhân thứ hai làm mất 4 giờ và công nhân thứ ba làm mất 2 giờ. Tiền trả mỗi giờ cho các công nhân tương ứng là 50000đ, 80000đ và 60000đ.

Số tiền phải trả để hoàn thành sản phẩm là tích vô hướng của hai vectơ

( )243=u và ⎟⎟⎟

⎜⎜⎜

⎛=

600008000050000

v

tức là số uv = 3*50.000 + 4*80.000 + 2*60.000 = 590.000đ

1.2. Ma trận 1.2.1. Định nghĩa

Một ma trận A cấp m × n là một bảng gồm m × n phần tử xếp theo m hàng và n cột.

⎥⎥⎥⎥

⎢⎢⎢⎢

=

mnmm

n

n

aaa

aaaaaa

A

...............

...

...

21

22221

11211

,

trong đó aij là phần tử ở hàng i, cột j, i ∈ [1,…,m], j ∈[1,…, n].

1.2.2. Các loại ma trận

• Ma trận vuông: Khi m = n thì ma trận A = (aij) gọi là ma trận vuông cấp n. • Ma trận đơn vị, thường ký hiệu là E hoặc I, là ma trận vuông cấp n có các phần tử nằm

trên đường chéo bằng 1, các phần tử còn lại bằng 0, tức là aii = 1 và aij = 0, ∀ i ≠ j, 1 ≤ i, j ≤ n.

E =

⎥⎥⎥⎥

⎢⎢⎢⎢

1...00....0...100...01

• Ma trận chuyển vị: Ma trận chuyển vị của một ma trận A, kí hiệu là At, là ma trận nhận được từ ma trận A bằng cách đổi hàng thành cột và đổi cột thành hàng.

• Ma trận nghịch đảo: Cho ma trân vuông A, ma trận nghịch đảo của ma trận A (nếu có), kí hiệu là A-1, là một ma trận vuông cấp n thỏa mãn điều kiện sau:

A.A-1 = A-1.A = E

1.2.3. Một số dạng đặc biệt của ma trận

• Ma trận chéo: 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 .

• Ma trận tam giác trên: Ma trận vuông A được gọi là ma trận tam giác trên, nếu aij = 0 nếu với ∀ i > j, tức là A có dạng:

48

Page 49: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

A = .

⎥⎥⎥⎥

⎢⎢⎢⎢

nn

n

n

a

aaaaa

...00......

...0

...

222

11211

• Ma trận tam giác dưới: Tương tự, ma trận vuông A được gọi là ma trận tam giác dưới, nếu aij = 0 với ∀ i < j, tức là A có dạng:

A =

⎥⎥⎥⎥

⎢⎢⎢⎢

nnnn aaa

aaa

.........0...0...0

21

2221

11

• Ma trận thưa: Ma trận thưa là ma trận có rất nhiều phần tử bằng 0. Trong trường hợp, nếu aij= 0 khi |i-j| > m và m<<n thì ma trận có tên gọi là ma trận băng. Nếu m = 1 thì ma trận băng có dạng ba đường chéo

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

nnnn

nn

aaa

aaaaa

A

.. ...... 0 0 0

... .......... 0 0 0

..................................

0 .0 ..........

0 ..0.......... 0

1,

,1

232221

1211

.

• Ma trận đối xứng: Ma trận A được gọi là đối xứng nếu A=At, tức là aịj=aji (i,j=1,...,n).

• Ma trận xác định dương: Ma trận A được gọi là xác định dương nếu tích vô hướng (Ax, x) > 0 với mọi x ≠ 0.

1.2.4. Các phép toán trên ma trận

• Cộng 2 ma trận Phép cộng hai ma trận chỉ có nghĩa khi hai ma trận có cùng cấp. Cho hai ma trận A = {aij}i = 1, .., m; j = 1, ..., n, B = {bij}i = 1, .., m; j = 1, ..., n, Khi đó tổng của hai ma trận A và B là ma trận C = {cij}i = 1, .., m; j = 1, ..., n, kí hiệu là C = A + B, với cij = aij + bij , (i,j=1,...,n).

• Nhân một hằng số k khác 0 với một ma trận: Nếu A = (aij) thì kA = (kaij)

• Nhân hai ma trận: Điều kiện để thực hiện được phép nhân: Số cột của ma trận trước phải bằng số hàng của ma trận sau. Tích của hai ma trận A = (aij) kích thước m × p với ma trận B = (bij) kích thước p × n là ma trận C = (cij) có kích thước m × n, trong đó:

.,...,2,1;,...,2,1,1

njmibac kj

p

kikij ===∑

=

Ví dụ 1-1.2.

A[3 × 2] . B[2 × 4 ] = C[3 × 4]

49

Page 50: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎥⎥⎥

⎢⎢⎢

−−−=⎥

⎤⎢⎣

⎥⎥⎥

⎢⎢⎢

−−

35211131695321

14065321

.2123

01

• Nhân một véc tơ (hàng) với một ma trận: Là trường hợp đặc biệt của phép nhân hai ma trận A[1 × n] * B[n × p] = C[1 × p]. Nói cách khác, điều kiện để thực hiện được phép nhân là: số phần tử của véc tơ hàng phải bằng số hàng của ma trận.

Ví dụ 2-1.2.

[ ] [ ] [ 3131.12.20.33.1)1.(24.3132104

123 =+++−+=⎥⎥⎥

⎢⎢⎢

⎡− ]

• Nhân một ma trận với một véc tơ (cột): Là trường hợp đặc biệt của phép nhân hai ma trận A[m × n] * B[n × 1] = C[m × 1]. Nói cách khác, điều kiện để thực hiện được phép nhân là: Số cột của ma trận trước phải bằng số thành phần của véc tơ cột.

Ví dụ 3-1.2.

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

++−

+=⎥

⎤⎢⎣

⎥⎥⎥

⎢⎢⎢

⎡−

176

16

5.14.35.24).1(

5.04.4

54

.132104

Chú ý:

• AB ≠ BA (phép nhân 2 ma trận không có tính giao hoán)

• (AB)C = A(BC)

• Nếu A là ma trận vuông cấp n và E là ma trận đơn vị thì AE = EA = A

1.2.5. Định thức của ma trận Với mỗi ma trận vuông A cấp n, ta tính được một số thực theo qui tắc dưới đây, gọi là định thức của ma trận A, kí hiệu là det A hoặc |A|.

a) Định thức của ma trận cấp hai

Cho thì det(A) = a⎥⎦

⎤⎢⎣

⎡=

2221

1211

aaaa

A 11a22 - a12a21

b) Định thức của ma trận cấp ba

Cho thì ⎥⎥⎥

⎢⎢⎢

333231

232221

131211

aaaaaaaaa

⎥⎦

⎤⎢⎣

⎡+⎥

⎤⎢⎣

⎡+⎥

⎤⎢⎣

⎡=

3231

222113

3331

232112

3332

232211 detdetdetdet

aaaa

aaaaa

aaaaa

aA

50

Page 51: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

det A = a11a22a33 - a11a23a32 + a12a21a33 - a12a23a31 + a13a21a32 - a13a22a31

c) Định thức của ma trận vuông cấp n tổng quát

Có thể tính theo cột hoặc hàng bất kỳ. Ví dụ nếu chọn một hàng i nào đó, ta có:

det A = (-1)i+1 ai,1 det Mi,1 + (-1)i+2 ai,2 det Mi,2 + ... + (-1)i+n ai,n det Mi,n

Trong đó Mi,j là ma trận thu được từ ma trận A sau khi bỏ đi hàng i và cột j.

Ví dụ 4-1.2.

⎥⎥⎥

⎢⎢⎢

−−=

987654321

A , , , ⎥⎦

⎤⎢⎣

⎡−

=9865

1,1M ⎥⎦

⎤⎢⎣

⎡−=

9764

2,1M ⎥⎦

⎤⎢⎣

⎡−=

8754

3,1M

det A = (-1)1+1a1,1 det M1,1 + (-1)1+2 a1,2 det M1,2 + (-1)1+3 a1,3 det M1,3

= a1,1 det M1,1 - a1,2 det M1,2 + a1,3 det M1,3

=1.93 -2.(-78)+3.(-3) = 240.

Để ý thấy, nếu chọn hàng 1 thì dấu cộng trừ đan xen nhau, bắt đầu là dấu dương.

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

2.1. Giới thiệu Cho hệ phương trình gồm n phương trình tuyến tính với n ẩn số x1, x2,...,xn

⎪⎪⎩

⎪⎪⎨

=+++

=+++=+++

nnnnnn

nn

nn

bxaxaxa

bxaxaxabxaxaxa

..............

...

...

2211

22222121

11212111

(1-2.1)

Hệ phương trình này có thể viết dưới dạng ma trận

Ax = b (2-2.1)

trong đó

⎥⎥⎥⎥

⎢⎢⎢⎢

=

nnnn

n

n

aaa

aaaaaa

A

.........

...

...

21

22221

11211

, ,

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

=

nx

xx

x...

2

1

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

=

nb

bb

b...

2

1

Bài toán đặt ra là tìm nghiệm x = (x1, x2, …, xn)t của hệ (2-2.1)

Các phương pháp giải: Người ta chia các phương pháp giải hệ PTĐSTT thành 2 loại: các phương pháp đúng và các phương pháp gần đúng:

Phương pháp đúng hay còn gọi là phương pháp trực tiếp, ví dụ như các phương pháp Cramer, khử Gauss, Choleski, là phương pháp cho ta nghiệm đúng của hệ phương trình (1-2.1) sau một số hữu hạn các phép tính với giả thiết không có sai số làm tròn.

51

Page 52: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Phương pháp gần đúng hay còn gọi là phương pháp lặp, ví dụ như các phương pháp Jacobi, Gauss-Seidel, giảm dư, là phương pháp giải hệ bằng cách cho nghiệm một giá trị ban đầu, từ giá trị này tính các 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 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 của hệ với một sai số có thể ước lượng được.

Trong chương này chúng ta sẽ tìm hiểu các phương pháp: Cramer, Khử Gausse, Gauss-Seidel và giảm dư..

2.2. Giới thiệu phương pháp Cramer Nếu det A ≠ 0 thì hệ (2-2.1) có nghiệm duy nhất và nghiệm của nó có thể tính theo phương pháp Cramer với công thức:

bAx 1−=

tức là

AA

x jj det

det= (1-2.2)

trong đó Aj là ma trận nhận được từ ma trận A bằng cách thay cột thứ j bởi cột b.

Ví dụ 1-2.2.

Hãy giải hệ

⎪⎩

⎪⎨

=+−−=++−=+

8323064362

321

321

31

xxxxxxxx

Giải: Ta có

⎥⎥⎥

⎢⎢⎢

−−−=

321643201

A , ⎥⎥⎥

⎢⎢⎢

⎡=

8306

b

Vậy

⎥⎥⎥

⎢⎢⎢

−=

3286430206

1A , , ⎥⎥⎥

⎢⎢⎢

−−=

3816303261

2A⎥⎥⎥

⎢⎢⎢

−−−=

8213043601

3A

Ta tính được

det A = 44 ≠ 0

det A1 = -40, det A2 = 72, det A3 = 152

Ta suy ra các thành phần nghiệm của hệ đã cho:

x1 = -40/44 = -10/11; x2 = 72/44 = 18/11; x3 = 152/44 = 38/11

Vậy x = (-10/11, 18/11, 38/11)t là nghiệm của hệ đã cho.

52

Page 53: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Nhận xét : Công thức (1-2.2) rất đẹp về mặt lý thuyết nhưng rất đắt về về mặt tính toán, nghĩa là cần rất nhiều các phép tính số học. Cụ thể là, để tính các xj theo công thức trên cần tính n+1 định thức cấp n, mà mỗi định thức chứa n! số hạng, mỗi số hạng là tích của n thừa số, do vậy để tính mỗi số hạng cần thực hiện n-1 phép nhân. Như vậy, riêng số phép nhân phải thực hiện trong (1-2.2) đã là n!(n+1)(n-1). Giả sử n=20. Khi đó n!=20! ≈ 2,4329 . 1018 và n!(n+1)(n-1) ≈ 9,7073 .1023. Nếu máy tính thực hiện được 100 triệu phép tính trong một giây thì để để thực hiện được khối lượng tính toán trên cần 3,0782 . 105 năm!

Trong khoa học và công nghệ người ta thường phải giải các hệ phương trình cỡ lớn hơn 20 rất nhiều, chẳng hạn cỡ nghìn, chục nghìn, thậm chí cỡ hàng triệu. Vì thế cần phải có các phương pháp giải hệ phương trình tốt hơn để có thể cho lời giải trong một thời gian chấp nhận được. Một đặc điểm của các phương pháp đó là khước từ việc nghịch đảo ma trận. Và kim chỉ nam cho việc xây dựng các phương pháp nhanh để giải hệ phương trình đại số tuyến tính cỡ lớn là khai thác triệt để các thông tin về ma trận của hệ.

2.3. Phương pháp khử Gauss a) Mô tả phương pháp

• Cần biến đổi ma trận vuông A cấp n về dạng ma trận tam giác trên:

⎥⎥⎥⎥

⎢⎢⎢⎢

=

+

+

+

1,21

1,222221

1,111211

..........

...

...

nnnnnn

nn

nn

aaaa

aaaaaaaa

A ⎥⎥⎥⎥

⎢⎢⎢⎢

=

+

+

+

1,

1,2222

1,111211

''...00.......''...'0''...''

'

nnnn

nn

nn

aa

aaaaaaa

A

Để tiện cho quá trình biến đổi tương đương, ta coi cột b là cột thứ n + 1 của ma trận A.

• Cơ sở của việc biến đổi: Sử dụng các phép biến đổi tương đương như:

- Đổi chỗ 2 phương trình bất kỳ.

- Nhân một phương trình bất kỳ với một số khác không.

- Cộng vào một phương trình một tổ hợp tuyến tính của một số phương trình khác

• Từ đó, phương pháp khử Gauss gồm 2 quá trình:

- Quá trình thuận: đưa ma trận A về dạng tam giác trên,

Cách biến đổi A A’: Thực hiện n - 1 lần biến đổi :

Lần biến đổi thứ i (làm cho aji = 0 ; j = i + 1, …, n) bằng cách công thức:

ii

ji

aa

mnijmiDòngjDòngjDòng −=+=×+= ;,...,1, (1-2.3)

- Quá trình ngược: giải hệ tam giác trên từ dưới lên trên, tức là tính các nghiệm xn, xn-1, …, x1 bằng phương pháp “thế ngược”.

nnn

n ba

x 1=

53

Page 54: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

)(1,11

1,11 nnnn

nnn xab

ax −−

−−− −= (2-2.3)

)(11

jij

n

iji

iii xab

ax ∑

+=

−=

Ví dụ 1-2.3. Giải hệ phương trình

⎪⎩

⎪⎨

=++=++=++

623632632

321

321

321

xxxxxxxxx

Ta có

[ ]⎟⎟⎟

⎜⎜⎜

⎛==

666

213132321

,' bAA

Quá trình thuận

• i = 1

Dòng 2 = Dòng 2 - 2 * Dòng 1

Dòng 3 = Dòng 3 - 3 * Dòng 1

[ ]⎟⎟⎟

⎜⎜⎜

⎛=

666

213132321

,bA [ ]⎟⎟⎟

⎜⎜⎜

−−

−−−−=→

126

6

750510

321,bA

• i = 2

Dòng 3 = Dòng 3 - 5 * Dòng 2

[ ]⎟⎟⎟

⎜⎜⎜

−−

−−−−=

126

6

750510

321,bA [ ]

⎟⎟⎟

⎜⎜⎜

⎛−−−=→18

66

1800510

321,bA

Như vậy kết thúc quá trình trên ta sẽ thu được hệ có dạng tam giác trên

⎪⎩

⎪⎨

=−=−−

=++

181865

632

3

32

321

xxxxxx

Quá trình ngược

Giải ngược: Tính các nghiệm xn, xn-1, …, x1 bằng phương pháp “thế ngược”: Ta tính được x3 = 1; x2 = 6 - 5.1 = 1; x1 = 6 - 2 - 3 = 1.

54

Page 55: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Khối lượng tính toán: Ta có thể đánh giá được tổng số phép toán của phương pháp khử Gauss là O(n3) khi n đủ lớn.

Ví dụ 2-2.3. Giải hệ PTĐSTT sau bằng phương pháp khử Gauss:

2x1 + 4x2+ 3x3 = 4

3x1+ x2- 2x3 = -2

4x1+ 11x2+ 7x3 = 7

Các hệ số và vế phải của các hệ trung gian thu được sau từng bước khử được viết trong dạng ma trận mở rộng như sau

⎟⎟⎟

⎜⎜⎜

7 7 11 4

2- 2- 1 3

4 3 4 2

⎟⎟⎟

⎜⎜⎜

1- 1 3 0

8- 6,5- 5- 0

2 1,5 2 1

⎟⎟⎟

⎜⎜⎜

5,8- 2,9- 0 0

1,6 1,3 1 0

2 1,5 2 1

⎟⎟⎟

⎜⎜⎜

2 1 0 0

1,6 1,3 1 0

2 1,5 2 1

Quá trình tính ngược cho ta x1 = 1, x2 = -1, x3 = -2.

Nhận xét 1: Trong quá trình thuận ta phải thực hiện phép chia cho phần tử trụ aii. Nếu nó bằng 0 thì quá trình không thực hiện được. Ngoài ra nếu nó có trị tuyệt đối nhỏ thì khi chia cho nó sai số làm tròn sẽ lớn, do đó có thể làm giảm độ chính xác của nghiệm tìm được. Để khắc phục khó khăn trên người ta thường dùng phương pháp Gauss với phần tử trụ có trị tuyệt đối lớn nhất trong cột.

Nhận xét 2: Trong phương pháp khử Gauss ta sử dụng các phép biến đổi lên ma trận như chia một hàng cho một số, trừ đi từ hàng một hàng khác nhân với một số và đổi chỗ hai hàng. Do đó, định thức của ma trận A có thể tính theo công thức

)1()1(22

)0(11 ...)1(det −−= n

nnk aaaA ,

trong đó k là số lần đổi chỗ các hàng và là phần tử trụ lần lặp thứ i.jiia

Ví dụ 3-2.3.

⎟⎟⎟

⎜⎜⎜

7 11 4

2- 1 3

3 4 2

det = 2 = 2 = 2.(-5) ⎟⎟⎟

⎜⎜⎜

7 11 4

2- 1 3

1,5 2 1

det⎟⎟⎟

⎜⎜⎜

1 3 0

6,5- 5- 0

1,5 2 1

det⎟⎟⎟

⎜⎜⎜

2,9- 0 0

1,3 1 0

1,5 2 1

det

= 2.(-5).(-2,9) = 2.(-5).(-2,9) = 29. ⎟⎟⎟

⎜⎜⎜

1 0 0

1,3 1 0

1,5 2 1

det

b) Thuật toán Khử Gauss

Input: n, ma trận a(n,n+1) là ma trận các hệ số, cột n+1 là vế phải của phương trình.

Output: véct tơ nghiệm x.

55

Page 56: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Algorithm:

1. Nhập n, ai (i=1, .., n; j = 1, ..., n+1)

2. Quá trình thuận: Biến đổi A A’

Lặp quá trình sau với i = 1 n - 1

2.1. Xét a[i,i], nếu a[i,i] = 0 thì tìm phương trình j sao cho a[j,i] ≠ 0. Nếu tồn tại phương trình j thì hoán đổi hai phương trình cho nhau, nếu không thì kết luận hệ suy biến và dừng thuật toán.

2.2. Chia 2 vế của phương trình i cho a[i,i] để chuẩn bị cho việc khử x[i] trong các phương trình còn lại ; gán kết quả cho phương trình trung gian c

a[i,,j]=a[i,,j]/a[i,i]; c[j]=a[i,,j]; với j = 1, 2, .., n.

2.3. Với mỗi phương trình j = i +1 n

Cộng phương trình j với phương trình c sau khi phương trình c (tức là phương trình i ở trên) đã nhân với -a[j,i]

a[j,k] = a[j,k] + c[k] * (-a[j,k]) ; với k = 1,2, ..., n

3. Quá trình ngược

3.1. Tính x[n]=a[n,n+1];

3.2. Tính thành phần nghiệm x[k] với k = n-1, ..., 1

(i) Tính tổng s = s + a[k, j] với j = k+1, ..., n

(ii) Tính x[k] = a[k, n + 1] - s

4. Xuất x1, x2, ..., xn

2.4. Phương pháp Gauss-Seidel a) Mô tả phương pháp

Ý tưởng chung của phương pháp Gauss-Deidel là đưa hệ Ax = b về dạng x = Bx + g. Trước hết, biến đổi hệ

⎪⎪⎩

⎪⎪⎨

=+++

=+++=+++

+

+

+

1,2211

1,22222121

1,11212111

..............

...

...

nnnnnnn

nnn

nnn

axaxaxa

axaxaxaaxaxaxa

(1-2.4)

Về dạng

⎪⎪⎪⎪

⎪⎪⎪⎪

−−−−−=

−−−−=

−−−−=

−−+

+

+

)...(1............

)...(1

)...(1

11,3322111,

23231211,222

2

13132121,111

1

nnnnnnnnnn

n

nnn

nnn

xaxaxaxaaa

x

xaxaxaaa

x

xaxaxaaa

x

Hay

56

Page 57: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎪⎪⎪⎪

⎪⎪⎪⎪

≠−=

≠−=

≠−=

=+

=+

=+

)(/)(.........

)2(/)(

)1(/)(

11,

12221,22

11111,11

njaxaax

jaxaax

jaxaax

n

jnnjnjnnn

n

jjjn

n

jjjn

Tổng quát ta có với i = 1, 2, …, n thì

∑=

+ ≠−=n

jiijijnii ijaxaax

11, ,/)( (2-2.4)

Viết gọn hơn thì hệ (1-2.4) có dạng

x = Bx + g (3-2.4)

trong đó B gọi là ma trận lặp và

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

−−

−−

−−

=

0.........

...0

...0

21

22

2

22

21

11

1

11

12

nn

n

nn

n

n

n

aa

aa

aa

aa

aa

aa

B , ,

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

=

nx

xx

x...

2

1

⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜

=

+

+

+

nn

nn

n

n

aa

aaa

a

g

1,

22

1,2

11

1,1

...

Tiếp theo, cho hệ nghiệm ban đầu tnxxxx ),...,( 00

210 = . Thay x,00 vào phương trình (2-2.4) để tính

với tnxxxx ),...,,( 11

2111 =

∑=

01

trình đó ta tính x2, x3, …, xk

Tổng quát:

+ ≠−=j

iijijnii ijaxaax1

1, ,/)( n

Tiếp tục quá

∑=

+n

kk 1 1

uá trình lặp nói trên sẽ dừng tại xk nếu thỏa mãn tiêu chuẩn hội tụ tuyệt đối:

+ ≠−=j

jijniii

i ijxaaa

x1

1, ,)( (4-2.4)

Q

),...,1( nixx kik =∀<−+ ε ii

ội tụ của phương pháp Gauss-Seidel

Hệ phương trình có ma trận lặp B thỏa mãn một trong các điều kiện sau đây thì quá trình

b) Điều kiện h

lặp sẽ hội tụ:

(i) 1max <= ∑ ijib (

11

=

n

jr 5-2.4)

57

Page 58: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

(ii) 1 (6-2.4) max1

2 <= ∑=

n

iijj

br

23 <= ∑∑

n

ij

n

br (7-2.4)

Ví dụ 1-2

i đây giải hệ

−+−=+

+

+

25,25,0

125,025,0

6,2,

(21

)1(3

)(3

)1(2

)()(2

)1(1

kk

kk

kkk

xx

xxx

xx

cho thấy phương pháp Gauss-Seidel th ụ nhanh. k k k )(k

3 0.9948 -0.9951 1.0001 0.0052

009

5 1.0000 -1.0001 1.0000 0.0001

-1.0000 1.0000 0.0000

Ví dụ 2-2.4.

Giải hệ cho dưới dạng ma trận [A, b] với sai số không ượt quá 10-3.

p dụng công thức (4-2.4) ta có

⎧ +−−= 11.02.0 321 xxx

(iii) 111 == ji

.4.

Bảng kết quả tính toán dướ

⎪⎩

⎪⎨

=++−=−+=+−

4444

825

321

321

321

xxxxxxxxx

theo công thức (4-2.4) thì

⎪⎩

⎪⎨

+−−= ++ 10 )1)1(1

kx

+−=+

14,00)1(

3k

x

ực sự hội t

k 1x 2x 3x || xx)( )( )(∞− ||

1 1.6000 -1.4000 0.9500 0.6000

2 0.9400 -0.9975 1.0144 0.0600

4 1.0009 -1.0002 0.9998 0.0

6 1.0000

v

⎥⎥⎥

⎢⎢⎢

81011102101101210

Á

⎪⎩

⎨+−−=+−−=

8.01.01.02.12.01.0

213

312

xxxxxx ⎪

Ta có

58

Page 59: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎥⎥

⎢⎢ −−= 2.001.0B , ⎟⎜= 2.1g

⎤⎡ −− 1.02.00⎟⎞

⎜⎛ 1

⎥⎦⎢⎣ −− 01.01.0 ⎠⎝ 8.0⎜ ⎟

13,0max1 <== ∑n

ijbr thỏa mãn điều kiện hội tụ nên ta có thể áp dụDo 1=

ng phương pháp Gauss-

Seidel. Chọn x = (0, 0, 0) thay vào ta được x = (1, 1.2, 0.8) , tương tự tính x2, x3, .. và bảng kết

1.2 0.8

0.754 1.016 0.638

4 0.733 0.997 0.623

5 1.002 0.627

6 0.737 1.001 0.626

7 0.737 1.001 0.626

Nghiệm 1, 0.626) vì |xi - xi | < 10 ∀ i = 1,2,3.

c) Thu

Input: n, ma tr trình.

Outpu

Algorit

. Nhậ i (

3. Nhập nghiệ

iệm thứ k+1 là y = (y1, y2, ...yn) */

top = true

4.2. Tính các thành phần yi cho nghiệm tiếp theo, với i = 1 n

ng S = 0

) Với j = 1 n

ếu (j ≠ i) thì gán S = S + aij * xj

c) yi = (ai,n+1 - S)/aii

d) Nếu |yi - xi| ≥ ε thì gán stop = f

e) Thay xi = yi

Lặp quá trình trên đến khi stop = true

ji

t t0 1

quả là

k x1(k) x2

(k) x3(k)

1

2 0.68 0.94 0.58

3

0.738

7 6 -3 của hệ là x = (0.737, 1.00

ật toán Gauss-Seidel

ận a(n,n+1) là ma trận các hệ số, cột n+1 là vế phải của phương

t: véct tơ nghiệm x.

hm:

1 p n, a i=1 n; j = 1 n+1)

2. Nhập sai số ε

m xuất phát x = (x1, x2, ...xn)

/* Ta gọi nghiệm thứ k là x, ngh

4. Lặp quá trình sau đây

4.1. Khởi tạo s

a) Khởi tạo tổ

b

N

alse;

59

Page 60: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

5. Xuất xi (i = 1 n)

2.5. Phư p

Biến đổi hệ phương trình

⎪⎪⎨

=+

=+++=+++

+

+

+

1,

1,22222121

1,11212111

.................

nnnnn

nnn

nnn

axa

axaxaxaaxaxaxa

(1-2.5)

...0...

22111,

22221211,2

12121111,1

nnnnnnn

nnn

nnn

xaxaxaa

xaxaxaaxaxaxaa

=−−−

=−−−−

0.............

0...

2211

2323

nnn xxbxb

xbxb

(3-2.5)

=−−−−

=−−−−

+00

22111,

02

02

0323

0121

......

...

nnnnn Rxxbxbb

Rxxbxb (4-2.5)

ư sai khác giữa nghiệm x0 và nghiệm đúng của hệ.

Tìm Rs0 = max {|R1

0|, |R20|, ..., |Rn

0|} và làm triệt tiêu phần tử đó bằng cách cho xs một số gia δxs = Rs

0, nghĩa là xs1 = xs

0 - Rs0.

Tính lại các số dư:

1 (5-2.5) R = R - b * xs = Ri - bi,s

* Rs0 (i = 1, 2, ..., n) (6-2.5)

rên cho đến khi |Rik| < ε (∀i=1, ..., n) thì xk = (x1

k, x2k, ..., xn

k) là nghiệm của hệ.

ơng phá giảm dư a) Mô tả phương pháp

⎪⎩ ++ 2211 ...nn xaxa⎪

về dạng

⎪⎪⎩

⎪⎪⎨

=−−−−

=−−−−=−−−−

+

+

+

0..............0

(2-2.5)

Chia hàng i cho aii ≠ 0, thu được hệ có dạng

⎪⎩ −+1,nnb⎪

⎪⎪⎨

⎧=−−−−+

+

.0...1211,2

13132121,1

n

n

xxbxbbxb

Cho vectơ (cột) nghiệm ban đầu là tnxxxx ),...,,( 00

2010 =

Vì x0 chưa phải là nghiệm, nên

⎪⎪⎧ =−−−−

+

+

1,2

01

01

0313

02121,1 ...

n

n

bRxxbxbb

⎪⎪

00

........

⎩ n

R10, R2

0, ..., Rn0 là các số d

Rs = 0 1 0 δ 0

i i i,s

Cứ tiếp tục quá trình lặp t

60

Page 61: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Ví dụ 1-2.5. Giải hệ cho bởi ma trận [A,b] sau

⎣ − 81011

Giải: Biến đổi về dạn

+

01.01.08.002.02.07.002.02.06.0

31

21

12

xxxxxxxx

Cho x0 = (0, 0, 0) R0 = (R 0, R 0, R30) = (0.6, 0.7, 0.8)

R30 = max{|Ri

0 } = 0.8, ∀i =1, 2, 3.

x31 = x3

0 + R30 = 0.8

Tính lại các số dư: R31 = 0

R11 = R1

0 + b13.R30 = 0.6 + 0.2 × 0.8 = 0.76

R21 = R2

0 + b23 30 = 0.7 + 0.1 × 0.8 = 0.78

R1 = (R11, R , R3

1) = (0.76, 0.78, 0)

Tương tự, ta có bảng kết quả

x2 x3 R1 R2 R3

⎥⎦⎥⎥

⎢⎢ −− 71102

⎤⎡ −− 62210

hệ g

⎪⎩

⎪⎨

=−++=−++=−3x+

2

3

1 2

|

.R

21

x1

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 của hệ là x = (1, 1, 1).

b) Thuậ

Input: ác hệ số, cột n+1 là vế phải của phương trình.

Outpu ct tơ nghiệm x.

t toán Giảm dư

n, ma trận a(n,n+1) là ma trận c

t: vé

61

Page 62: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Algorit

. Biến ề dạng (3.14)

[i,i];

}

. Khởi tạo đầu lặp continue = true

max = |r[1]|; k = 1;

if (max < |r[i]|) {max = r[i]; k = i;}

7. Xuất nghiệm x[i], (i= 1, 2, …, n)

Lưu ý:

- Nếu các p ội tụ càng nhanh.

hm:

1. Nhập n, aij, xi

2 đổi hệ từ dạng (3.13) v

3. for i = 1 n

{ for j = 1 n+1

if (i!=j) a[i,j] / a

a[i,i] = 1;

4. Tính r[i] ban đầu (i = 1, 2, …, n)

for i = 1 n

{ r[i] = a[i, n+1];

for j=1 n

r[i] = r[i] - a[i,j] * x[j];

}

5

6. Lặp khi continue = true

continue = false;

/* Tìm rs = max{|r[i]|, i = 1, 2, ..., n} và tính lại xs */

for i = 1 n

x[k] = x[k] + r[k];

/* Tính lại r[i] và 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]| ≥ ε) continue = true;}

- Phương pháp chỉ thực hiện được khi aii ≠ 0, nếu không phải đổi hà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.

hầ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

62

Page 63: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

2.6. Vấn đề ổn định của nghiệm của hệ phương trình Trong nhiều trường hợp người ta thu được hệ phương trình đại số tuyến tính

Ax = b (1-2.6)

là khá phức tạp cho nên ó người ta thu được không phải là hệ (1-2.6), mà là hệ phương và vế phải nhiễu b+δb. Và tất nhiên nghiệm của hệ nhiễu này bây

giờ khôn

Vấn đề đặt ra là liệu sự thay đổi δx của nghiệm có phụ thuộc liên tục vào sự thay đổi của dữ kiện đầu vào là δA và δb hay không, tức là khi dữ kiện đầu vào thay đổi ít thì liệu nghiệm có

y ra hiện tượng “sai một ly đi ệm.

=+ 1 2x x

21

có nghiệm là x1= 1, x2 = 0. Hệ với nhiễu nhỏ của vế phải

21

Ví dụ 2-2.6. Hệ phương trình

+=+

1.0001x x

3 x x

21

1

2 đ

=+=

2.01 1.01x 2x

2 x

21

2

2 = 1. Nhưng hệ phương trình trên với sự thay đổi ít của ma trận A và vế phải

2 x 2x

21

trong đó các hệ số aij và bi được tính theo một công thức nào đó, có thểkhông tránh khỏi sai số. Khi đtrình với ma trận nhiễu A+δA

g phải là x mà là x+δx. Như vậy, ta có

(A + δA)( x+δx) = b+δb (2-2.6)

thay đổi ít không? Dưới đây ta chỉ ra một vài thí dụ, trong đó xảmột dặm”, cụ thể là sai số nhỏ của dữ kiện dẫn đến sai số lớn của nghi

Ví dụ 1-2.6. Hệ phương trình

⎩⎨ =+ 1 2.01x x

21 ⎧

⎩ 21

⎨⎧

=+=+

1.01 2.01x x

1 2x x

lại có nghiệm là x1= -19, x2 = 10, rất khác so với nghiệm của hệ đã cho.

⎩⎨ =+ 3 x x 21

⎧ =+ 3 x 1.0001x 21

có nghiệm là x1= 0, x2 = 3. Trong khi đó hệ với nhiễu nhỏ của ma trận A

⎩⎨⎧

= 3 2

có nghiệm là x1= 3, x = 0, rất khác so với nghiệm của hệ ã cho.

Ví dụ 3-2.6. Hệ phương trình

⎩⎨⎧ + 2x1

có nghiệm là x1= 0.5, x

⎩⎨⎧

=+ 2.05 x 2.01x21 =+

63

Page 64: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

lại có nghiệm là x1= 5, x2 = -8, khác xa so với nghiệm của hệ gốc đã cho.

Trong những thí dụ trên ta nói rằng hệ phương trình có nghiệm không ổn định.

3. Tính gần đúng giá trị riêng và véc tơ riêng của ma trận

ng của A nếu phương

n

ghiệm x = (x1, x2, …, xn) khác (0, 0, …., 0). Vectơ x ≠ 0 này được gọi là vectơ riêng ứng với

Chú ý trong cách viết Ax, x luôn hiểu là vecto cột.

Cho ⎡ 03

A . Ta thấy

Do đó tơ riêng là (1, 2) ∈ R2.

, ta viết Ax = λx thành Ax = λEx, x ∈ Rn, trong đó E là ma trận đơn vị cấp n. Do đó ta có

à giá trị riêng của A và hệ trên có nghĩa x ≠ 0 thì điều kiện cần và đủ là

det (A-λE) = 0 (3-3.1)

Đó là phương trình để xác định giá trị riêng

Định nghĩa 2-3.1. Phương trình (3-3.1) được gọi là phương trình đặc trưng của ma trận vuông A.

⎤⎡λ

λλ

123

100123

Vậy ph

3.1. Giới thiệu Định nghĩa 1-3.1: Giả sử A là ma trận vuông cấp n. Số λ gọi là giá trị riêtrình

Ax = λx, x ∈ R (1-3.1)

có ngiá trị riêng λ.

Ví dụ 1-3.1.

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡−

=⎥⎦

⎤⎢⎣

⎡21

363

21

1803

21

A ⎥⎦

⎤⎢⎣ −

=18

Vậy với x = (1, 2) thì Ax = 3x

giá trị riêng của A là 3 ứng với vec

Để tìm giá trị riêng của ma trận vuông A cấp n

(A - λE)x = 0 (2-3.1)

Đây là một hệ phương trình tuyến tính thuần nhất. Muốn cho λ l

của A.

Ví dụ 2-3.1. Hãy tìm các giá trị riêng của ma trận

⎥⎦

⎢⎣− 01

Giải: Ta có

⎤⎡=

23A

⎥⎦

⎤⎢⎣

⎡−−

−=⎥

⎤⎢⎣

⎡−A- λI = ⎥

⎦⎢⎣− 01

ương trình đặc trưng của A là

64

Page 65: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

det (A - λI) = λ−−1

λ− 23= λ2 - 3λ + 2 = 0

Suy ra λ = 1 và λ = 2 là các giá trị riêng của A.

Để tránh việc khai triển định thức đòi hỏi số phép tính lớn, khi tìm giá trị riêng λ ta có thể áp dụnđồng d ơ-rê-be-mit.

⎢⎢ ...

Khi đó

3.2. MĐịnh nghĩa 1-3.2. Ma trận B gọi là ma trận đồng dạng với ma trận A, kí hiệu là B ~ A, nếu tồn tại ma trận không suy biến M (tức det M ≠ 0) sao cho B = M-1AM.

Tính chất:

A ~ B B ~ A

3.3. T g phương pháp Đa-nhi-lép-ski a) Mô t p tìm giá trị riêng

Mục tiê .

Thực h

⎥⎥

⎦⎢⎢

⎢⎢

⎣ 1000...

0...10

,2,1, nnnn aaa

Hàng thứ n-1 của M ng hàng thứ n của A, nói cách khác ta có:

g phương pháp Đa-nhi-lep-ski. Trong phương pháp này, ta chỉ cần tìm ma trận B sao cho B ạng với ma trận A và B có dạng là ma trận Ph

⎥⎦⎢⎣ 01...00

giá trị riêng của A cũng là giá trị riêng của B.

a trận đồng dạng

⎥⎥⎥⎥

⎢⎢

= 00...1000...01

P (4-3.1)

⎥⎤

⎢⎡ −... 121 nn pppp

....

A ~ B, B ~ C A ~ C

A ~ B Giá trị riêng λ của A và B trùng nhau.

ìm giá trị riêng bằnả phương phá

u cần đạt được là đưa ma trận A về dạng ma trận Phơ-rê-be-mit

iện n - 1 lần biến đổi:

Lần biến đổi 1: Tìm M-1, M sao cho A1 = M1 A M ~ A và dòng thứ n của A1 có dạng là 0 0 0 ... 1 0. Tính M-1 và M có dạng như sau:

⎤⎡ 0...01

⎥⎥⎥⎥

⎢⎢=− ......1M (1-3.3)

-1 jnjn AM ,

1,1 =−

− bằ

65

Page 66: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎡ ...01

⎣ 0

−−=

−−−−

10...0

1...

......00...1000

1,

,

1,1,1,

1,

nn

nn

nnnnnn

n

aa

aaaaM (2-3.3)

G i phần tử biến đổi của ma trận A ứng với lần thứ nhất là phần tử ở hàng n và cột n - 1. thứ n-1 của M bằng hàng thứ n của A chia cho phần tử biến đổi và thương mang . Riêng phần tử trong M ở vị trí tương ứng với phần tử biến đổi của A thì mang

dấu dương và bằng 1 chia cho phần tử biến đổi. Nói cách khác ta có:

.2,na

ọHàng dấu âm

⎪⎪⎩

−≠−−

11,

njifa nn

⎪⎪⎨

⎧ −=

= −−

11

,

1,,1 a

nja

Mjn

nnjn (3-3.3)

A1 = M-1 A M ~ A (4-3.3)

• tương tự: Chọn M-1, M sao cho A2 = M-1 A1 M ~ A1 và dòng thứ

n -1 của A2 có dạng 0 0 0 ... 1 0 0. Phần tử biến đổi của A ứng với lần thứ hai ở trên hàng n - 1và cột n - 2.

- Hàng thứ n - 2 của M-1 sẽ bằng hàng thứ n - 1 của ma trận A.

- Hàng thứ n - 2 của M bằng hàng thứ n -1 của A chia cho phần tử biến đổi và thương mang dấu âm. Riêng phần tử trong M ở vị trí tương ứng với phần tử biến đổi của A thì mang dấu dương và bằng 1 chia cho phần tử biến đổi.

• n n - 1 ta nhận được ma trận An-1 ~ A và có dạng ma trận Phơ-rê-be-mit P.

121 nn

ị định thức của P - λE là

det (P pn-1λ - pn)

det (P

Giải ph . Chú ý rằng P = M-1AM.

Ví dụ 1-3.3. T

if

Lần biến đổi 2

Tại lần này:

Ta thu được A2 ~ A1, A1 ~ A A2 ~ A.

• ...

Lần biế đổi thứ

⎥⎥

⎢⎢ ....... ⎥

⎥⎢⎢= 00...10P

⎥⎥

⎢⎢ 00...01

⎤⎡ ... pppp

⎦⎣

01...00

Khi đó giá tr

- λE) = (-1)n (λn - p1λn-1 - … -

- λE) = 0 ⇔ λn - p1λn-1 - … - pn-1λ - pn = 0.

ương trình trên ta suy ra được các giá trị riêng λ

ìm giá trị riêng của ma trận

66

Page 67: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎥⎥⎥

⎢⎢= 131A , n = 3

2

Ta tìm ma trận

01

2ppP

Lần 1, chọn

−1M

⎡ 012

⎢⎣0 1

Phơ-rê-be-mit:

⎥⎦01⎥⎥00 ⎤31 p

⎢⎢⎢

⎡=

⎥⎥

⎢⎢

010,

⎥⎢= 210⎡ 001

⎥⎥⎥

⎢⎢⎢

⎡−=

⎥⎥⎥

⎢⎢ −−=

11M ⎢

⎡1001

⎣ ⎣ 100210

001

10012

0

-1 ủa A chia cho phần tử

⎢⎢⎣

⎡ −

010

212

Lần 2,

⎤−05

,

Trong đó : dòng 2 của M là dòng 3 của A. Dòng 2 của M bằng dòng 3 ccột 2 lấy dấu âm, trừ vị trí ở chính cột 2 thì bằng 1 chia cho nó.

A1 = M-1 A M = ⎥⎢ − 551 ⎥⎥

chọn

⎥⎥⎥

⎢⎢⎢

⎡ −=

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

⎡ −−−

=100010551

10001015

15

11

M ⎥⎥⎦⎢

⎢⎣ 100

⎢⎡

=− 1051

1M ⎥

Trong đó : dòng 1 của M-1 là dòng 2 của A. Dòng 2 của M bằng dòng 2 của A chia cho phần tử cột 1 lấy dấu âm, trừ vị trí ở chính cột 1 thì bằng 1 chia cho nó.

⎦⎢⎢⎣

010

Vậy giá trị riêng là nghiệm của phương trình λ3 - 7λ2 + 14λ - 8 = 0

λ = 1;

i,j , n)

ng của ma trận A = (ai,j)

rithm:

1 (i,j = 1, 2, ..., n)

A2 = M-1 A M = P=⎥⎤

⎢⎡

0018147

⎥⎥

⇔ (λ - 2)(λ - 1)( - 4) = 0 ⇔ λ = 2; λ λ = 4.

b) Thu t toán Đan-nhi-lep-ski tìm giá trị riêng

Input: n, ma trận A= (a ) (i,j = 1, 2, ...

Output: Các giá trị riê

Algo

. Nhập a, ai,j

67

Page 68: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

2. Định nghĩa hàm nhân 2 ma trận vuông cấp n: Nhân(input: X, Y, output: Z)

3. Lặp k = n - 1 1 (phần tử biến đổi là ak+1,k)

/* Tính hai ma trận M và M1 (M1 là nghịch đảo của ma tr n M*/

for i = 1 n

for j = 1 n

k

= 1; M1[i, j] = 1}

else {M[i,j] = 0; M1[i,j] = 0}

] = 1/a[k+1, k];

else M[i,j] = - a[k+1, j]/a[k+1, k]}

Lần 1: Nhân(input A, M, output: B)

ut: M1, B; output: A)

4. Xuất a (i,j = 1 n)

3.4. T phương pháp Đan-nhi-lep-ski ương pháp

Gọi y là vectơ riêng của ma trận P ~ A

Ta có E)y = 0

Py = λEy

Nhân hai vế với M:

M.M-1.A.M.y = M..λ.E.y

A.M.y = λ.E.M.y

Đặt vectơ x = My: (1-3.4)

Ax = λEx

Vậy x là vectơ riêng của A Tính x theo công thức (9-3.3) trong đó M và Y xác định bởi các công ức sau:

if i ≠

if (i = j) {M[i, j]

else {M1[i,j] = a[k+1, j];

if (j = k) M[i,j

/* Gọi hàm nhân 2 lần */

Lần 2: Nhân(inp

i,j

ìm vectơ riêng bằnga) Mô tả ph

(P - λ

M-1.A.M.y = λ.E.y

th

1211

112

11 ...... −

−−−

−−

và M-1 xác định ở lần biến đổi thứ i

Xác định vectơ

(P - λE

= nnn MMAMMMMP ,

Mi và Mi-1 là ma trận M

và M = M1M2…Mn-1 (2-3.4)

y nhờ phương trình

)y = 0

68

Page 69: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

hay

0.1

1

⎢⎢⎢⎢

⎡ −

=

p

P

λ

hay

−−

0...

00...(

1

21

111

nn

nnnn

yy

yyypypp

λ

λ

n-1

yn-2 = λyn-1= λ2, ..., y1 = λn-1

Vậy

y = (λn-1, λn-1, ..., λ, 1) (3.3.4)

Ví dụ 1-3.4. Tìm vectơ riêng của A

A =

Gọi y là vectơ riêng của ma trận Phơ-rê P ~ A. Ở ví dụ 3.18 ta đã tìm được 3 giá trị riêng, nên ta có

λ1 = 2 y1 = (4, 2, 1)

λ y2 = (1, 1, 1)

λ3 = 3 y3 = (16, 4, 1)

Tìm M :

M = 00

210551

100010551

010210

001

21 MM

x = M y. Ứng với 3 giá trị riêng, ta có 3 vectơ riêng

⎦⎢⎢⎣⎥

⎥⎦⎢

⎢⎣ 1

01

11002

0.........⎥⎥

⎢⎢

⎥⎥

00... 2 =⎥⎥

⎢⎢

⎥⎥− yλ

... 112 ⎤⎡⎤− nn yppp

1...0 ⎦⎣⎦− nyλ

⎪⎪⎩

⎪⎪⎨

=−

=−=++++) 221 ypyλ

cho yn =1 y = λ.

⎥⎥⎥

⎢⎢⎢

210131012

-be-mit

2 = 1

⎥⎥⎥

⎢⎢⎢

⎡−

−=

⎥⎥⎥

⎢⎢⎢

⎡ −

⎥⎥⎥

⎢⎢⎢

⎡−=

1

⎥⎥⎥

⎢⎢⎢

⎡−=

⎥⎥⎥⎤

⎢⎡

⎥⎤

⎢⎡

−−

= 24

10551

1x

69

Page 70: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎥⎥⎥

⎢⎢−=⎥

⎥⎢⎢

⎥⎥

⎢⎢⎢

−= 1100

2102x ⎤⎡⎤⎡⎤⎡ − 11551

⎦⎢⎣⎥⎦⎢⎣⎥⎦ 111

−=121

14

16

100210

55x

)

ectơ riêng

ần khởi tạo và trong vòng lặp k

1. Khởi tạo B1 = E

. Lặp k = n - 1 1

/* Gọi hàm nhân 3 lần */

Lần 1: Nhân(input: A, M; output B)

Lần 2: Nhân(input: B1, M; output: A)

Lần 3: Nhân(input: B1, M; output: B)

/* Gán lại ma trận B1 = B */

3. Xuất ai,j và bi,j

BÀI TẬP 1. Giải các hệ phương trình Ax = b sau đây bằng phương pháp khử Gauss. So sánh với nghiệm đúng x*

a) , .

b) ,

c) , .

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢⎡ −1

3

Vậy các vectơ riêng của A là x1 = (-1, 0, 1) ; x2 = (1, -1 , 1) và x3 = (1, 2, 1

b) Thuật toán tìm v

Ta bổ sung vào thuật toán tìm giá trị riêng ở hai chỗ : ph

2

/* Tính 2 ma trận M, M1 như thuật toán tìm giá trị riêng*/

⎟⎟⎟

⎜⎜⎜

⎛=

⎟⎟⎟

⎜⎜⎜

⎛=

6411

'10 2 3-1- 3 1 1 0 5

bA⎟⎟⎟

⎜⎜⎜

⎛=

112

*x

⎟⎟⎟

⎜⎜⎜

⎛−=

⎟⎟⎟

⎜⎜⎜

⎛=

32

3'

4 1- 1 1 3 1- 1- 0 2

bA⎟⎟⎟

⎜⎜⎜

⎛−=

101

*x .

⎟⎟⎟

⎜⎜⎜

⎛=

⎟⎟⎟

⎜⎜⎜

⎛=

421

'3 1 1 1 3- 1 1- 0 2

bA⎟⎟⎟

⎜⎜⎜

⎛=

101

*x

70

Page 71: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

d) ⎟⎟⎞

⎜⎜⎛−

=⎟⎟⎟

⎜⎜⎜

⎛−−

=⎟⎟⎟

⎜⎜⎛

= 01

*,242

'3 1- 2- 5 2 0 1- 2

xbA . ⎟⎠

⎜⎝

⎜⎝ 1 1

e) ⎟

⎜⎜

−=

⎠⎝

=202

*,44

'1 3 1- xbA .

⎜⎜−−

=⎟⎟

⎜⎜−=⎟

⎟⎜11

*,61

'0 1 51- 1 2 2

xb .

ng trình

, .

Tìm nghi auss.

ội tụ của nó.

6. Sau các phép biến đổi thích hợp hãy sử dụng phương pháp lặp Gauss-Seidel giải hệ phương trình sau với sai số 10-3

1 2 3 4

2 3 4

2 7 3 2 15

2 9.

x x xx x x x

x x x

+ +

⎟⎟⎟

⎜⎜⎜

⎛−=

⎟⎟

⎟⎟

⎜⎜

43 1- 1

⎟⎞

⎜⎛

⎟⎞

⎜⎛

⎟⎞

⎜⎛ 141 1- 0 3

⎜⎛

⎟⎞

⎜⎛ 1 1- 3

f) ⎜= - 2 A

⎟⎟⎠

⎜⎜⎝

⎟⎟⎠

⎜⎜⎝

⎟⎟⎠

⎜⎜⎝ 011 1- 1 1

⎟⎟

3. Cho hệ phươ bAx = với

⎥⎥⎥

⎢⎢⎢

⎡=

2 1- 0 1- 2 1- 0 1- 2

A⎟⎟⎟

⎜⎜⎜

−=

35 1

b

ệm của hệ bằng phương pháp khử G

Hãy đề xuất một phương pháp lặp giải hệ trên và biện luận sự h

1 2 3 43 9 10x x x x+ + + =

1 2 3 45 6x+ =

14x

+ + + =

+ + =

p s

10x− =

phương pháp đồ hị giải hệ phương trình sau

+

7. Có thể áp dụng phương pháp lặ gì để giải hệ au đây và lý giải vì sao

1x 2

1 2 32 6x x x− + − =

2 3 42 10x x x− + − =

3 42 9.x x− + =

10. Dùng t

2 22 1.01 2.01

x yx y+ =+ =

1 20.5, 1.x x= = Giải thích vì sao nghiệm thu được có thể sai khác rất lớn so với nghiệm đúng là

71

Page 72: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Chương 5 TÍNH GẦN ĐÚNG ĐẠO HÀM H PHÂN

1. Tính gần đúng đạo hàm

Giả sử là hàm trơn trên

VÀ TÍC

)(xf đoạn ],[ ba và ,,0, niihax =+= trong đó /)( nabh −=i là các ,

điểm mốc cách đều nhau. Cho gía trị của hàm tại các điểm lưới trên: ),0( nifyi == . Khi

đó có thể tính gần đúng đạo hàm cấp một của hàm tại các điểm lướ

)(xi

i nhờ các công thức đạo hàm

sai phân sau.

1.1. Đạo hàm cấp 1 - Đạo hàm sai phân tiến: thường để tính gần đúng đạo hàm tại điểm biên y’(x0)

)1,0(1, −=

∆− yyy== + ni

hhy iii

ix (1-1.1)

n - Đạo hàm sai phân lùi: thường để tính gần đúng đạo hàm tại điểm biên y’(x )

),1(1, ni

hy

hyy

y iiiix =

∇=

−= − (2-1.1)

- Đạo hàm sai phân trung tâm: thường để tính gần đúng đạo hàm tại các điểm trong

)1,1()(2111

,

−= −+ yyy ii

ixο 2 ,, −=+= niyy

h ixix (3-1.1.)

như sau: Sai số của các đạo hàm sai phân trên được đánh giá

)()(', Oxfy iix =− h , (3-1.1)

)()(',

hOxfy iix=− , ( 1) 5-1.

)()(' 2

,0 hOxfy i

ix=− . (6-1.1)

1.2. Đạo

hà cấp hai của hàm tại các nút có thể dùng công thức đạo hàm sai phân

sau

hàm cấp hai

)(xf ixĐể tính đạo m

2, hixx 11 2 yyyy iii −+ +−

= )1,1( −= ni (7-1.2)

ủa công thức trên được ước lượng như sau Sai số c

)()('' 2,

hOxfy iixx=− (8-1.2)

inh nhờ khai triển Taylor đến thành phần chứa đạo hàm cấp 4 với giả thiếƯớc lượng trên được chứng m

t ].,[)( )4( baCxf ∈

72

Page 73: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Để xây d ng các công thức hàm v i sai cấp ó ước lượng tại các

cũng như tính đạo hàm cấp cao hơn ta sẽ sử dụng công cụ nội suy hàm số.

2. Tính gần đúng tích phân

2.1. Giới thiệu bài toán là hàm số liên tục trên đoạn . Cần tính

Trong giáo trình giải tích có thể tính tích phân trên một cách đơn giản nhờ công thức Newton- Leibnitz

−=∫

thực tế ta gặp các hàm mà nguyên hàm của nó không thể biểu diễn bằng ợc nguyên hàm của chúng. Trong những trường hợp ấy

công thức (2-2.1) không có tác dụng thế người ta p i tìm cách tính gần đúng tích phân xác định.

Tính gần đúng tích phân còn có ý nghĩa khi hàm không cho ở dạng biểu thức toán học mà cho dưới dạng bảng số.

Ý tưởng cơ bản của các phương pháp tính gần đúng tích phân là chia nhỏ khoảng tích phân thành các đoạn con và trên mỗi kho xấp xỉ hàm một đa thức. Với các đa thức ta có thể tìm được các nguyên hàm của c o đó có thể g công thức Newton- Leibnitz tính tích phân trên mỗi đoạ đo ẽ là tổng các tích phân trên từng

.2. Công thức hìn m a) Thiết lập công thức

)( 2hOự tính đạo ớ số 2 tức là c

điểm mút 0x và nx ,

Cho )(xf ],[ ba

dxxfIa

)( (1-2.1) b

∫=

toán học ta biết rằng nếu )(xf có nguyên hàm là hàm )(xF thì

a

(2-2.1)

Tuy nhiên trong

).()()( aFbFdxxfb

)(xfcác hàm số sơ cấp hoặc ta không tìm đư

. Vì hả

)(xf

],[ ba ảng con số bởi húng, d áp dụn

n con. Tích phân trên toàn ạn ],[ ba s

khoảng con.

2 h chữ nhật trung tâ

Chia đoạn ],[ ba thành n đoạn con )1,0(],[ 1 −=+ nixx ii bởi các điểm ),0(, niihaxi =+= với

Ký hiệu ./)( nabh −= )(2 1+ii1

2/1+ +=i xxx là điểm giữa của mỗi đoạn con.

Ta có

0

)()(i xa

dxxfdxxfi

(1-2.2.) ∑−

=

+

∫=∫1 1n xb i

Ta xấp xỉ

hxfdxxf ixi

)()( 2/1+≈∫ xi 1+

(2-2.2)

73

Page 74: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Về mặt hình học, điều đó có nghĩa là hình thang cong giới hạn bởi đường cong trên

đoạn được xấp xỉ bởi hình chữ nhật trung tâm với đường cao bằng giá trị của hàm

tại điểm giữa .

Từ (1-2.2) và (2-2.2) suy ra công thức hình chữ nhật trung tâm tính gần đúng tích phân xác định trên đoạn [a = x0, xn = b]:

)(xfy =],[ 1+ii xx )(xf

2/1+ix

∑−

+≈1

02/1 )(

n

=iCN hxfI (3-2.2)

b) Đánh giá sai số:

đã chứng minh được ước lượng sai số địa phương là:

i

Người ta

.24

32 hei ≤ M

(4-2.2)

trong đó:

.)(''max2 xfM≤≤

= bxa

(5-2.2)

Từ đó suy ra ước lượng của sai số toàn phần của công thức hình chữ nhật trung tâm là

22 )(24

habME −≤ (6-2.2)

c) Thí dụ

Tính gần đúng tích phân

∫ +=

1

0 1 xdxI bằng công thức hình chữ nhật trung tâm với số đoạn chia n

=5 và đánh giá sai số.

ập bảng giá trị

i+1/2 i+1/2

Giải. Với h = 0.2 ta l

i+1/2 x y

0 0.1000 0.9091

1 0.3000 0.7692

2 0.5000 0.6667

3 0.7000 0.5882

4 0.9000 0.5263

Σ=3.4595

Theo công thức (3-2.2)

hcnI ∑=

+=4

02/1

iiyh =0.2* 3.4595 = 0.6919.

Bây giờ ta ước lượng sai số của giá trị tính được. Ta có

74

Page 75: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

32 )1()('',

)1(1)('

xxf

xxf

++−= .

Do đó

2=

2)(''max102 ==≤≤

xfMx

. Theo công thức (6-2.2) ượng sai số ta có ước l

.0033.0)2.0(242|| 2 =≤E Vậy I = 0.6919 0.0033 = (0.6886, 0.6952) trong khi giá trị đúng của

tích phân là I = ln 2 = 0.6931.

2.3. Công thức hình thang a) Thiết lập công thức

Ta thay hình thang cong bởi hình th ư trong hình sau đây:

Khi đó

±

ang thẳng nh

( ) ,1)(1

hyydxxfxi

+≈∫2 1ii

xi+

+

(1-2.3)

trong đó để viết cho gọn ta đã ký hiệu )( ii xfy = . Do đó

( )∑−

=

+≈∫= .)( yydxxfI

h thang tính gần đúng tích phân xác định là

+0

12iii

a

1nb h

Vậy ta có công thức hìn

⎟⎠⎞

⎜⎝⎛ +++

+≈ −11

0 ...2 n

n yyyhI

Có thể viết (2-2.3) trong dạng

ht y (2-2.3)

⎟⎠

⎞⎜⎝

⎛ +−≈= ∑

= 20

0

nn

iiht

yyyhI (2’-2.3)

hoặc

( )nnht yyyynabI ++++

−≈ −110 2...2

2 (3-2.3)

yi yi+1

x0 x1 xi xi+1 xn

75

Page 76: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

b) Đánh giá sai số

Người ta a phương là đã chứng minh được ước lượng của sai số đị

.12

32 hMe ≤ i (4-2.3)

ần của công thức hình thang s Do đó sai số toàn ph ẽ là

.)(12

22 habME −≤ (5-2.3)

)("max0

2 xfMnxxx ≤≤

= Trong đó

c) Ví dụ

∫ +=

1

0 1 xdxITính gần đúng tích phân bằng công thứ ớ ố đo =10 và đánh

giá sai số.

c hình thang v i s ạn chia n

Giải. Ta có h = 0.1 và bảng giá trị

i xi yi

0 0.0000 1.0000

1 0.1000 0.9091

2 0.2000 0.8333

3 0.3000 0.7692

4 0.4000 0.7143

5 0.5000 0.6667

6 0.6000 0.6250

7 0.7000 0.5882

8 0.8000 0.5556

9 0.9000 0.5263

10 1.0000 0.5000

Σ=7.6877

Theo công thức (2’-2.3)

⎟⎠

⎞⎜⎝

⎛ +−≈ ∑ 0

10 yyhI= 2

10

0

yi

iht = 0.1 * (7.6877 – 1.5000/2 ) = 0.6938.

Bây giờ ta ước lượng sai số của giá trị tính được. Ta có

32 )1(2)x('',

)1()('

xf

xxf

+=

+−= . 1

76

Page 77: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

2 0 1max ''(f x) 2

xM

≤ ≤= = công .3) ta có ướ lượng sai số . . Theo thức (5-2 c Do đó

.0017.0)1.0(122|| 2 =≤E

Vậy I = 0.6938 ± 0.0017 trong khi giá trị đúng c a tích phân là I = ln 2 = 0.6931.

2.4. Công thứ pso công arabol) a) Thiết lập công th

Cũng như ở trên [a h n đ bằng nhau bởi các điểm

c Sim n (hay thức Pức

ta chia ],b thàn oạn con ihaxi += với

và ký hiệu ểm giữa c a đoạn con . Trên mỗi đoạn con ta sẽ

xấp xỉ hàm fy = i đa ậ điểm

nabh /)( −= ix ,[ 1+ii xx ]2/1+ là đi ủ

)(x bở thức nội suy b c hai tại các i , x 2/1+ix , 1+ix

).)((22/112 ++ −−+

))(())(( 12/1212/12 ++++ −−−−−=42

))(())(

)()((

))(())()(

2/111

2/1

12/1

2/12

+++

+

++

+

−−−

)12/1 ++ −( 2/12/1

++ −

)1+)( 1+( −−+

− −−−

(1+

−+

=≈

iiii

i

i

i

iii

iii

h

xxxxxx

xxxxy

xxxxxyxLxf

ải cho ta

ii xxii x

ix

i

ixxx

ii

xxy

iiiiii xxxxyh

xxxxyh

iii xxxxy

Đặt

.)()( 2

11

dxxLdxxfI i

x

x

x

xi

i

i

i

i

++

∫≈∫=

Kết quả tính tích phân ở vế ph

( )12/146 ++ ++≈ iiii yyyhI

Khi đó ta có công thức Simson tính gần đúng tích phân xác định:

( )1

4−

++≈∑n

yyyhI 12/16 ++ iiisim (1-2.4)

ứ ận được nhờ thay đường cong y = f(x) ểm ( i i i+1/2, yi+1/2), (xi+1, yi+1).

0=i

Công thức (1-2.4) còn gọi là công th c parabol vì nó nhbởi parabol qua 3 đi x , y ), (x

Có thể viết lại công thức (1-2.3) trong dạng thuận tiện cho tính toán như sau

∑∑=

+=

+⎟⎠

⎞⎜⎝

⎛ +−≈simI

n

ii

nn

i yhyyyh0

2/10

32

23 (2-2.4)

Nhận xét 1. Đ g chỉ số không nguyên người ta thường chia đoạn [a, b] thành 2n phần bằng nhau với độ rộng h = (b - a)/(2n) và trên mỗi đoạn kép [x2i, x2i+2] xấp xỉ hàm f(x) bởi bởi parabol qua 3 yi+1), (xi+2, yi+2). Khi đó công thức Simpson có dạng:

i 0

ể tránh dùn

điểm (xi, yi), (xi+1,

77

Page 78: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

nnnsim yyyyyyn 106abI 4( +

−= 212222 42...2 +++++ −− (3-2.4)

Nhận xét 2.T (3-2.2), (3-2.3) và (2-2.4) suy ra được:

simI = (4-2.4)

b) Đánh giá sa

Người ng tỏ được rằng (xem sách Bakhvalov [5] trang 101).

ừ các công thức

3/)2 cnht II + . (

i số

ta đã chứ

( )2880

46

)( dxxf −∫5

412/1

1 hMyyyhe iii

x

xi

i

i

≤++= ++

+

(5-2.4)

trong đó

.)(max )4(4 xfM

bxa ≤≤= (6-2.4)

Từ công thức trên ta nhận được đánh giá sai số toàn phần của công thức Simpson

.2880

)( 44 habMIIE sim−

≤−= (7-2.4)

Từ đây ta thấy rằng công thức Simpson đúng cho mọi đa thức bậc 3.

c) Ví dụ

Tính gần đúng tích phân ∫ +=

1

0 1 xdxI bằng công thức Simpson với số đoạn chia n =5 và đánh giá

sai số.

Giải. Ta có h = 0.2. Lập bảng giá trị của hàm tại các điểm nút và điểm giữa

i xi yi yi

0 0.0000 1.0000

1/2 0.1000 0.9091

1 0.2000 0.8333

1+1/2 0.3000 0.7692

2 0.4000 0.7143

2+1/2 0.5000 0.6667

3 0.6000 0.6250

3+1/2 0.7000 0.5882

4 0.8000 0.5556

4+1/2 0.9000 0.5263

5 1.0000 0.5000

S1=3.4595 S2=4.2282

78

Page 79: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Theo công thức (2-2.4) ta có

∑∑== ⎠⎝ 00 323 ii

++⎟⎜ −= 2/1iisim yyI

= 0.2 * (4.2282 – 0.75) / 3 + 2 * 0.2 * 3.4595 / 3 = 0.69314667

ủa tích phân là I = ln 2 =0.69314718. Như vậy, sai số thực sự của Isim là

4). Ta có

⎞⎛ + 4550 2hyyh

trong khi giá trị đúng c0.00000051.

Bây giờ ta ược lượng sai số theo công thức (7-2.

)4( 2415)1()1( xx ++

Do đ

)(,)( xfxf == .

ó 24.)(max )4(

104 ≤≤x== xfM và ta có đánh giá

42.02880

)01(24×

−×≤−= simIIE = 0.00001333.

Kết quả tính toán và ước lượng trên cho thấy công thức Simpson có độ chính xác rất cao (so sánh với kết quả tính bằng công thức hình thang ểu mục trước!).

2.5. Các thuật toán “hcn, ht, sim” tính gần đúng tích phân xác định

thang, và Simpson.

Icn=f(x1); Iht=f(x2);

2. Lặp for i=1 n-1

2.1. x1=x1+h;

2.2. x2=x2=h;

2.4. Iht=Iht+f(x2);

h*Iht;

4. return Icn, Iht, Isim

ở ti

Input: a, b, n, hàm )(xf trên đoạn ],[ ba

Output: Ihcn, Iht, Isim là các giá trị gần đúng của tích phân dxxfIa

)(∫= tương ứng bởi các

công thức hình chữ nhật trung tâm, hình

b

Algorithm:

1. Khởi tạo

h=(b-a)/n;

x1=a+h/2; x2=a;

2.3. Icn=Icn+f(x1);

3. Gán

Icn=h*Icn;

Iht=

Isim=(Iht+2*Icn)/3;

79

Page 80: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Chương 6 BÀI TOÁN QUI HOẠCH TUYẾN TÍNH

1. Giới thiệu bài toán tối ưu tổng quát

1.1. Ví dụ mở đầu a) Phát biểu bài toán

. Một công ty sản xuất 2 loại sản phẩm A và B

. Sử dụng ba loại nguyên liệu I, II, và II.

. Chi phí nguyên liệu (số lượng nguyên liệu) để sản xuất ra hai sản phẩm A và B cho trong bảng sau:

Sản phẩm A B

Nguyên liệu

I 2 1

II 1 2

III 0 1

. Công ty dự trữ ba loại nguyên liệu I, II, III với số lượng tương ứng là 8, 7, 3.

. Tiền lãi của một đơn vị sản phẩm A là 4 triệu đồng; của một đơn vị sản phầm B là 5 triệu đồng

ất bào nhiêu mỗi loại sản phẩm) để tiền lãi thu về nhiều nhất vớ ệu đã cho.

b) Mô hình toán học của bài toán

Xét vectơ cột x = (x1, x2)t, trong đó x1 và x2 lần lượt là số lượng sản phẩm A và B tương ứng cần h

=≥≤

≤+

2103

82

2

21

,j,xx

xx

j

Bài toá tính vì các hàm g1(x) = 2x1 + x2, g2(x) = x1 2 3 2

1.2. MBài toán tối ưu tổng quát P có dạng: Tìm phương án x = (x1, x2, ..., xn) ∈ X ⊂ Rn để cực đại hóa hàm f(x) sau đ

Yêu cầu: Lập kế hoạch sản xuất (sản xui hạn chế về nguyên li

sản xuất. Theo bài toán ta có mô ình:

f(x) = 4x1 + 5x2 max

⎪⎪⎩

⎪⎪⎨

≤+ 72 21 xx

n trên được xem là thuộc dạng bài toán qui hoạch tuyến + 2x , g (x) = x là các hàm tuyến tính.

ô hình bài toán tối ưu tổng quát t

ây:

∑=

xf max)( (1-1.2) →=n

jjj xc

1

80

Page 81: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎪⎩ =≥ ,1,0 jx j

⎪⎨

⎧−==≥≤=∑ )2.12(,1,),,()( mibxaxg

n

−=

)2.13(n

Trong ⊂ Rn : gi(x) (≤,≥,=) bi vớ

1,D j

ijjii

đó: D = {x = (x1,..., xn)t ∈ X i mi ,1= ; xj ≥ 0; nj ,1= } được gọi là tập các phương án chấp nhận được, chú ý rằng x là vectơ cột. Hàm f(x) được gọi là hàm mục tiêu. Vectơ dòng c = (c1, c2, ..., cn) là các hệ số của hàm mục tiêu. Ma trận A = (ai,j)i=1,..,m; j=1, ..., n là ma trận gồm m ràng buộc đối với phương án x. Phương phán x* ∈ D được gọi là phương án tối ưu (tức là nghiệm của bài toán) nếu f(x*) ≥ f(x) với ∀ x ∈ D.

Chú ý: Bài toán tìm min của hàm mục tiêu có thể chuyển thành bài toán tìm max bằng cách thay

1.3. D tBài toán QHTT tổng quát có hai dạng chuẩn tắc và chính tắc được định nghĩa như sau:

Dạng chuẩn tắc Dạng chính tắc

các hệ số của hàm mục tiêu là -cj.

ạng chuẩn ắc và dạng chính tắc

∑ →==

xcxf max)( n

jjj

1

⎪⎩

⎪⎨

⎧=≤= ∑

=≥=

njx j ,1,0

jjj xcxf

1max)( ∑

=

→=n

⎪⎩

⎪⎨

⎧===∑ mibxaxg

n

ijjii ,1,)( ,mibxaxgD

n

jijjii ,1,)(

1,

=≥=

njxD

j

j

,1,01

ết dưới dạng n như sau

jjj xc

1; x = (x1, x2, ..., xn)t; b = (b1, b2, ..., bn)t.

Các bài toán TT có ể qui về dạng ch ẩn tắc và d chính tắc nhờ các phép biến đổi sau đây :

u hai vế với -1

b'

≤∑

=

=n

jiji

j ba

ba

1,

1,

Hoặc vi ma trậ

f(x) = <c, x> max

⎨⎧ ≤ bAx

f(x) = <c, x> max

⎨⎧Ax

≥=

0xb

⎩ ≥ 0x ⎩

trong đó A = (ai,j)m × n; <C, x> = ∑n

=

QH th u ạng

(1) Một rạng b ộc ≥ đưa đ\ực về ràng buộc ≤ nhờ việc nhân

∑∑∑ ≤⇔−≤−⇔≥n

ji

n

iji

n

iji ababa ,,, '=== jjj 111

(2) Ràng buộc = tương đương với hai ràng buộc ≤ và ≥

⎧≥

n

i

⎪⎪⎩

⎪⎪⎨⇔=∑ =j

ijin

iji ba 1,

81

Page 82: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

(3) Đưa ràng buộc ≤ và ≥ về ràng buộc = nhờ việc thêm biến phụ

(i) ==

=−⇔≥n

jiiji

n

jji byaba

1,

1,

n

ột biến xj không phụ thuộc dấu có thể thay bằng hai biến phụ thuộc dấu

923473 3

xxxx

Thê b hụ thuộc dấu bởi hai biến phụ thuộc dấu: x3 + - + -

=≥=−−+=−−−−

−+

−+

3,2,1,02)(29)(234

321

531

4321

3

3

3

jxxxxx

xxxxx

j

2. Đặc điểm của tập các phương án của bài toán QHTT

2.1. Tập lồi và đa di n lồi Định nghĩa 1-2.1. Tổ Cho m điểm x1, x2, …, xm trong không gian Rm. Điểm x g i là tổ hợp lồi của các điểm xi, i =

∑ ∑i

(ii) ∑∑==

=+⇔≤j

iijij

iji byaba1

,1

,

(4) M

n

xj = xj+ - xj

- với xj+ và xj

- > 0

Ví dụ 1-1.3 Xét bài toán

f(x) = x1 + 4x2 -3x3 max

⎪⎪⎩

⎪⎨

=≥=−+

2,1,022 321

321

jxxxx

j

⎪⎧ ++2 21 xx

≥−−≤

m iến phụ x4 ≥ 0, x5 ≥ 0 và thay biến x3 không p= x3 - x3 với x3 , x3 > 0 ta được bài toán mới tương đương là một bài toán dạng chính tắc:

f(x) = x1 + 4x2 -3(x3+ - x3

-) + 0.x4 + 0.x5 max

⎧ =+−++ −+ 7)(32 xxxxx

⎪⎪⎩

⎪⎪⎨

2

ệ hợp lồi : ọ

m,1 nếu

∑=

=+++=i

iim

m xxxxx1

22

11 ... αααα

m

với mii ,1,0 =≥α và 11

=∑=

i điểm A và B ∈ Rn, kí hiệu là dAB, được định nghĩa là một tổ hợp lồi của tập hai điểm A và B, tức là:

dAB ∈ Rn | M = αA + (1-α)B, 0 ≤ α ≤ 1}

Ví dụ 1-2.1

n

iiα

Định nghĩa 2-2.1. Đoạn thẳng: Đoạn thẳng đi qua ha

= { M

Trong mặt phẳng R2:

82

Page 83: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

3 8

Đoạn thẳng dAB gồm các điểm M nằm giữa A và B, tức là:

Địn nbất kì tthì x = ].

Định nghĩa 4-2.1. Điểm cực biên: Xét các điểm x trong tập lồi S ⊂ Rn. Điểm x* ∈ S được gọi là điểm cực biên nếu x* không thể biểu diễn được dưới dạng tổ hợp lồi thật sự của hai điểm phân

R2, các đỉnh của các đa giác lồi là các điểm cực biên.

ập lồi đa diện

a các điểm là tổ hợp lồi của m điểm x1, …, xm nào đó cho trước.

ồi.

rong đa diện lồi, nếu ta loại bỏ những điểm mà nó có thể biểu diễn được dưới dạng tổ hợp lồi của các điểm x1, …, xm còn lại, thì các điểm còn lại đó chính là các điểm cực biên

Ví dụ 3-2.1 Trong mặt phẳng R2, các đa giác lồi là các đa diện lồi, trong đó mọi điểm bên trong đều có thể biểu diễn dưới dạng tổ hợp lồ của các đỉnh đa giác - các điểm cực biên. Nếu một đa giác không có cạnh thì phần mặt phẳng tạo bởi đa giác là một tập lồi đa diện.

dAB = { M ∈ R | M = αA + (1-α)B, 0 ≤ α ≤ 1}

h ghĩa 3-2.1. Tập lồi: Cho S ⊂ Rn. Tập S được gọi là một tập lồi nếu với hai điểm A và B rong S thì đoạn thẳng dAB nằm trọn trong S. Nói cách khác, với 2 điểm bất kì x1, x2 ∈ S αx1 + (1-α)x2 ∈ S với ∀ α ∈ [0, 1

Ví dụ 2-2.1 Trong mặt phẳng R2, các đa giác lồi là các tập lồi.

biệt trong S.

Ví dụ 3-2.1 Trong mặt phẳng

Định nghĩa 5-2.1. Đa diện lồi và t

• Đa diện lồi là tập S chứ

• Đa diện lồi là một tập l

• T

của đa diện lồi. Chúng sinh ra đa diện lồi.

• Tập lồi đa diện là một tập lồi không giới nội

i

x1

x2

x3

x5

x4

y1

y3

y5

y2

Đa diện lồi Tập lồi đa diện

-∞ +∞ A BM

A B

y4

83

Page 84: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

2.2. Đặc điểm của tập các phương án của bài toán QHTT Định lí 1-2.2. Tập tất cả các phương án D của bài toán QHTT là một tập lồi.

Chứng minh. Xét bài toán QHTT chính tắc (chuẩn tắc chứng minh tương tự). Lấy 2 điểm bất kì

Nhận xét: Tập phương án D là tập lồi, có ba khả năng

• ∅

• D là đa diện lồi (tập lồi bị chặn)

ương án tối ưu thì có ít nhất một phương án tối ưu.

Việc chọn phương án tối ưu tương đương với việc chọn các điểm cực biên của D (các a chỉ cần tìm trên các phương án

Ví dụ ý nghĩa hình học của định lý 1-2.2 qua lời giải “bài toán mở đầu” bằng phương

=≥ 2,1,0

21

jx

Cho đư5x2 chđa giácthỏa mãn các ràng buộc của bài toálớn nh

Bây giờ ộ ới A = (ai,j) .

Kí hiệu Aj là vectơ cột thứ j của ma trận A khi đó phương trình

x1, x2 ∈ D. Ta có Ax1 = b và Ax2 = b. Xét mọi điểm x mà x = αx1 + (1-α)x2 với α ∈ [0, 1] ta có Ax = A(αx1 + (1-α)x2) = αAx1 + (1-α)Ax2 = αb + (1-α)b = b, do đó x ∈ D. Vậy D là tập lồi.

D =

• D là tập lồi đa diện (tập lồi không bị chặn)

Hệ quả 1-1.2:

• Nếu D là một đa diện lồi khác rỗng thì bài toán QHTT chắc chắn có phương án tối ưu.

• Nếu D không giới nội nhưng hàm mục tiêu bị chặn trên D thì cũng chắc chắn có phương án tối ưu.

• Nếu D có ph

•đỉnh của D). Nói cách khác, để tìm phương án tối ưu thì tcực biên trong tập phương án D.

1-2.2. Minh họa pháp hình học

f(x) = 4x1 + 5x2 max

⎪⎪ ≤ 32x

⎩ j

ờng mức f(x) = 4x

⎪⎪ ≤+ 72 21 xx

⎧ ≤+ 82 xx

1 + uyển động trong miền (màu xám) là miền

n, thì f(x) đạt giá trị ất bằng 22 tại điểm

cực biên là đỉnh M(3, 2) của đa giác.

xét hệ ràng bu c Ax = b, v m × n

84

Page 85: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

( ) bx

AAAbAx =⎟⎟

⎜⎜⇔= ,...,, 2

x

x⎟⎞

⎜⎛ 1

n

n

⎟⎟⎠

⎜⎜⎝

...21

bxAxAxA nn =+++⇔ )...( 221

Ta có 3 tính chất quan trọng sau đây:

nh chất 1 (Định lý 2-2.2) Nếu hệ {ATíAk > 0 , ∀ j =

1, A2, …, An} là độc lập tuyến tính và A1x1 + A2x2 + … + x = b với x k,1 (k j k ≤ n) thì điểm x = (x , x , …, x , 0, …., 0) là phương án cực biên

Títư 1 1 2 2 n n

tính.

Tính ch nh lý 4-2.2) Phương án x = (x1, x2, …, xn) ∈ D là phương án cực biên của bài to Q hỉ khi các vec tơ Aj ứng với các thành phần xj > 0 là một hệ độc lập tuyến tính.

Tính chất 3 là điều kiện cần và đủ để một phương án là phương án cực biên.

Từ các tính chất trên dẫn đến thuật toán đơn hình giải bài toán QHTT.

3.

3.VD ạn đỉnh, do đó tồn tại một thuật toán

Th

Bước 1: Tìm một pacb (mộ

Bước 2: Kiểm tra 2 điều kiện sau đây đối với pacb đã tìm được:

acb đang xét đủ n vô nghiệm), khi đó cũng kết thúc thuật toán.

N ề nảy sinh:

o? Điều này sẽ được nghiên cứu trong mục 4.

(2) Điều kiện tối ưu của một pacb là gì? Điều này dẫn đến Định 1-3.2 dưới đây để kiểm tra một pacb có phải là patu hay không.

1 2 k

của D.

nh chất 2 (Định lý 3-2.2) Nếu x = (x1, x2, …, xn) là phương án cực biên của D thì hệ vectơ ơng ứng với các thành phần xj > 0 trong biểu diễn A x + A x + … + A x = b là độc lập tuyến

ất 3 (Địán HTT chính tắc khi và c

Thuật toán đơn hình giải bài toán QHTT

1. Đường lối chung của thuật toán ì bài toán QHTT có phương án tối ưu (patu) thì có ít nhất một phương án cực biên (pacb) của là patu. Mặt khác, nếu D là đa diện lồi thì phải có hữu h

để tìm patu là một trong các đỉnh của D.

uật toán chung

t đỉnh thuộc D).

2.1. Pacb thỏa mãn điều kiện tối ưu, khi đó nó là patu cần tìm (nghiệm của bài toán), kết thúc thuật toán.

2.2. P để kết luận bài toán không có patu (bài toá

ớc 3: Tìm một pacb mới sao cho cải thiện giá trị hàm mục tiêu rồi quay về Bước 2.

hư vậy có 4 vấn đ

(1) Tìm pacb ban đầu ở bước 1 như thế nà

85

Page 86: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

(3) Dấu hiệu nào của pacb đang xét để chứng tỏ bài toán không có patu? Điều này dẫn đến Định lí 2-3.2 dưới đây để kiểm tra dấu hiệu bài toán không có lời giải.

acb mới tốt hơn pacb cũ? iều này dẫn đến Định lí 3-3.2 dưới đây để cải thiện hàm mục tiêu.

3.2. Các định lý cơ b toán đơn hình Xét bài toán QHTT dạng chính tắc:

f(x) = <c, x

= bAx

Trong

(4) Bằng cách nào để tìm p Đ

ản của thuật

> max đó A = (a

⎩⎨ ≥ 0x

A

i,j) m × n

j là các vectơ cột của A, j = ⎧ n,1

Giả thiết rank(A) = m

Kí hiệu J0 là tập các chỉ số ứng với các thành ph 0

J0 = {j | xj0 > 0}

u kiện cần và đủ để một phương án là pacb).

• 0 0 ợc lại ta nói rằng nó là n gọi là bài toán không

• Ta xét các vectơ cột trong A. V ược tập J (chứa J0) sao cho |J| = m. Khi đó hệ vectơ {Aj}j ∈ J là độc lập tuyến tính và hệ này được gọi là

3x - x - 2x max

Giả sử x0 = (x10, x2

0, ..., xn0) là một pacb.

ần xj > 0, tức là

Khi đó, hệ vectơ {Aj}j ∈ J0 là độc lập tuyến tính (theo điề

Nếu |J | = m thì ta nói rằng pacb x là phương án không suy biến, ngưphương án suy biến. Bài toán QHTT mà mọi pacb đều không suy biếsuy biến.

ì rank(A) = m nên nếu |J0| < m thì ta sẽ bổ sung để thu đ

(các vectơ) cơ sở của các phương án. Với pacb đang xét, ta gọi các biến xj với j ∈ J là các biến cơ sở, các biến còn lại gọi là các biến phi cơ sở.

Ví dụ 1-3.2.

1 2 3

⎪⎨

=≥=++,,0

: 421

jxxxxD

⎩ 412

j

4, 2) và x2 = (0, 2, 0 , 1 không suy biến ứng với J = {3, 4}. Phương án x2 suy biến và J0 = {2}. Ta có thể bổ sung vào J0 để

ụ J = {1, 2}, ho 4}, cách nào cũng thì phải cố định. Gi ến x1

2 và x22 là các

biến cơ sở, còn các biến x32 và x4

2 là các biến phi cơ sở.

• Từ các giả định trên ta có ngay kết quả s

Vì x0 là pacb nên nó thỏa mãn ràng buộc của bài toán, hay

(1-3.2)

⎪⎧ =++ 42 321 xxx

Nhận xét : x1 =(0, 0 , 0)t là các phương án thuộc D. Phương án x

được tập J sao cho |J| = 2, ví d ặc J = {2, 3}, hoặc J = {2,được, nhưng khi đã chọn ả sử chọn J = {1, 2} thì các bi

au đây :

∑∈

=Jj

jj bAx0

86

Page 87: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Vì hệ vectơ {Aj}j ∈ J là độc lập tuyến tính nên mọi vectơ cột Ak, k = 1,2,…, n đều có thể biểu diễn được thông qua hệ đó dưới dạng tổ hợp tuyến tính của các vectơ trong hệ :

(2-3.2)

Rõ ràng trong công thức (2-3.2) khi k ∈ J thì x =1 và x 0 với ∀ j ≠ k. Do đó ta chỉ cần xét Ak với ∀ k ∉ J.

Ví dụ 2-3.2 Xét lại bài toán ở vị 1-3.2 ở trên

Aaaaaaaaa

A ⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡=

,

J = {3, 4} và cơ sở {A3, A4} gồm các ve

k = 1, A1 = x31A3 + x41A4 hay 1441

1331

21

11

aa

xaa

xaa

tổng quát là

∑∈

=Jj

jkjk AxA ,

k,k j,k

432 AAA1

24232221

14131211

10110121

ctơ đơn vị

⎥⎦

⎤⎢⎣

⎡+⎥

⎤⎢⎣

⎡=⎥

⎤⎢⎣

2423

⎥⎦

⎤⎢⎣

⎡+⎥

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⇔

10

01

11

4131 xx

⎩⎨⎧

+=+=

2442233121

1441133111 .axaxaaxaxa

∑ ==∈

miaxa ,1, (1)

121axquát là

Jjjikjki ,,,

⎨⎧

==== 11431 ax

tổng kikj ax ,, =⎩ 41

(2)

Với k = 2 cũng tương tự như thế ta rút được các công thức (1) và (2). Qua ví dụ trên ta rút ra

Các hệ số xj,k trong (2-3.2) có thể tính được nhờ giải hệ sau :

được kết luận tổng quát như sau:

∑ == jikjki miaxa ,1,,,, (3-3.2) ∈Jj

n vị thì ta có ngay :

tức l

Nếu các vectơ cơ sở là các vectơ đơ

kikj ax ,, = (4-3.2)

à xj,k bằng chính các thành phần tương ứng của vectơ Ak cần tình.

• Ta cần lập một đại lượng ∆k quan trọng sau đây :

∑∈

ong công thức (2-3.2). Trong công thức (5-3.2) ở trên, tổng biểu thị đphần

Bổ đề 1-3.2: Giả sử x = (x1, x2, …, xn)t là một phương án bất kỳ, tức x ∈ D, của bài toán QHTT chính tắc đã cho. Khi đó ta có:

−=∆Jj

kjkjk ccx , (5-3.2)

trong đó các hệ số xj,k được xác định trΣ chính là giá trị của hàm mục tiêu tại các thành phần cơ sở biểu thị cho Ak. Vậy ∆k

ộ lệch của hàm mục tiêu trong cơ sở biểu thị cho Ak với hệ số của hàm mục tiêu tại thành thứ k.

87

Page 88: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

(i) JjxxxxJk

kjkjj ∈−= ∑∉

,,0 (6-3.2)

(ii) ∑∉

∆−=Jk

kkxxfxf )()( 0 (7-3.2)

Chứng minh: (i) x ∈ D =n

iii Axx

1

, thay Ak bởi vế phải trong (2-3.2) ta được:

∈ ∉ ∈∈

−=Jj Jk Jj

jkjkjjJj

jj xxAxA ,0

c

∑=

= b , tách tổng này thành hai tổng:

∑∑ ∑∈∈ ∉

==+⇔Jj

jjJj Jk

kkjj AxbAxAx 0 (b bằng tổng vế phải do 1-3.2)

∑ ∑∑∈ ∉∈

−=⇔Jj Jk

kkjjJj

jj AxAxAx 0

∑ ∑ ∑∑⇔ Ax

∑ ∑∑∈ ∉∈

−=⇔Jj Jk

jkjkjJj

jj AxxxAx )( , , ước lượ A0j và tổng theo j ở hai vế ta được:

0 JjxxxxJk

kjkjj ∈−=⇔ ∑∉

ậy (i) được chứng minh.

xccxf ∑ ∑=)(

0

,, . V

(ii) xcx ∑+=n

kj Jj Jk

kjjjj= ∈ ∉1

⎛ = ∑∑∑

∉∉∈

+⎟⎟⎠

⎜⎜⎝

−Jk

kkJk

kjkjJj

j xcxxxc , , do thay x⎞

j bởi vế phải trong (i)

∑∑ ∑∑∉ ∈ ∉∈

+−=Jk Jj k

kkkjkjJj

jj xcxxcxc ,0

J , do khai triển và thay đổi thứ tự hai tổng

kJk Jj

kjkj xccxxf ∑ ∑∉ ∈

⎟⎞

⎜⎛

−−= 0 )( thay biểu thức trong ngoặc bởi ∆k trong (5-3.2) ⎟⎠

⎜⎝

,

∑∉

x0 là patu.

∆−=⇔Jk

kk xxfxf )()( 0 . Vậy (ii) được chứng minh.

Định lý 1-3.2. Tiêu chuẩn tối ưu

Nếu ∆k ≥ 0, ∀k ≤ n thì pacb

Chứng minh. Theo bổ đề (ii), ∀ x ∈ D ta có

∑∉

∆−=Jk

kkxxfxf )()( 0

trong đó xk ≥ 0, ∆k ≥ 0 do đó tổng sau dấu trừ mang dấu dương, suy ra f(x) ≤ f(x0) với ∀ x ∈ D, do đó x0 là patu.

Định lý 2-3.2. Dấu hiệu vô nghiệm

xj,k ≤ 0 ∀j ∈ J thì bài toán không có patu. Nếu tồn tại k sao cho ∆k < 0 và

88

Page 89: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

(xj,k là các hệ số trong biểu thức biểu thị Ak qua cơ sở {Aj}j ∈ J)

Chứng minh. Ta có thể chỉ ra một pacb x1 mà x 1j j j,k j,k j

) - θ∆k > f(x0) (lớn hơn f(x0) vì θ > 0 và ∆k < 0). Ta thấy f(x1) ∞ khi .

đị ỏa ãn thì khi đ i ∆s > 0 nào đó, ta tìm c m x1 m hận x m biến ở (mới) và a mãn f(x f(x0), do

đó x1 là pacb tốt hơn pacb x0.

= x 0 - θx với θ > 0. Vì x ≤ 0 thì x 1 > 0 và hàm mục tiêu f(x1) = f(x0

θ ∞, do đó bài toán vô nghiệm

Định lý 3-3.2. Cải thiện hàm mục tiêu

Nếu nh lý (1-3.2) và (2-3.2) không th m ó vớđượ ột pacb ới n s

1 là cơ s thỏ 1) >

Chứng minh. Trong nội dung chứng m định lý (3-3.2), ta chỉ cần quan tâm n cách tìm ra pacb Vì thế các nội dung sau đây là quan trọ ì nó được ụng lại trong thuật toán đơn hình cầ xây dựng.

Ta chọ

(8-3.2)

Ta gọi ột As hay (ngắn gọ s) là c .

ng j = r sao cho tỷ số

inh đếx1. ng v sử d

n

n

}0|min{ <∆∆=∆ kks

c n cột ột xoay

Khi đó, theo điều kiện của định lý (3-3.2) thì phải tồn tại các thành phần xj,s > 0, trong số đó, ta

chọn dò sj ,

j

xx

bé nhất, tức là : 0

⎪⎭⎪⎩ ,, sjsr xx

Lưu ý rằng các phần tử x

⎪⎬⎫⎪

⎨⎧

>= 0|min ,

00

sjjr x

xx (9-3.2)

tử ở cột xoay.

ủa dòng xoay r và cột xoay s được

họn cơ sở mới J’ như sau :

cách thay cột Ar bằng cột As (Cột xoay s

js là các phần

Dòng r thu được được gọi là dòng xoay. Phần tử xr,s là giao cgọi là phần tử trục (hoặc phần tử xoay).

Bây giờ ta c

J’ = J \ {r} ∪ {s}

Nói cách khác cơ sở mới nhận được từ cơ sở cũ bằngđược đưa vào cơ sở mới).

Trong cơ sở J’ mới này, các thành phần của pacb x1 được xác định như sau:

⎪⎩

⎪⎨

⎧== )(1 a

xxx r

s θ

∈ )(',, bJjs−= .01,

0

xxx jjj

sr

θ(10-3.2)

Công thức (a): Lấy biến cơ sở t ũ ch c rồi đặt kết quả là θ ới. Dòng s mới được gọ .

Về thao tác trong công thức (10-3.2) :

- cũ ại dòng xoay r cvào dòng s m i là dòng chính

ia cho phần tử trụ

89

Page 90: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

- Công thức (b): Lấy biến cơ sở cũ ở dòng j tương ứng trừ đi tích của số θ trên dòng chính nhân ới phần tử ở cột xoay tương ứng.

vectơ Ak biểu diễn qua cơ sở

mới {Aj}j ∈ J’ n như sau:

v

Khi đó, người ta chứng minh được f(x1) > f(x0).

Trong cơ sở mới này, ta tính được các thành phần ',kjx mới của các

hờ các biến đổi Gauss-Jordan

⎪⎩

⎪⎨

−= )(. ,,',

,,

bxxxx

sjkjkj

srks

δ (11-3.2)

⎧ ,' x kr == )(ax δ

Về thao tác tro công

- Công thức (a): Chia các phần tử ở g xoay cho phần tử trục rồi đặt vào dòng chính.

- Công thức (b): Lấy phần tử cũ tương ứng trừ đi tích của δ trên dòng chính nhân với phần tử

ước 1 j1 j2 jm ảng đơn hình phần 1.

cj Aj, j J 1 2

… cn

An

ng thức (11-3.2) :

dòn

tương ứng ở dòng xoay.

3.4. Thuật toán đơn hình B : Tìm pacb ban đầu x0 với cơ sở J = {A , A , …, A } và lập b

Hệ số Cơ sở Phương c c

∈ án 1

A

2

A …

cj1 Aj1 xj1,1 xj1,2 … xj1,n01jx

c A0

2jx xj2 j2 j2,1 xj2,2 … xj2,n . . .

.

.

.

.

. . .

.

. . .

.

. . .

. . .

cjm jm jm,1 xjm,2 … xjm,nA0jmx x

f(x0) ∆1 ∆2 … ∆n

- Cột hệ số biểu diễn các hệ số của hàm mục tiêu tương ứng với các vectơ cơ sở (hoặc các biến cơ sở)

- Cột cơ sở ghi tên

- C ng án ghi giá trị ủa các biến cơ sở a phương án x0

- Các cột Aj ghi hệ số của hàm mục tiêu ở hàng trên cùng và bên dướ các hệ số ai triển xj,k của vectơ cột ơ sở {Aj}j ∈ J.

- Hàng cuối cùng là giá trị của f(x0) và các giá trị ∆k.

Bướ : Kiểm tra “Tiêu chuẩ i ưu” the ịnh lý 1-3.2. Nếu mọi k ≥ 0 thì x0 patu, dừng thuật toán.

hiệu vô nghiệm” theo định lý 2-3.2. Nếu tồn tại ∆k < 0 và xj,k ≤ 0 với

các vectơ cơ sở

ột phươ tương ứng c củ

i là khAk trong c

c 2 n tố o đ ∆ là

Bước 3: Kiểm tra “Dấumọi j ∈ J thì bài toán không có patu, dừng thuật toán.

90

Page 91: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Bước 4: Nếu hai định lý 1-3.2 và 2-3.2 không thỏa mãn thì xây dựng pacb mới x1 và lập bảng đơn hình phần thứ hai tiếp theo như nội dung chứng minh của định lý 3-3.2. Sau đó quay về

1

4.1. Ch ới, tức là tìm s sao cho

bước 2. Việc xây dựng x có thể tóm tắt lại như sau:

ọn vectơ As để đưa nó vào cơ sở m

}0|min{ <∆∆=∆ kks (8-3.2)

4.2. Chọn vectơ Ar để đưa nó ra kh i cơ sở mới, tức là tìm r sao cho ỏ

⎪⎭⎬

⎪⎩⎨ 0|min ,

,,sj

sjsr xx (9-3.2) ⎪⎫⎪⎧ >=

00jr x

xx

4.3. ong cột ố Cj : thay Cr bởi Cs rong cột sở, tha r bởi As ư vậy dòng r bây giờ là dòng s, gọ g chín à ta có c ở mới gồ ác vect t

đơn hình phần tiếp theo cho cơ sở mới theo các biến đổi Gauss-Jordan sau đây

(10a-3.2) (11a-3.2)

Tr hệ s ; T cơ y A , nhi là dòn h. V ơ s m c ơ cộ

{Aj }, j ∈ J’ = J \ {r} ∪ {s}

4.4. Tình bảng

a) Chia mỗi phần tử dòng xoay cho phần tử trục (được số 1 ở vị trí trục), kết quả thu được đặt ở dòng As, gọi là dòng chính. Các thao tác này chính là thực hiện các công thức:

θ== rs

xx0

1 srx ,

δ== krks

xx ,'

, srx ,

b) Lấy mỗi dòng khác ( n cột xoay tương ứng (được s 0 ở vị trí còn lạ dò ứng.

ới = Dòng c - Dòng chính * phần tử trên cột

Thực c thao tác trê à thực n các công thức :

(10 .2) (11 .2)

,01 jx sjj ∈−= xx ,, .=

4.5. Cu lại cá lệnh ới

Ví dụ 1-3.4. G nh:

f(x) = 21 - x2 + 3x3 + x4 max

hần tử tr

. xjr ần tử thu c cột xoay.

. Cột s: cột xoay

. Dòng r: dòng xoay

. xr,s : p ục

: ph ộ

cũ) trừ đi tích của dòng chính nhâi trên cột xoay). Kết quả được đặt ở

với phần tử ởng mới tương

xoay

Dòng m ũ

hất các n l hiệ

b-3 b-3

'J .x jθx , sjkjkjx ', δ−

ối cùng tính c độ ∆k m

∆k (mới) = ∆k (cũ) - Dòng chính * ∆s

iải bài toán tối ưu sau bằng thuật toán đơn hì

⎪⎩

⎪⎨⎧

=≥=++=++

4,3,2,1,010282

: 421

321

jxxxxxxx

Dj

91

Page 92: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎥⎦1⎤⎡

=0121

A , Hệ số cơ sở J = {3, 4}, pacb x⎢⎣ 012

0 = (0, 0, 8, 10)t.

Hệ số

cj

Cơ sở

Aj , j ∈ J

Phương án c1 2

A1

c2-1 A2

c3 3

A3

c41

A4

3 A3 8 1 2 1 0

1 A 10 2 1 0 1 4

f(x) = 34 3 8 0 0

f(x) = 3.8 + 1.10 = 34;

1 = 3.1 + 1.2 - 2 = 3; 2 = 3.2 + 1.1 - (-1) = 8; 3 = 4 = 0.

Vì ∆k ≥ 0 với ∀ k = 1,2, 3, 4 nê 0) là patu với giá trị tối ưu của hàm mục tiêu là f(x0) = 34.

3x2 + 4x3 - x4 max

∆ ∆ ∆ ∆

n theo định lý về “Dấu hiệu tối ưu” thì x0 = (0, 0, 8, 1

Ví dụ 2-3.4. Giải bài toán tối ưu sau bằng thuật toán đơn hình:

f(x) = -x1 +

⎪⎩ =≥ 5,1,0 jx j

⎪⎨ =+−+ 203: 5321

4321xxxxD

⎧ =−−− 102 xxxx

Hệ số cơ sở J = {4, 5}, pacb x0 = (0, 0, 0, 10, 20)t.

Hệ số

cj

-1 c23

A2

c3 4

A3

c41

A4

c50

A5

Cơ sở Phương c1

Aj , j ∈ J án A1

1 A4 10 2 -1 -1 1 0

0 1 A5 20 3 1 -1 0

f( ) = 3 -4 -4 0 0 x 10

∆ 2 - 3; ∆ = 1.(-1) + 0.1 - 3 = -4; 1 = 1. + 0.3 (-1) = 2 ∆3 = 1(-1)+0.(-1) - 4 = -4,

4 =∆5 = 0.

Tồn tại ∆k = ∆ < 0 (k=3 J) và x = x < 0 với j = 3, 4 ∈ J nên theo định lý về “Dấu hiệu vô ghiệm thì bài toán đ

Gi i b c t cho một xí nghiệp sao cho ti i thu ợc lớ hất

Thời gian làm các sản phẩm (giờ)

A B C D

Hạn định số gi áy/tháng

Máy I 2 4 8 .000

3 j,k j,3

n ” ã cho không có patu.∉

Ví dụ 3-3.4.

ả ài toán Lập kế hoạ h sản xuấ ền lã đư n n

ờ 1 m 1

1 24

92

Page 93: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Máy II 3 5 1 0

Máy III 6 0 3 .500

Lãi/1 đvsp 0,4 0,2 0,5 0,8

Mô hình toán học bài ô ủa bài toán QHTT dạng chuẩ

f(x) = 0.4x1 + 0.2x2 + + 0.8 m

0 12.00

1 26

của toán là m hình c n tắc:

0.5x3 x4 ax

⎪⎪⎩

⎪⎪⎨

=≥ 01 ≤++

+++++

,26500361203284

3

1

jxxxx

xxxxx

j

Ta chuyển về bài toán QHTT dạng chính tắc:

4 5 6 7

≤≤4

4,1

00

5 2x40002 2x

43

1

3

f(x) = 0.4x1 + 0.2x2 + 0.5x3 + 0.8x + 0x + 0x + 0x max

⎪⎪⎩ =≥ 7,1,0

31

jx j

⎪⎨ +++ 36

6321

xxxx

⎪⎧ =++++ 24000842 54321 xxxxx

==+++

265001200053

74

xxxx

Minh họa cách tính theo các công thức (8 11 - 3.2):

Ở lần lặp thứ nhất: J = {5, 6, 7}, x0 = (0, 0, 0, 0, 24.000, 12.000, 26.500)

Tồn tại ∆k <0 do đó x0 chưa là patu. ∆s = ∆4 = min {∆k | ∆k < 0} s = 4

⎪⎭⎪⎩ 4,jx⎪⎬⎫⎪

⎨⎧

>== 0|min 4,

005

0

jjr x

xxx r = 4,5,sr xx

5; phần tử trục x5,4 = 8. Cơ sở mới J = {4, 6, 7}

• Tính dòng chính: Chia các phần tử ở dòng xoay Ar cũ cho phần tử trục và đặt vào dòng chính As mới

- Dòng A5 : 24000/8 = 3000; 2/8 = 1/4; 4/8 = 1/2; ..

- Rồi đặt vào dòng A4 trong bảng đơn hình phần II, đó là dòng chính

• Tính các dòn i: ớ chí phần t ột xo ương

- Cột phương án: tính biến j1:

. Dòng A6: 12.000 - 3000*0 = 12.000

.Dòng A7: 26.500 - 3000*1 = 23.500

- Các cột Aj: tính x ví dụ:

. Dòng A6: 3 - ( = 3; p n tử ở c oay t ứng là 0

5 - (1/4)*0 = 5

1 - (1/2)*0 = 1

. Dòng A7: 6 - (1/8)*1 = 47/8 ; phần tử ở cột xoay tương ứng là 1

g còn lạ (dòng m i = dòng n *h ử c a ty ứng)

cơ sở x

j,k,

1/8)*0 hầ ột x ương

93

Page 94: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

0 - (1/ 1 = -1/

3 - (1 =5/2

- Kể cả ∆k (mới) cũ tính = (cũ) - d g chính s; Ví d ’1= -0,4-(1/8)*(-0,8)=-0,3.

Hệ số

cj

Aj, J

Ph ng c0,4 A

c20,2A

c3 0,5 A3

c40,8 A4

c50

A5

c60

A6

c70

A7

4)* 4

/2)*1 , ...

ng ∆k òn * ∆ ụ ∆

sở

j∈

ươán

1

1

2

0 A5 24.000 1 2 4 [8] 1 0 0

0 A6 12.000 3 5 1 0 0 1 0

0 A7 26.500 6 0 3 1 0 0 1

I

-0,4 -0,2 -0,5 (-0,8) 0 0 0 f(x) = 0

0,8 A4 3.000 1/8 1/4 1/2 1 1/8 0 0

0 A6 12.000 [3] 5 1 0 0 1 0

0 A 23.500 7 47/8 -1/4 5/2 0 -1/8 0 0

-0,1 0 0,1 0 0

II

f(x) = 2400 (-0,3) 0

0,8 A4 2.500 0 1/24 11/24 1 1/8 -1/24 0

0,4 A1 4.000 1 5/3 1/3 0 0 1/3 0

0 A7 0 0 -241/24 13/24 0 -1/8 -47/24 1

III

0,1 f(x) = 3.600 0 0,5 0 0 0 0,1

Tại bản n theo định lý về “Dấu hiệu tối ưu” thì

Vậy gi x* = (4.000, 0, 0, 2.500)

Ví dụ 4

f(x) = 4x1 + 5x2 max

2

c:

f(x) = 4x1 + 5x2 + 0

g đơn hình lần lặp thứ 3, ta có ∆k ≥ 0 với ∀ k = 1,..,7 nê x = (4.000, 0, 0, 2.500, 0, 0, 0) là patu.

á trị tối ưu của hàm mục tiêu là f(x*) = 3.600, và patu là

-3.4. Giải bài toán Lập kế hoạch sản xuất trong ví dụ mở đầu:

⎪⎩ =≥ 210 ,j,x j

⎪⎨ ≤

≤+372 21

xxx

⎪⎧ ≤+ 82 21 xx

Ta chuyển bài toán về dạng chính tắ

x3 + 0x4 + 0x5 max

⎪⎩ =≥ 5,1,0 jx j

⎪⎨ =+ 353 xx

⎪⎪ ++ 2 21

321

xxx⎧

==++

782

4

xxx

94

Page 95: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

Hệ số Cơ sở Phương c

cj A ,j∈J án 4

Aj

0 A3

c40

A4

c50

A7

1 c c3 25

A21

0 A3 8 2 1 1 0 0

0 A4 7 1 2 0 1 0

I

0 A5 3 0 [1] 0 0 1

f(x) = 0 -4 (-5) 0 0 0

0 A3 5 2 0 1 0 -1

0 A4 1 [1] 0 0 1 -2 II

5 A2 3 0 1 0 0 1

f(x)= 15 (-4) 0 0 0 1

0 A3 3 0 0 1 -2 [3]

4 A1 1 1 0 0 1 -2

III

5 A2 3 0 1 0 0 1

f(x) = 19 0 0 0 4 (-3)

0 A5 1 0 0 1/3 -2/3 1

4 A1 3 1 0 2/3 -1/3 0

IV

5 A2 2 0 1 -1/3 2 0

f(x) = 22 0 0 1 2 0

Tại bảng đơn hình lần lặp th 4, ta có ∆ứ ,..,5 nên x = (3, 2, 0, 0, 1) là patu. Vậy ủa hàm

đầu

4.1. Nhận xét Bài toán QHTT đã giới thiệu ở trên thực hiện thuật toán ơn hình với các điều kiện sau:

- Phải ở dạng chính tắc với b > 0.

- Nếu ở dạng chuẩn thì đưa được về dạng chính tắc bằng cách thêm biến phụ.

j i

ậy bài toán QHTT dạng chính tắc có thể không giải được ngay ngay cả khi cơ sở ến nhưng các vectơ cơ sở không là các vectơ đơn vị. Khi đó ta có hai

- Giải hệ Ax0 = b để tìm pacb ban đầu. Có thể giải trực tiếp bằng phương pháp Crame.

k ≥ 0 với ∀ k = 1giá trị tối ưu c mục tiêu là f(x*) = 22, và patu là x* = (3, 2).

4. Tìm phương án cực biên ban

đ

- Ở bước đầu tiên của thuật toán phải có ngay một pacb.

- pacb ban đầu tìm được ngay nếu cơ sở không suy biến, hơn nữa các vectơ cơ sở là các vectơ đơn vị. Khi đó pacb x0 tìm được ngay vì x 0 = b .

Như vcủa nó không suy bicách

95

Page 96: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

- Thêm biến giả để có một cơ sở gồm các vectơ đơn vị.

4.2. Định nghĩa ràng buộc chuẩn Xét bài toán QHTT dạng chính tắc

- Ràng buộc mibxan

jijji ,1,

1, ==∑

=

được gọi là ràng buộc chuẩn (của điều kiện i) nếu:

(i) bi ≥ 0 (nếu bi < 0 ta nhân hai vế với -1)

(ii) Tìm được biến xk(i) (viết k(i) để nói rằng dòng k tìm phụ thuộc vào i) sao cho

ủa cơ sở.

ọi là bài toán QHTT (chính

ai,k = 1, aj,k = 0 với ∀j ≠ i.

Nói cách khác vectơ cột Ak của A là vectơ cơ sở thứ i c

Khi đó biến xk được gọi là biến chuẩn của điều kiện i.

Nói một cách đơn giản : ràng buộc chuẩn là ràng buộc tương ứng với một vectơ cột Ak là vectơ đơn vị để có thể đưa vào cơ sở, vectơ Ak này có thành phần thứ i bằng 1, các thành phần còn lại tất nhiên bằng 0.

- Bài toán QHTT dạng chính tắc mà mọi ràng buộc đều chuẩn thì gtắc) chuẩn. Đối với bài toán chuẩn, ta có ngay pacb ban đầu x0 mà x0

k(i) = bi ∀i = m,1 vaf x0

j =0

với ∀ j ≠ i.

Ví dụ 1-4.2. Xét Bài toán

f(x) = 0,2 x1 + x2 + 5x3 + x4 - x5 max

⎪⎪⎩ =≥ 5,1,0 jx j

⎪⎪⎨

=++=+=++

)3(203)2(30

23

:421

43

542

xxxxx

xxx

D

AAAAA

A⎥⎥⎥

⎢⎢⎢

=1

11

ác ràng buộc (1), (2 ộc ch

- Ràng buộc (1) có biến chuẩn là xk(i) = x5(1) của điều kiện i = 1, tức là Ak = A5 là vec tơ cơ sở thứ nhất có ai,k = a1,5 = 1, còn lại ai,j = 0 với ∀j = 2,3 (≠ i = 1).

- Ràng buộc (2) có biến chuẩn là xk(i) = x3(2) của điều kiện i = 2, tức là Ak = A3 là vec tơ cơ sở thứ hai có ai,k = a2,3 = 1, còn lại ai,j = 0 với ∀j = 1, 3 (≠ = 2).

- Ràng buộc (3) có biến chuẩn là xk(i) = x1(3) của điều kiện i = 3, tức là Ak = A1 là vec tơ cơ sở thứ ba có ai,k = a1,3 = 1, còn lại ai,j = 0 với ∀j = 1, 2 (≠ i = 3).

f(x) = x1 + 6x2 + 3x4 - 15x5 max

)1(15 2030⎡

54321

03010100

Ta có J = {5, 3, 1}, nói cách khác cơ sở là {A5, A3, A1} gồm các vectơ đơn vị, do đó c), (3) đều là ràng bu uẩn, trong đó :

i

Ví dụ 2-4.2. Xét Bài toán P sau đây :

96

Page 97: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎪⎪

=≥=++++

5,1,0)3(242 54321

jxxxxxx 1421 ⎥⎦⎢⎣1

⎪⎪⎨

⎧=+−−=−−

)2(527)1(0

: 5432

43

xxxxxx

D

j

2571003100

A

-A ⎥⎥⎤

⎢⎢⎡

−−−

=

Ta thấy ch ộc chu ới biến chuẩn là xk(

tức là Ak 1 ó ai,k = a3,1 1, còn lại ai,j = 0 vớ

Để tất ần thêm 2đây :

53

4321 AAAA 5

ỉ có ràng buộc (3) là ràng bu ẩn v i) = x1(3) của điều kiện i = 3, = A là vec tơ cơ sở thứ ba c = i ∀j = 1,2 (≠ i = 3).

cả các ràng buộc đều là chuẩn thì bài toán P c biến giả nữa để có bài toán sau

Bài toán P2:

f(x) = x1 + 6x2 + 3x4 - 15x5 - Mx6 - Mx7 max (M lớn bao nhiêu tùy ý)

⎪⎪

⎪⎨

=≥=++++=++−−

5,1,0)3(242)2(5257

:54321

75432

jxxxxxx

xxxxxD

⎪⎧ =+−− )1(03 643 xxx

⎩ j

001421 ⎥⎥⎦⎢

⎢⎣1

025710

003100⎥⎤

⎢⎡

−−−

=1

7654321 AAAAAAA

-A 1

u là chuẩn và có ngay pacb ban đầu là x0 = (2, 0, 0, 0, M, M).

Bài toán P2 khi thêm biến giả không phải là để khử các dấu bất đẳng thức trong các ràng buộc mà là để sinh thêm các vectơ đơn vị, đủ để tạo thành một cơ sở có hạng bằng m. Bài toán P2

Bài toán P : Một cách tổng quát, bài toán QHTT chính tắc P có thể viết dưới dạng

f(x) = <c, x> max

Khi đó ta có J = {6, 7, 1} hay {A6, A7, A1} là cơ sở gồm các vectơ đơn vị với các ràng buộc đề

cùng với số M lớn bao nhiêu tùy ý này được gọi là “bài toán M”. Vấn đề đặt ra là bài toán P2 có tương đương với bài toán P không và giải bài toán P2 này như thế nào?

4.3. Phương pháp phạt hay phương pháp bài toán M

⎪⎪

⎩=≥ njx j ,1,0

⎪⎨ ∈=∑

=

IkbxaD kj

jjk ,: 21

, I⎪⎪⎧

∈=∑=

Iibxa

n

i

n

jjji , 1

1,

Bài toán M: Bài toán sau đây được gọi là bài toán phạt (hay bài toán M) của bài toán P :

f(x) = <c, x> - <M, x> max (M là số dương lớn tùy ý)

I1 là tập các ràng buộc chuẩn

2 là tập các ràng buộc không chuẩn

Ví dụ : Bài toán P trong Ví dụ 2-4.2 có I1 = {3}; I2 = {1, 2}.

97

Page 98: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎪⎩

2kj⎪⎪

⎪⎪⎪

∈≥=≥

∈=+

∈=

=

=

12,

11,

,0,,1,0

,

,

:

Ikxnjx

Ikbxxa

Iibxa

Dn

jkkjjk

n

jijji

Chú ý rằng, nếu à b tì hà ục tiêu cộng thêm lượ <M, và đây l ài toán m min thì m m ng x>

(*)⎢⎣

⎡>=

>⇔

+≥+

dbcaca

dbaM

Ở đây xcxc1

, ,

Định lý 1-4.3. Mố uan ghiệ ủa bài toán P và bài toán M đư ho n

1) Nếu bài toán M không có nghiệm thì bài toán P cũng không có nghiệm

2) Nếu bài toán M có nghiệm **2Ix * Ix j ∈= ì iệm a bài toán P.

3) Nếu bài toán M có nghiệm ∃ ương

án chấp nh được

Từ định lí trên suy ra : Đ ài toán P ta tiế ành ài to M ài t M v ghiệm thì P cũng ô ngh . Nế ài toán có ngh hưn có ít t mộ ành p n ứng với biế giả mà khác 0 thì bài toán P cũng vô nghiệm, ngược lại nếu tất cả các thành phần ứng với biến giả mà bằng 0 thì bài toán P có nghiệ là ngh của bài toán M nhưng đi các biến .

Nói cách ế ài to có n ệm x = 1, …, ới các thành phần 0 phía sa thuộc I2 th bài toá P có à x (x1, …, xn).

c hệ số cj mà j ∈ I1 (ứng với biến thật)

k k k k

Việc xét dấu ∆k và so sánh hai số ∆k = akM + bk và ∆’k = a’kM + b’k dựa vào (*). Tức là ta có:

òng f(x): không cần tính giá tr ơ giả thì dòng ∆k cũng k

Ví dụ 1-4.3 Giải bài toán P sau đây : f(x) = <c, x> = -x1 + x2 + x3 -2x5 max

and

cM

∑=

>=<n

jj ∑

>=<2

,Ik

kMxxM j

i q hệ về n m c ợc c hư sau

.

(x *x2 th,0 j∀ và là ngh củ),

),( **2Ixx 2

* ,0 Ijx j ∈ và > thì bài toán P không có ph

ận .

ể giải b n h giải b án . Nếu b oán ô n v iệm u b M iệm n g nhấ t th hầ n

m iệm bỏ giả

khác, n u b án M ghi (x xn, 0, .., 0) v uì n nghiệm l =

Trong bảng đơn hình giải bài toán M, dòng ∆k được tách thành 2 dòng :

- Dòng trên ứng với các hệ số M của I2 (ứng với biến giả)

- Dòng dưới ứng với cá

Hoặc nếu không tách thành hai dòng thì ∆ viết dưới dạng ∆ = a + b M.

⎩⎨⎧

<=∀<

⇔<∆0,0

,00

kk

kkk ba

ba

⎩⎨⎧

=<∀<

⇔∆<∆kkkk

kkkkkk aaifbb

bbaa','

',,''

Chú ý: Các cột ứng với biến giả (tức là ck = -M) không cần phải tính. Tại dị f(x) khi trong cơ sở còn có các vectơ giả. Khi cơ sở không còn vect

hông cần tách thành 2 dòng.

98

Page 99: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎪⎪⎩

⎪⎪⎨

=≥=+−=++−=−−

6,1,0)3(422)2(103)1(62

:543

6541

421

jxxxx

xxxxxxx

D

j

Ta có I1 ={2, 3}, tập các ràng buộc chuẩn tương ứng với các điều kiện i = 2 và i = 3.

Để ó ràn ộc ện i = 1, ta cầ hêm mộ ến giả x ràng bu c (1 hi đ có bài to ạt toán au đâ

Bài toán M: f(x) = <c, x> = -x1 + x2 + x -2x5 -M 7 max (M lớn tùy ý)

c g buán ph

chuẩn với điều ki P s

n t t bi 7 ở ộ ). K ó ta của bài y:

3 x

⎪⎩⎪

⎪⎨:⎪⎧2

=,0 j≥=+−=++−=+−−

7,1)422)2(103)6

53

651

21

xx

xxxxxxx

D

j

Cơ sở ban đầu là J = {A7, A6, A3} với pacb ban 0 = (0, 0, 4, 0, 10, 6)

Hs

Aj,j∈

Phươ án

c-1 A

c21

A2

c3 1

A3 4

52

5

50

6

c5

7

3(

1(

4

4

x

7x4

x

đầu là x

ệ ố

cj

sở

J

ng

1

1

c40

A

c

A

c

A-M A

-M A7 6 [2] -1 0 0 0 -1

0 A6 10 3 0 0 1 1 -1

1 A 4 3 0 0 1 2 0 -2

(-2M) M 0 0 0 M

I

f(x

1 -1 0 0

) =

0 -2

-1 A1 3 1 -1/2 0 -1/2 0 0

0 A6 1 0 3/2 0 [1/2] 1 1

1 A 4 0 0 1 3 -2 2 0

II

f(x) 1 0 -1/2 0 (-3/2) 0 0 =

-1 A1 4 1 1 0 1 1 0

0 A4 2 0 3 0 1 2 2

III 1 A3 8 0 6 1 0 6 4

f(x) = 4 0 4 0 0 3 3

Bài toán M tBiến giả x

ại lần lặp thứ 3 có ∆k ≥ 0 với ∀ k = 1,…, 7 nên thu được patu là (4, 0, 8, 2, 0, 0 ,0). 0, do đó bài toán P đã cho có patu là x* = (4, 0, 8, 2, 0, 0) với giá trị tối ưu của hàm

ụ 2-4.3 Giải bài toán P sau đây : f(x) = <c, x> = 2x1 + x2 - x3 -x4 max

7 =mục tiêu là f(x*) = 4.

Ví d

99

Page 100: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

⎪⎪⎩

⎪⎪⎨

=≥=+++=+−+=−+−

4,1,0)3(7)2(632)1(22

:4321

4321

4321

jxxxxxxxxxxxxx

D

j

Bài toán P đã cho không có ràng buộc nào chuẩn. Ta chuyển về Bài toán M:

f(x) = <c, x> = 2x1 + x2 - x3 -x4 -Mx5 -Mx6 -Mx7 max (M lơn tùy ý)

⎪⎪⎩

⎪⎪⎨

⎧x

=≥=++++=++−+=+−+−

4,1,0)3(7)2(632)1(22

:74321

64321

54321

jxxxxxx

xxxxxxxxx

D

j

Cơ sở ban đầu là {A5, A6, A7). Pacb ban đầu là (0, 0, 0, 0, 2, 6, 7)

Hệ số cj

Cơ sở

Aj,j∈J

Phương án

c1 2

A1

c21

A2

c3 -1 A3

c4-1 A4

c5-M A5

c5-M A6

c5-M A7

-M A5 2 [1] -1 2 -1 1 0 0

-M A6 6 2 1 -3 1 0 1 0

-M A7 7 1 1 1 1 0 0 1

(-4M) -M 0.M -M

I

f(x) =

-2 -1 1 1

2 A1 2 1 -1 2 -1

-M A6 2 0 [3] -7 3

-M A7 5 0 2 -1 2

0.M (-5.M) 8.M -5.M

f(x)=

0 -3 +5 -1

II

2 A1 8/3 1 0 -1/3 0

1 A2 2/3 0 1 -7/3 1

III -M A7 11/3 0 0 [11/3] 0

0.M 0.M (-11M/3) 0.M f(x) =

0 0 -2/3 2

2 A1 3 1 0 0 0

1 A2 3 0 1 0 1

IV

-1 A3 1 0 0 1 0

f(x) = 8 0 0 0 2

100

Page 101: Nct _ Phuong Phap Tinh Va Toi Uu Version 2

NCT-FIT-HNUE Computional methods and Optimization Problems

101

Bài toán M tại lần lặp thứ 4 có ∆Bk B ≥ 0 với ∀ k = 1,…, 7 nên thu được patu là (3, 3, 1, 0, 0, 0 ,0). Các biến giả xB5B = xB6B = xB7B = 0, do đó bài toán P đã cho có patu là x* = (3, 3, 1, 0, 0) với giá trị tối ưu của hàm mục tiêu là f(x*) = 8.

BÀI TẬP Giải các bài toán tối ưu sau đây:

1.

Minxxxxxx →−+−++ 654321 3432

⎪⎪⎩

⎪⎪⎨

=≥=+−−

=+−−++−=−++−

6,...,2,102023

822245323

5431

654321

65431

jxxxxx

xxxxxxxxxxx

j

2.

Maxxxxxx →++−+ 54321 32

⎪⎪⎩

⎪⎪⎨

=≥−=−−+−≤+−+−=++++−

.5,...,2,1,016221836214223

5321

5321

54321

jxxxxx

xxxxxxxxx

j

3.

Minxxx →++ 321 3

⎪⎪⎩

⎪⎪⎨

=≥≤++

−=−−≥++

.3,2,1,0102

825

321

32

321

jxxxxxx

xxx

j

4.

Maxxxxx →+++ 4321 23

⎪⎪⎩

⎪⎪⎨

=≥≥+++=+++≤+++

4,3,2,108229432

1022

4321

4321

4321

jxxxxxxxxx

xxxx

j