Minh họa thuật toán quay lui

Một phần của tài liệu Giáo trình Toán ứng dụng (Trang 81 - 93)

4 Nội suy và phương pháp bình phương cực tiểu

3.1Minh họa thuật toán quay lui

Thuật toán quay lui có thể được mô tả bằng đoạn giả mã lệnh sau : Thủ tục này thử choxi nhận lần lượt các giá trị mà nó có thể nhận

Procedure Try(i);

for(mọi khả năng jcó thể gán choxi)do If<chấp nhận j>then

Begin

<Xác định xi theo j>

Ifi=n then<ghi nhận một cấu hình>

Else Try(i+1);

End.

Ví dụ 3.2.14 Nhập từ bàn phím một số tự nhiên N. Hãy liệt kê tất cả các hoán vị của tập số{1,2,3...,N}.

Phân tích bài toán

∙ VớiN =2 thì có 2 hoán vị là:

Khi chọn 1 là số đứng đầu, ta có hoán vị : 1 2

Khi chọn 2 là số đứng đầu, ta có hoán vị : 2 1

∙ Với N=3 : ta có 6 hoán vị

Khi chọn 1 là số đứng đầu, ta có 2 hoán vị : 1 2 3 và 1 3 2

Khi chọn 2 là số đứng đầu, ta có 2 hoán vị : 2 1 3 và 2 3 1

Khi chọn 3 là số đứng đầu, ta có 2 hoán vị : 3 2 1 và 3 1 2

∙ . . . .

∙ Với tập hợpN số, khi chọn một trong các số từ 1 đếnN, ta sẽ có các hoán vị gồm : số đứng đầu đã chọn + một trong các hoán vị của tập số{1. . .N}. g

Như vậy, ta nhận thấy có thể giải bài toán này bằng cách dùng thuật toán quay lui (hay chính xác hơn là đệ quy quay lui).

2.4 Bài toán tối ưu và thuật toán nhánh cận

Một trong những bài toán đặt ra trong thực tế là tìm một nghiệm thõa mãn một số điều kiện nào đó, và nghiệm đó là tốt nhất theo một chỉ tiêu cụ thể, nghiên cứu lời giải các bài toán tối ưu thuộc lĩnh vực quy hoạch toán học. Tuy nhiên cũng cần nói rằng trong nhiều trường hợp, chúng ta chưa thể xây dụng một thuật toán thật sự hữu hiệu để giải bài toán, mà cho tới nay việc tìm nghiệm của chúng phải dựa trên mô hình liệt kê tất cả các cấu hình có thể xảy ra và đánh giá tìm ra cấu hình tốt nhất.

2.4.1 Thuật toán nhánh cận

Giả sử trong một tập hữu hạn các phương án của bài toán, ta phải chọn ra được một phương án tối ưu theo một tiêu chuẩn nào đó (thí dụ làm cho hàm mục tiêu đạt giá trị nhỏ nhất). Ta sẽ tìm cách phân chia tập phương án đang xét thành hai tập con không giao nhau. Với mỗi tập này, ta sẽ tính “cận dưới” (chặn dưới đủ tốt) của các giá trị hàm mục tiêu ứng với các phương án trong đó. Mang so sánh hai cận dưới vừa tính được, ta có thể phán đoán xem tập con nào có nhiều triển vọng chứa phương án tối ưu và tiếp tục phân chia tập con đó thành hai tập con khác không giao nhau, lại tính các cận dưới tương ứng . . . Lặp lại quá trình này thì sau một số hữu hạn bước, cuối cùng sẽ được một phương án tốt, nói chung là tối ưu. Nếu không thì lặp lại quá trình phân chia để kiểm tra và sau một vài bước, ta sẽ được phương án tối ưu.

Người ta thường mô tả quá trình phân chia đó bằng một “cây có gốc” mà gốc sẽ tượng trưng cho tập toàn bộ các phương án, còn các đỉnh ở phía dưới lần lượt tượng trưng cho các tập con trong quá trình “phân nhánh nhị phân”. Vì vậy, phương pháp này mang tên nhánh và cận.

2.5 Bài tập

Bài 75. Tìm một số nguyênnnhỏ nhất sao cho f(x)làO(xn)đối với các hàm f(x) sau: (a) f(x) =2x3+x2logx (b) f(x) =2x3+ (logx)4 (c) f(x) = x 4+x2+1 x3+1 (d) f(x) = x 5+5 logx x4+1 (e) f(x) =x4−x3√ x2+x+1 (f) x 6−x2−1 x3−√x2+x Bài 76. Chứng minh rằng

(a) x2+4x+7 làO x3, nhưngx3 không làO x2+4x+17. (b) xlogx làO x2, nhưngx2 không làO(xlogx).

Bài 77. Cho một đánh giá big - O đối với các hàm cho dưới đây. Đối với hàmg(x) trong đánh giá f(x) làO(g(x)), hãy chọn hàm đơn giản có bậc thấp nhất.

(a) nlog n2+1+n2logn

(b) (nlogn+1)2+ (logn+1) n2+1 (adsbygoogle = window.adsbygoogle || []).push({});

(c) n2n+nn2

Bài 78. ChoHn là số điều hoà thứn :

Hn=1+2 2+ 1 3+· · ·+1 n Chứng minh rằngHn làO(logn).

2.6 Đáp án

Bài 75. Học sinh tự giải Bài 76. Học sinh tự giải Bài 77. Học sinh tự giải Bài 78. Học sinh tự giải

PHƯƠNG PHÁP TÍNH

1 Số xấp xỉ và sai số. . . 72

2 Giải gần đúng các phương trình. . . 77

3 Giải hệ phương trình đại số tuyến tính. . . 99

4 Nội suy và phương pháp bình phương cực tiểu. . . 106

Giải tích số (numerical analysis) hay còn gọi là phương pháp tính là một khoa học nghiên cứu cách giải gần đúng, chủ yếu 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. Cụ thể như sau1 :

1. Xấp xỉ hàm số : thay 1 hàm có dạng phức tạp hoặc một hàm cho dưới dạng bảng bằng những hàm số đơn giản hơn. Trong lý thuyết xấp xỉ hàm, người ta thường nghiên cứu các bài toán nội suy, bài toán xấp xỉ đều và xấp xỉ trung bình bình phương.

2. Giải gần đúng các phương trình :phương trình đại số và phương trình siêu việt, hệ phương trình đại số tuyến tính, hệ phương trình phi tuyến, bài toán tìm vectơ riêng, giá trị riêng của một ma trận, giải phương trình vi phân thường, phương trình đạo hàm riêng, phương trình tích phân và phương trình vi - tích phân.

3. Giải gần đúng các bài toán tối ưu : quy hoạch tuyến tính, quy hoạch lồi, quy hoạch toàn phương, quy hoạch nghuyên, điều khiển tối ưu, trò chơi vi phân, . . .

Tuy nhiên, trong các giáo trình về giải tích số hay phương pháp tính truyền thống, người ta chỉ đề cập đến hai nhiệm vụ đầu.

Chúng ta có thể hiểu giải tích số là cách hay phương pháp giải một bài toán trên máy vi tính. Ưu điểm nổi bậc của giải tích số là thu được kết quả là một số cụ thể đối với cả bài toán không có kết quả “giải tích ”. Chẳng hạn ta biết tích phân

Z a

0

sinx x dx

là tồn tại nhưng không có 1 biểu thức cụ thể cho tích phân đó và với giá trị a cụ thể thì trong giải tích ta không có kết quả là một số cụ thể. Trong khi đó nếu dùng giải tích số ta có thể có được giá trị gần đúng của tích phân trên với bất kỳ giá trị

a cho trước.

Một điểm quan trọng cấn biết là kết quả của một bài toán gải bằng giải tích số luôn là một số và đó là giá trị gần đúng với kết quả lý thuyết. Mặc dù kết quả của một bài toán khi dùng giải tích số là một số gần đúng, nhưng ta có được kết quả có được độ chính xác như mong muốn. Để có được kết quả có độ chính xác cao, cần thực hiện nhiều phép toán, tuy nhiên máy vi tính thực hiện chúng một cách nhanh chóng mà không phải phạm lỗi trong quá trình tính.

1 Số xấp xỉ và sai số

Trong quá trình giải các bài toán thực tế ta thường gặp 4 loại sai số :

(a) Sai số giả thiết : do ta phải mô hình hóa, lý tưởng hóa và đơn giản hóa bài toán thực tế, ngoài ra còn phải đưa thêm vào các giả thiết thích hợp, từ đó dẫn đến những sai số. Sai số giả thiết này không loại trừ được và phụ thuộc vào từng bài toán cụ thể của thực tiễn.

(b) Sai số phương pháp : sau khi chuyển được bài toán thực tiễn thành bài toán của toán học thì thường là các bài toán rất phức tạp, không thể giải được chúng mà phải sử dụng các phương pháp gần đúng. Sai số này sẽ được nghiên cứu cho từng bài toán cụ thể.

(c) Sai số các số liệu :do ta phải sử dụng các số liệu thường là các kết quả của các phép đo lường, thí nghiệm, quan trắc, . . . là những số gần đúng.

(d) Sai số tính toán :khi đã xác định một phương pháp thích hợp để giải bài toán thì thường phải thực hiện rất nhiều phép tính, mỗi phép tính có thể lại cho ta giá trị gần đúng nào đó do các số liệu vốn đã có sai số, còn thêm sai số thu gọn nên khi tính toán sẽ xuất hiện sai số tính toán.

1.1 Số xấp xỉ

Nói chung, giá trị của các đại lượng dùng trong tính toán không được biết một cách chính xác. Vì vậy trong tính toán ta phải làm việc với các giá trị gần đúng của các đại lượng ấy. (adsbygoogle = window.adsbygoogle || []).push({});

Định nghĩa 4.1.1 (Số xấp xỉ) Số a được gọi là số xấp xỉ của số đúng a, ký hiệu

a≈a, nếua khác a không đáng kể và được dùng thay thếatrong tính toán.

∙ Nếu a<athì agọi là xấp xỉ thiếu của a.

∙ Nếu a>athì agọi là xấp xỉ thừa củaa.

Ví dụ 4.1.2 đối với số π thì 3.14 là xấp xỉ thiếu của π, còn 3.15 là xấp xỉ thừa

củaπ, dễ thấy rằng3.14<π <3.15 g

1.2 Sai số tuyệt đối

Định nghĩa 4.1.3 Giả sử a là giá trị đúng của một đại lượng và a là giá trị gần đúng củaa. Giá trị |a−a|phản ánh độ sai lệch giữa a và a. Ta gọi |a−a| là sai số tuyệt đối của số gần đúnga và kí hiệu là ∆a, tức là

∆a=|a−a|.

Trên thực tế, nhiều khi ta không biếtanên không thể tính chính xác∆a. Tuy nhiên có có thể đánh giá được ∆a không vượt quá một số dươngd nào đó.

Ví dụ 4.1.4 Giả sử a=√ 2 và một giá trị gần đúng của nó làa=1.41. Ta có : (1.41)2 =1.9881<2⇒1.41<√ 2⇒√2−1.41>0 (1.42)2 =2.0164>2⇒1.42>√ 2⇒√2−1.42<0.01 Do đó ∆a =|a−a|= √ 2−1.41 <0.01

Vậy sai số tuyệt đối của 1.41không vượt quá0.01 g

Định nghĩa 4.1.5 (Độ chính xác )

Nếu ∆a =|a−a| ≤d thì −d ≤a−a ≤d haya−d ≤ a≤a+d. Ta nói a là số gần đúng củaa với độ chính xácd, và quy ước viết gọn là a=a±d.

1.3 Sai số tương đối

Sai số tuyệt đối của số gần đúng nhận được trong một phép đo đạc đôi khi không phản ánh đầy đủ tính chính xác của phép đo đó. Để so sánh độ chính xác của 2 phép đo đạc hay tính toán, người ta đưa ra khái niệm sai số tương đối.

Định nghĩa 4.1.6 Sai số tương đối của một số gần đúnga, ký hiệu làδa, là tỉ số giữa sai số tuyệt đối và |a|, tức là

δa− ∆ |a|. Nếu a=a±d thì∆a. Do đóδa≤ d |a|. Nếu d |a| càng nhỏ thì chất lượng của phép

đo đạc càng cao. Người ta thường hay viết sai số tương đối dưới dạng phần trăm.

Ví dụ 4.1.7 Kết quả đo chiều cao một cây cầu được ghi là 152 m ±0.2 m. Kết quả đo chiều cao một ngôi nhà được ghi là 15.2 m± 0.1 m. Thoạt nhìn, ta thấy dường như phép đo chiều dài ngôi nhà chính xác hơn phép đo chiều dài cây cầu. Trong phép đo chiều dài cây cầu thì sai số tương đối không vượt quá 0.2

152 ≈

0.13%. Trong phép đo chiều dài ngôi nhà thì sai số tương đối không vượt quá

0.1

15.2 ≈0.66%. Như vậy, phép đo chiều dài cây cầu có độ chính xác cao hơn. g

1.4 Số quy tròn

Trong thực tế đo đạc và tính toán, nhiều khi người ta chỉ cần biết giá trị gần đúng của một đại lượng với độ chính xác nào đó (kể cả khi có thể biết được giá trị đúng của nó). Khi đó để cho gọn, các số thường được quy tròn.

Tùy mức độ cho phép, ta có thể quy tròn một số đến hàng đơn vị, hàng chục, hàng trăm, . . . hay đến hàng phần chục, hàng phần trăm, hàng phần nghìn, . . . (gọi là hàng quy tròn) theo quy tắc sau :

1. Nếu chữ số ngay sau hàng quy tròn nhỏ hơn 5 thì ta chỉ việc thay thế chữ số đó và các chữ số bên phải nó bởi số 0.

2. Nếu chữ số ngay sau hàng quy tròn lớn hơn hay bằng 5 thì ta thay thế chữ số đó và các chữ số bên phải nó bởi 0 và cộng thêm một đơn vị vào chữ số ở hàng quy tròn.

Ví dụ 4.1.8 Nếu quy tròn số7216.4đến hàng chục thì chữ số ở hàng quy tròn là (adsbygoogle = window.adsbygoogle || []).push({});

1, chữ số ngay sau nó là6, do 6>5nên ta có số quy tròn là 7220. g

Ví dụ 4.1.9 Nếu quy tròn số 2.654 đến hàng phần trăm (tức là chữ số thứ 2 sau dấu phẩy) thì số ngay sau hàng quy tròn là4, do4 <5 nên số quy tròn là2.65 g

Nhận xét :

1. Khi thay số đúng bởi số quy tròn thì sai số tuyệt đối của số quy tròn không vượt quá nửa đơn vị của hàng quy tròn. Như vậy, độ chính xác của số quy tròn bằng nửa đơn vị của hàng quy tròn.

|7216.4−72220|=3.6 <5

|2.564−2.65|=0.004<0.005

2. Khi quy tròn số đúng a đến một hàng nào thì ta nói số gần đúng a nhận được là chính xác đến hàng đó. Chẳng hạn, số gần đúng của π chính xác đến hàng phần trăm là 3.14; số gần đúng của √

2 chính xác đến hàng phần nghìn là1.414.

3. Nếu kết quả cuối cùng của bài toán yêu cầu chính xác đến hàng 1

10n thì trong quá trình tính toán, ở kết quả của các phép tính trung gian, ta cần lấy chính xác ít nhất đến hàng 1

10n+1.

4. Cho số gần đúng a với độ chính xác d (tức làa =a±d). Khi được yêu cầu quy tròn số a mà không nói rõ quy tròn đến hàng nào thì ta quy tròn số a

đến hàng thấp nhất mà d nhỏ hơn một đơn vị của hàng đó.

Chẳng hạn, cho a=1.236±0.002và ta phải quy tròn số1.236. Ta thấy

0.001<0.002<0.01

nên hàng thấp nhất màd nhỏ hơn một đơn vị của hàng đó là hàng phần trăm. Vậy ta phải quy tròn số1.236đến hàng phần trăm. Kết quả là a≈1.24.

Định nghĩa 4.1.10 (Chữ số chắc ) Cho số đúng a của số a với độ chính xác d. Trong số a, một chữ số được gọi là chữ số chắc (hay đáng tin) nếu d không vượt quá nửa đơn vị của hàng có chữ số đó.

Nhận xét :

1. Gọiαs là chữ số đứng hàng thứscủaa. Nếu∆a≤0.5·10sthì ta nóislà chữ số đáng tin.

2. Tất cả các chữ số đứng bên trái của chữ số chắc đều là chữ số chắc. Tất cả các chữ số đứng bên phải chữ số không chắc đều là chữ số không chắc.

Ví dụ 4.1.11 trong một cuộc điều tra dân số người ta báo cáo dân số của tỉnhA

là 1379425người ±300người Vì 100 2 = 50<300 <500 = 1000 2 nên chữ số hàng nghìn (chữ số 9) là chữ số chắc. Vậy các chữ số chắc là 1, 3, 7 và 9. g

1.5 Bài tập

Bài 79. Chiều dài một cây cầu là l =1745.25m ± 0.01 m. Hãy viết số quy tròn của số gần đúng1745.25

Bài 80.

(a) Cho giá trị gần đúng của sốπ làa=3.14159263589với độ chính xác là 10−10. Hãy cho biết số quy tròn củaa.

(b) Chob=3.14vàc=3.1416là những giá trị gần đúng củaπ. Hãy ước lượng sai số tuyệt đối củab và c.

Bài 81. Một tam giác có ba cạnh được đo như sau a= 6.3 cm ± 0.1 cm, b =10

Một phần của tài liệu Giáo trình Toán ứng dụng (Trang 81 - 93)