Sai số tuyệt đối và sai số tương đối
Sai sốlà giá trị chênh lệch giữa giá trị đo được hoặc tính được a và giá trị thực hay giá trị chính xáca ⋆ của một đại lượng nào đó.
• Sai số tuyệt đối giới hạn: Số dương ∆a nhỏ nhất thoả mãn
• Sai số tương đối giới hạn: δa = ∆a
Các loại sai số
Sai số giả thiết xuất hiện khi các bài toán được giả định đạt các điều kiện lý tưởng nhằm giảm độ phức tạp Một ví dụ điển hình là vào năm 1964, Arno Penzias và Robert Wilson phát hiện bức xạ phông nền vũ trụ trong quá trình nghiên cứu máy thu tín hiệu vi sóng tại phòng thí nghiệm Bell Nguyên nhân của sai số này là do trong quá trình chế tạo máy thu, họ không tính đến độ nhiễu của bức xạ nền vũ trụ, khi mà học thuyết về vụ nổ Big Bang vẫn chưa được công nhận.
Sai số do số liệu ban đầu xảy ra khi có sự không chính xác trong việc đo đạc và cung cấp giá trị đầu vào Một ví dụ điển hình cho sai số này là sự cố của tàu thăm dò khí hậu Mars Climate Orbiter vào năm 1999, khi nó bị phá hủy do nhầm lẫn đơn vị đo giữa số liệu đầu vào và lập trình trên máy tính Hậu quả là tàu không kịp giảm tốc khi tiếp cận bầu khí quyển sao Hỏa.
• Sai số phương pháp: Xuất hiện do việc giải bài toán bằng phương pháp gần đúng.
• Sai số tính toán: Xuất hiện do làm tròn số trong quá trình tính toán, quá trình tính càng nhiều thì sai số tích luỹ càng lớn.
Sai số quy tròn
Quy tắc quy tròn số yêu cầu sai số quy tròn tuyệt đối không vượt quá một nửa đơn vị ở hàng giữ lại cuối cùng Cụ thể, nếu chữ số bỏ đi đầu tiên lớn hơn hoặc bằng 5, ta sẽ cộng thêm một đơn vị vào chữ số giữ lại cuối cùng; ngược lại, nếu chữ số bỏ đi đầu tiên nhỏ hơn 5, ta giữ nguyên chữ số giữ lại cuối cùng.
Ví dụ dưới đây chỉ ra ảnh hưởng của sai số quy tròn trong quá trình tính toán.
Lời giải Theo khai triển nhị thức Newton ta có
2 = 1.414213562373095 . Kết quả của phép tính Ahoàn toàn phụ thuộc vào việc thu gọn số √
Ba kết quả đầu cho thấy tính gần đúng của khai triển nhị thức Newton là rất không chính xác Điều này chứng minh rằng việc quy tròn số và lựa chọn thuật toán có ảnh hưởng lớn đến quá trình tính toán.
Cách viết số xấp xỉ
Chữ số có nghĩa là những chữ số khác không phải chữ số đầu tiên, được xác định từ trái sang phải trong một số viết dưới dạng thập phân.
Ví dụ số 3.14 có ba chữ số có nghĩa Số0.0314 cũng có ba chữ số có nghĩa.
• Chữ số đáng tin: Mọi số thập phân đều có dạng: a =±X αs10 s Giả sử alà giỏ trị xấp xỉ củaa ⋆ Nếu∆a ≤0.5ã10 s thỡ ta núiαs là chữ số đỏng tin.
• Cách viết số xấp xỉ
+ Viết kèm theo sai số: a ⋆ =a±∆a hoặc a ⋆ =a(1±δa).
Theo quy ước, mọi chữ số được coi là số đáng tin cậy, trong khi các số được viết theo cách thứ hai chỉ ra rằng sai số tuyệt đối của chúng không vượt quá một nửa đơn vị ở hàng cuối cùng.
Ví dụ 1.3 Cho a= 65.8274 với ∆ a = 0.0043 thì các chữ số 6,5,8,2 là các chữ số đáng tin Nếu ∆a = 0.0067 thì các chữ số 6,5,8 là các chữ số đáng tin.
Các quy tắc tính sai số
∆ x+y = ∆ x + ∆ y b) Sai số của tích u=xy: δxy =δx+δy. c) Sai số của thương u= x y, y ̸= 0: δx/y=δx+δy. d) Công thức tổng quát u=f(x1, x2, , xn):
Thuật toán (Algorithm)
Thuật toán là một tập hợp hữu hạn các chỉ dẫn rõ ràng, được thiết kế để thực hiện một nhiệm vụ cụ thể từ một trạng thái ban đầu Khi các chỉ dẫn này được thực hiện một cách chính xác, chúng sẽ dẫn đến kết quả như mong đợi.
Vớ dụ 1.4 Tớnh tổng x1+x2+ã ã ã+xN.
• Lấy số thứ nhất x1 và cộng với x2.
• Cộng số thứ 3 vào tổng.
• Tiếp tục cho đến xN.
Mã giả (Pseudocode)
Mã giả là một mô tả ngắn gọn và không chính thức về thuật toán lập trình, sử dụng các quy ước cấu trúc từ nhiều ngôn ngữ lập trình Nó loại bỏ những chi tiết không cần thiết như chương trình con và khai báo biến, giúp người đọc dễ dàng hiểu rõ hơn về thuật toán Ngoài ra, mã giả còn được bổ sung bằng mô tả chi tiết bằng ngôn ngữ tự nhiên và ký hiệu toán học đơn giản khi cần thiết.
Vớ dụ 1.5 Viết mó giả cho thuật toỏn: Tớnh tổng x1+x2+ã ã ã+xN.
• Bước 3: For i= 1,2, , N Set SU M =SU M+xi.
3 với giá trị gần đúng a= 1.73 Hãy cho biết sai số tuyệt đối của nó.
2 Đo độ dài của cầu sông Hàn là 487.7m và sai số tuyệt đối là ∆a= 0.01m Tính δa.
3 Khi đo một số góc ta được các giá trị sau: a= 21 o 37 ′ 3 ′′ ; b= 1 o 10 ′′
Hãy tính sai số tương đối của các số xấp xỉ đó biết rằng sai số tuyệt đối trong phép đo là 1 ′′
4 Hãy xác định sai số tuyệt đối của các số xấp xỉ sau đây cho biết sai số tương đối của chúng: a) a= 13267;δa = 0.1%. b) b= 2.32; δb = 0.7%.
5 Hãy xác định các chữ số đáng tin trong các số a với sai số tuyệt đối như sau: a) a= 0.3941;∆a = 0.25ã10 − 2 b) b = 38.2543;∆b = 0.27.10 −2
6 Hãy xác định số những chữ số đáng tin trong các chữ số a với sai số tương đối như sau: a) a= 1.8921; δa= 0.1ã10 −2 b) a= 22.351; δa= 0.1.
Để xác định giá trị của hàm số và sai số tương ứng, chúng ta tiến hành như sau: a) Đối với hàm số u = ln(x + y²) với x = 0.97 và y = 1.132, giá trị của hàm là u = ln(0.97 + 1.132²) Tính toán sai số tuyệt đối và sai số tương đối dựa trên giá trị này để đảm bảo mọi chữ số có nghĩa đều đáng tin cậy.b) Đối với hàm số u = (x + y²)/z với x = 3.28, y = 0.932 và z = 1.132, giá trị của hàm là u = (3.28 + 0.932²)/1.132 Tương tự, cần tính sai số tuyệt đối và sai số tương đối để xác định độ tin cậy của kết quả.
8 Tính tổng S sau đây với ba chữ số lẻ thập phân đáng tin:
1!+ 1 2!+ã ã ã+ 1 n!+ .với sai số tuyệt đối không quá 10 − 4
Trong chương này, chúng tôi giới thiệu các công thức nội suy đa thức, tập trung vào nội suy Lagrange và nội suy Newton, cùng với phương pháp chọn mốc nội suy tối ưu Các kết quả chính được trình bày một cách chi tiết, và bạn đọc có thể tham khảo thêm trong các tài liệu [4, 1, 9, 10].
Phương pháp Vandermonde
Chon+1điểm(x0, y0),(x1, y1), ,(xi, yi), ,(xn, yn), trong đó cácxiđôi một khác nhau,i= 0,1, , n Tìm một đa thức bậc không quá n y=f(x) = c 0 +c 1 x+c 2 x 2 +c 3 x 3 +ã ã ã+c n x n sao cho y0 =f(x0) =c0+c1x0+c2x 2 0 +c3x 3 0 +ã ã ã+cnx n 0 , y1 =f(x1) =c0+c1x1+c2x 2 1 +c3x 3 1 +ã ã ã+cnx n 1 , y i =f(x i ) = c 0 +c 1 x i +c 2 x 2 i +c 3 x 3 i +ã ã ã+c n x n i , yn=f(xn) =c0+c1xn+c2x 2 n +c3x 3 n +ã ã ã+cnx n n
Để tìm các hệ số ci (với i = 0, 1, , n) và từ đó xác định đa thức nội suy, chúng ta cần giải hệ phương trình đã cho Hệ phương trình này có thể được biểu diễn dưới dạng ma trận vector.
trong đó ma trận A được gọi là ma trận Vandermonde Bằng một số phép biến đổi ta có thể chỉ ra rằng: det(A) = Y
(x j −x i )̸= 0 vì các xi, i= 0, n đôi một khác nhau nên hệ Vandermonde trên có nghiệm duy nhất.
Trong ví dụ 2.1, bốn phép đo điện thế của một hệ thống điện được thực hiện tại các thời điểm khác nhau: 0 giây là 1 V, 1 giây là 2 V, 2 giây là 9 V và 3 giây là 28 V Dựa trên các dữ liệu này, cần tìm một mô hình toán học phù hợp cho hệ thống điện này.
Lời giải Gọi đa thức bậc ba mô tả hệ thống trên có dạng y=f(x) =c 0 +c 1 x+c 2 x 2 +c 3 x 3 Khi đó ta có hệ phương trình tuyến tính
Dễ dàng kiểm tra được hệ trên có nghiệm c=h
Do đó đa thức bậc ba cần tìm là y=f(x) = 1 +x 3
Phương pháp Vandermonde không phải là lựa chọn tối ưu cho bài toán nội suy, đặc biệt khi số lượng mốc nội suy tăng lên Chúng ta sẽ khám phá thêm một số phương pháp khác nhằm tìm ra đa thức nội suy hiệu quả hơn.
Nội suy Lagrange
Định lý 2.2 khẳng định rằng với n+1 điểm phân biệt (x₀, y₀), (x₁, y₁), , (xₙ, yₙ) trong đó các giá trị x là khác nhau, sẽ tồn tại duy nhất một đa thức bậc không quá n đi qua tất cả n+1 điểm này.
Chúng ta có thể kiểm tra rằng mỗi Lk(x), với k = 0 đến n, là một đa thức bậc n, thỏa mãn điều kiện Lk(xk) = 0 và Lk(xj) = 0 cho mọi j khác k Từ đó, suy ra rằng Pn(x) là đa thức bậc không quá n, thỏa mãn Pn(xi) = yi cho mọi i từ 0 đến n.
Chúng ta sẽ chứng minh tính duy nhất bằng phương pháp phản chứng Giả sửPn(x) vàQn(x)là hai đa thức bậc không quá n và đều thỏa mãn
Khi đó, đa thức H(x) = Pn(x)−Qn(x) cũng có bậc không quán và có n+ 1nghiệm. Vậy
Chú ý 2.1 Có thể chứng minh sự tồn tại duy nhất bằng cách sử dụng hệ Vander- monde mà không cần viết công thức nội suy Lagrange.
Ví dụ 2.2 Trong trường hợp n= 1, tức là chỉ có hai mốc nội suy x0 x1 y0 y1 chúng ta dễ dàng suy ra đa thức nội suy Lagrange có dạng:
Ví dụ 2.3 Ước lượng giá trị của y tại x = 0 từ dữ liệu sau (−2,5),(1,7), (3,11),
Lời giải Áp dụng công thức nội suy ta có y(0) =5× (0−1)(0−3)(0−7)
□Chương trình MATLAB tính đa thức nội suy Lagrange: f u n c t i o n y i = L a g r a n g e I n t e r p ( x , y , x i ) n = l e n g t h ( x ) ;
L ( i ) = L ( i )∗( x i − x ( j ) ) / ( x ( i ) − x ( j ) ); y i = sum ( y ∗L ) ; Định lý 2.3 cung cấp công thức tính sai số của phép nội suy Cho f ∈C n+1 [a, b] và các điểm (x0, y0),(x1, y1), ,(xn, yn) thuộc đồ thị hàm số f với x 0 , x 1 , , x n là các số thực phân biệt Đa thức Lagrange bậc n, ký hiệu P n (x), đi qua các điểm này Đối với mỗi x ∈ [a, b], tồn tại ξn nằm giữa m= min{x0, x1, , xn, x} và M = max{x0, x1, , xn, x}, sao cho f(x)−Pn(x) = f (n+1) (ξn).
Chứng minh Rõ ràng công thức trên đúng với các x = xi, i = 0,1, , n Tại điểm x̸=xi, xét hàm ϕ(t) = [f(t)−Pn(t)]
Với t=xj, j = 0,1, , n ta có ϕ(xj) = [f(xj)−Pn(xj)]
Với t=xta cũng có ϕ(x) = [f(x)−Pn(x)]
Từ giả thiết của hàm f và cách xây dựng hàm ϕ, ta có ϕ ∈ C n+1 [a, b] với n + 2 nghiệm Áp dụng định lý Rolle, có ít nhất một nghiệm của đạo hàm f' giữa hai nghiệm của hàm ϕ, dẫn đến ϕ' có ít nhất n + 1 nghiệm trong khoảng (a, b) Tương tự, ϕ'' có ít nhất n nghiệm và ϕ(n+1) có ít nhất một nghiệm trong khoảng (a, b) Do đó, tồn tại ξ ∈ (a, b) sao cho ϕ(n+1)(ξ) = 0.
Mặt khác, Pn (n+1) (ξ) = 0 nên ta có f(x)−Pn(x) = f (n+1) (ξn)
■ Đặt M = sup x ∈ [a,b] f (n+1) (x) Khi đó ta có ước lượng sai số như sau:
Ví dụ 2.4 Tìm cận trên cho sai số tại điểm x = 0.25 và x = 0.75 giữa hàm số f(x) =e x và đa thức nội suy đi qua các mốc −1,−0.5,0,0.5,1.
Lời giải Ta có M = sup x ∈ [ − 1,1] f (5) (x) = e Do đó tại x= 0.25ta có f(0.25)−P4(0.25)≤ e
Tương tự tạix= 0.75 ta có f(0.75)−P 4 (0.75)≤ e
Để xác định công thức sai số và tìm sai số lớn nhất khi sử dụng đa thức nội suy Lagrange để xấp xỉ hàm số f(x) = 1/x với ba mốc nội suy x0 = 2, x1 = 2.75, x2 = 4, ta cần áp dụng công thức sai số của phương pháp nội suy Lagrange Sai số lớn nhất sẽ phụ thuộc vào đạo hàm bậc cao nhất của hàm f(x) trong khoảng [x0, x2] và khoảng cách giữa các mốc nội suy Việc tính toán chính xác sai số giúp đánh giá độ chính xác của phép nội suy.
Lời giải Ta có f ′ (x) =−x − 2 , f ′′ (x) = 2x − 3 , f ′′′ (x) = −6x − 4 Công thức sai số có dạng f ′′′ (ξ(x))
16 Bây giờ ta cần xác định giá trị tuyệt đối lớn nhất của hàm g(x) = (x−2)(x−2.75)(x−4) = x 3 −35
2(3x−7)(2x−7) ta có hai điểm dừng 7
Từ đó suy ra sai số lớn nhất là f ′′′ (ξ(x))
Chọn mốc nội suy tối ưu
Hiện tượng Runge
1 + 25x 2 được nội suy bởi các mốc cách đều xi giữa −1và 1 như sau: xi = 2i n −1, i∈ {0,1, , n}.
Hình 2.1: Hiện tượng Runge cho hàm y= 1
Hiện tượng Runge xảy ra khi sai số tại các điểm gần hai đầu mút tăng lên vô hạn, đặc biệt khi số lượng điểm chia trong nội suy cách đều tăng lên.
Chú ý 2.2 Hiện tượng Runge không phải luôn xảy ra với mọi hàm chẳng hạn hàm y= cosx như hình vẽ bên dưới.
Mốc nội suy Chebyshev
,|x| ≤1 được gọi là đa thức Chebyshev bậc n Ta có thể dễ dàng tính được một số đa thức đầu tiên: T0(x) = 1, T1(x) =x và T2(x) = 2x 2 −1.
Tổng quát, đặt y= arccosx ta có
T n+1 (x) = cos(n+ 1)y= cos(ny+y) = cosnycosy−sinnysiny;
−3 −2 −1 0 1 2 3 x x7→P 15 (x) x7→ cos(x) Hình 2.2: Hiện tượng Runge không xảy ra với hàm y= cosx
Hình 2.3: Bốn đa thức Chebyshev
Tn − 1(x) = cos(n−1)y= cos(ny−y) = cosnycosy+ sinnysiny.
Cộng vế với vế hai phương trình trên ta thu được
Từ đó ta thu được công thức truy hồi sau
Dựa trên công thức truy hồi trên, ta có một số tính chất cơ bản của đa thức Chebyshev như sau:
• Tn(x) là các các đa thức bậcn với hệ số ứng với số mũ cao nhất là2 n − 1 :
• Tn(x) là hàm chẵn khi n là số chẵn và Tn(x) là hàm lẻ khi n là số lẻ.
• Với mọi x∈[−1,1]ta có |T n (x)| ≤1 Đẳng thức xảy ra tại các điểm có dạng x k = cos kπ n
• Tất cả các nghiệm củaTn(x)nằm trong khoảng (−1,1)được cho bởi công thức sau: xk= cos
, k= 1, , n. Định nghĩa 2.1 Cho trước một số tự nhiênn, các điểm Chebyshev trên(−1,1)được cho bởi công thức sau xk= cos
Chúng là nghiệm của đa thức Chebyshev bậc n dạng
Hình 2.4: Mốc nội suy Chebychev Với [a, b] bất kỳ ta có xk = 1
, k= 1, , n. Định lý 2.4 Cho f ∈C n+1 [−1,1] vàPn(x)là đa thức nội suy của f với các mốc nội suy Chebyshev Khi đó x ∈max[ − 1,1]|f(x)−Pn(x)| ≤ 1
Chứng minh Ta có công thức sai số của phép nội suy f(x)−P n (x) = ω(x)
Các đa thức được xác định duy nhất bởi các nghiệm của chúng, và vì ω(x) và Tn(x) có cùng số nghiệm, ta có ωn = cnTn+1 với cn là một hằng số Hệ số của số hạng mũ cao nhất x^(n+1) của ωn là 1, do đó từ tính chất của Tn+1, suy ra cn = 2 - n.
|ωn(x)|=|cnTn+1(x)|=|cn||Tn+1(x)| ≤2 −n với mọix∈[−1,1] Từ đó ta suy ra điều phải chứng minh ■
Với đoạn [a, b] bất kỳ, bằng cách đổi biến ta có
Theo công thức ước lượng sai số, nếu hàm f(x) bị chặn và các đạo hàm cấp cao cũng bị chặn, thì khi số mốc nội suy tăng lên, sai số sẽ giảm dần về 0.
Cách chọn mốc nội suy Chebyshew được coi là tối ưu nhất Theo Định lý 2.5, với mọi đa thức Pn(x) có hệ số ứng với lũy thừa bậc cao nhất bằng 1, ta có những đặc điểm quan trọng cần lưu ý.
2 n−1 max x ∈ [ − 1,1]|Tn(x)| ≤ max x ∈ [ − 1,1]|Pn(x)|. Hơn nữa, đẳng thức xảy ra chỉ khi Pn(x) = 2 − n+1 Tn(x).
Chứng minh Giả sử phản chứng x ∈max[ − 1,1]|Pn(x)| ≤ 1
2 n − 1 T n (x) đều có hệ số ứng với bậc cao nhất x n bằng 1nên degQ(x)≤n−1.
Tại n+ 1 điểm cực trị x k = cos kπ n
, (k = 0,1, , n) của đa thức T n (x) ta có
Theo giả thiết phản chứng
2 n − 1 với mọik = 0,1, , nnên Q(xk)≥0, với k lẻ và Q(xk)≤0, với k chẵn
Hàm Q là một hàm liên tục, do đó theo định lý giá trị trung gian, với mỗi j = 0, 1, , n−1, đa thức Q(x) sẽ có ít nhất một nghiệm nằm giữa xj và xj+1 Điều này dẫn đến việc Q(x) có ít nhất n nghiệm trong khoảng [-1, 1] Vì bậc của Q không vượt quá n−1, ta có thể kết luận rằng Q(x) ≡ 0.
Ví dụ 2.6 Sử dụng15mốc nội suy Chebyshev cho hàm Rungey = 1
1 + 25x 2 ta được kết quả như hình vẽ sau
Hình 2.5: Nội suy hàm Runge với mốc nội suy Chebyshev
Nội suy Newton
Tỷ sai phân
Tỷ sai phân cấp 1 của hàm f(x)tương ứng với 2 điểm x0 vàx1 được ký hiệu f[x0, x1] và được cho bởi công thức sau f[x0, x1] = f(x1)−f(x0) x1−x0
Nếux 0 , x 1 , và x 2 là các điểm phân biệt, tỷ sai phân cấp 2 được cho bởi công thức sau f[x0, x1, x2] = f[x1, x2]−f[x0, x1] x2 −x0
Giả sử x0, x1, , xn là n+ 1 điểm phân biệt Khi đó tỷ sai phân cấp n được cho bởi công thức sau f[x 0 , x 1 , , x n ] = f[x 1 , x 2 , , x n ]−f[x 0 , x 1 , , x n−1 ] xn−x0
Để thuận tiện trong việc trình bày, chúng ta quy ước rằng tỷ sai phân cấp 0 của hàm ứng với xi, ký hiệu f[xi], là giá trị của hàm tại xi, tức là f[xi] = f(xi).
Dưới đây là một số tính chất của tỷ sai phân:
Mệnh đề 2.2 Cho y = f(x) là một hàm số và x 0 , x 1 , , x n là n+ 1 số thực phân biệt Khi đó f[x 0 , x 1 , , x n ] =f[x i 0 , x i 1 , , x i n ] trong đó i 0 , i 1 , , i n mà một hoán vị của
Bằng cách sử dụng khái niệm tỷ sai phân và phương pháp quy nạp toán học, chúng ta có thể chứng minh công thức nội suy Newton Cụ thể, định lý 2.6 khẳng định rằng nếu Pn(x) là đa thức nội suy của hàm y = f(x) tại n+1 điểm phân biệt (x0, y0), (x1, y1), , (xn, yn), với điều kiện Pn(xi) = f(xi) cho i = 0, 1, , n, thì Pn(x) sẽ có một dạng cụ thể.
+f[x0, x1, , xn](x−x0)(x−x1) (x−xn − 1). Áp dụng định lý Lagrange ta thấy nếu hàm f ∈ C 1 ([a, b]), x 0 , x 1 ∈ [a, b], khi đó tồn tại ξ là một số nằm giữa x0 và x1 sao cho f[x0, x1] = f(x1)−f(x0) x 1 −x 0 =f ′ (ξ).
Kết quả dưới đây chỉ ra mối liên hệ giữa tỷ sai phân và đạo hàm Định lý 2.7 cho biết rằng nếu hàm số \( f(x) \) là hàm khả vi liên tục trên đoạn \([a, b]\) với \( n+1 \) điểm phân biệt \( x_0, x_1, \ldots, x_n \) thuộc \([a, b]\), thì tồn tại một điểm \( \xi \) trong khoảng \((a, b)\) sao cho tỷ sai phân \( f[x_0, x_1, \ldots, x_n] \) bằng \( \frac{1}{n!} f^{(n)}(\xi) \).
Vì f(xi) = Pn(xi) với mọi i = 0,1, , n nên hàm g có n+ 1 không điểm phân biệt trong [a, b] Áp dụng định lý Rolle mở rộng, tồn tại ξ ∈(a, b) sao cho g (n) (ξ) = 0 Do đó
Vì Pn(x) là đa thức bậc n với hệ số ứng với lũy thừa bậc n là f[x0, x1, , xn] nên ta có
P n (n) (x) = n!f[x0, x1, , xn] với mọix Từ đó suy ra f[x0, x1, , xn] = 1 n!f (n) (ξ).
Sử dụng công thức trên ta có thể suy ra công thức sai số của đa thức nội suy ở Định lý 2.3.
Ví dụ 2.7 Tìm đa thứcP2(x)cho hàm sốy=√ xđi qua các điểm nội suy(1,1),(4,2), và (9,3) sử dụng công thức tỷ sai phân Newton.
Lời giải Áp dụng công thức nội suy Newton ta có
□ Để rõ ràng, các tỷ sai phân thường được liệt kê dưới dạng bảng gọi là bảng tỷ sai phân như sau: x0 y0 =f[x0] f[x0, x1] x1 y1 =f[x1] f[x0, x1, x2] f[x 1 , x 2 ] f[x 0 , x 1 , x 2 , x 3 ] x 2 y 2 =f[x 2 ] f[x 1 , x 2 , x 3 ] f[x2, x3] x3 y3 =f[x3] hoặc x0 y0 =f[x0] f[x0, x1] f[x0, x1, x2] f[x0, x1, x2, x3] x1 y1 =f[x1] f[x1, x2] f[x1, x2, x3] x2 y2 =f[x2] f[x2, x3] x3 y3 =f[x3] hoặc x0 y0 =f[x0] x1 y1 =f[x1] f[x0, x1] x2 y2 =f[x2] f[x1, x2] f[x0, x1, x2] x 3 y 3 =f[x 3 ] f[x 2 , x 3 ] f[x 1 , x 2 , x 3 ] f[x 0 , x 1 , x 2 , x 3 ]
Chương trình MATLAB để tính bảng tỷ sai phân f u n c t i o n F=d i v i d e d d i f f e r e n c e ( x , f ) n=l e n g t h ( x )−1;
Ví dụ 2.8 Bảng tỷ sai phân cho các điểm (1,6),(2,11),(3,18), và (4,27) có dạng x i y i f[x i , x i+1 ] f[x i , x i+1 , x i+2 ]
Mốc cách đều
Giả sử x0, x1, , xnlà một dãy tăng các điểm phân biệt cách đều nhau: h=xi+1−xi và x=x0+sh Khi đó công thức nội suy Newton có được viết dưới dạng
= s(s−1) .(s−k+ 1) k! Định nghĩa 2.3 (Sai phân tiến) Cho dãy {pn} ∞ n=0, khi đó biểu thức
∆p n =p n+1 −p n , (n ≥0), được gọi là sai phân tiến cấp 1của dãy {pn} ∞ n=0 Tương tự, ta có
∆ k pn= ∆(∆ k−1 pn), (k ≥2) được gọi là sai phân tiến cấp k của dãy {pn} ∞ n=0.
Mối quan hệ giữa tỷ sai phân và sai phân tiến như sau f[x0, x1] = f(x 1 )−f(x 0 ) x1−x0
Sử dụng ký hiệu sai phân, ta có công thức Newton tiến
Nếu các mốc nội suy được sắp xếp theo thứ tự từ cuối lênxn, xn − 1, , x0, ta có công thức nội suy Newton lùi sau
Pn(x) =f[xn] +f[xn, xn − 1](x−xn) +
Nếu các mốc nội suy cách đều với x=xn+sh vàx=xi+ (s+n−i)hcông thức trên trở thành
=f[xn] +shf[xn, xn − 1] +s(s+ 1)h 2 f[xn, xn − 1, xn − 2] +ã ã ã +s(s+ 1)ã ã ã(s+n−1)h n f[xn, x n−1 , , x0]. Định nghĩa 2.4 (Sai phân lùi) Cho dãy {pn} ∞ n=0, khi đó biểu thức
∇pn=pn−pn − 1, (n ≥1), được gọi là sai phân lùi của dãy {pn} ∞ n=0 Tương tự, biểu thức
∇ k pn=∇(∇ k − 1 pn), (k ≥2) được gọi là sai phân lùi cấp k của {pn} ∞ n=0.
Từ định nghĩa trên ta suy ra f[xn, xn − 1] = 1 h∇f(xn), f[xn, xn − 1, xn − 2] = 1
Bằng quy nạp toán học, ta có f[xn, xn − 1, , xn − k] = \(\frac{1}{k!} h^k \nabla^k f(xn)\) Áp dụng định nghĩa sai phân lùi, ta có công thức nội suy Newton lùi: \(p_n(x) = f[xn] + \).
Ví dụ 2.9 Cho trước 5 điểm (−1,1), (1,−1), (2,13), (3,69), (4,221) Hãy tìm đa thức bậc không quá 4 đi qua các điểm trên.
Lời giải Ta có bảng tỷ sai phân như sau xi fi
4 221 Áp dụng công thức nội suy Newton tiến ta có
+ (x+ 1)(x−1)(x−2)(x−3). Áp dụng công thức nội suy Newton lùi ta có
Rút gọn cả hai ta đều được
Nếu thêm một điểm (0,−3), điều gì sẽ xảy ra? Khi đó xi fi
Cột cuối cùng có hệ số bằng 0, do đó chúng ta chỉ thu được đa thức như đã nêu Điều này cho thấy điểm mới thu được nằm trên đồ thị của đa thức bậc bốn.
Khi ước lượng giá trị ở đầu bảng, áp dụng công thức nội suy Newton tiến để có kết quả chính xác Đối với giá trị ở cuối bảng, công thức nội suy Newton tiến lùi sẽ mang lại độ chính xác cao hơn Nếu giá trị cần ước lượng nằm ở giữa bảng, công thức Stirling f(x0+hs) = y0 + s∆y − 1 + ∆y0 là lựa chọn thích hợp.
Ví dụ 2.10 Sử dụng bảng dữ liệu bên dưới, hãy tính f(x) = cot(πx) tại x= 0.225. x 0.20 0.21 0.22 0.23 0.24 f(x) 1.37638 1.28919 1.20879 1.13427 1.06489
Lời giải Do giá trị cần ước lượng nằm giữa bảng nên ta sẽ sử dụng công thức Stirling.
Ta có bảng sai phân như sau: x − 2 = 0.20 y − 2 = 1.37638
Sử dụng công thức Stirling với s= 0.225−0.22
1 Tìm đa thức nội suy đi qua các điểm sau x -2 1 4 -1 3 -4 y -1 2 59 4 24 -53
2 Hãy tính y(π/4)từ bảng dữ liệu sau: x 0 0.5 1 1.5 2 y -1.00 1.75 4.00 5.75 7.00
3 Cho bảng dữ liệu sau: x 0 0.5 1 1.5 2 y -0.7854 0.6529 1.7390 2.2071 1.9425 Hãy tính y(π/4)và y(π/2).
4 Các điểm x -2 1 4 -1 3 -4 y -1 2 59 4 24 -53 nằm trên một đa thức Sử dụng bảng tỷ sai phân, tìm bậc của đa thức đó.
5 Sử dụng phương pháp nội suy Newton tìm đa thức bậc thấp nhất đi qua các điểm sau x -3 2 -1 3 1 y 0 5 -4 12 0
9 Sử dụng công thức nội suy Lagrange, hãy phân tích phân thức hữu tỷ sau thành tổng các phân thức tối giản cơ bản
(a) Hãy tìm đa thức nội suy Lagrange qua ba điểm A1, A3 và A4.
(b) Hãy tìm đa thức nội suy bậc không quá bốn p4(x)đi qua 5 điểm trên.
(c) Hãy tìm một đa thức bậc năm đi qua 4điểm A 1 , A 2 , A 3 vàA 4
11 Có bao nhiêu đa thức bậc 5 cắt đa thức f(x) =x 6 −2x 5 + 4x 3 −2x 2 + 2x+ 4 tại 7 điểm phân biệt.
12 Số người nhiễm covid-19 ở Đà Nẵng trong mấy ngày đầu tháng 9 năm 2021 theo thống kê của bộ y tế như sau: x (ngày) 1 3 6 7 y (số ca nhiễm) 55 81 63 34 Hãy tìm đa thức nội suy P3(x) bậc không quá 3 đi qua bốn điểm trên và từ đó ước lượng số ca nhiễm trong ngày thứ 4.
13 Đa thức Berstein bậc n ứng với hàm f ∈C[0,1] được cho bởi
(a) Hãy tính B3(x) đối với hàm i f(x) = x; ii f(x) = x 2 ;
C n k x k (1−x) n−k với mọi n Từ đó chỉ ra, đa thức Berstein đối với f(x) =x 2 có dạng
TÍNH GẦN ĐÚNG ĐẠO HÀM VÀ TÍCH PHÂN
Trong chương này, chúng ta sẽ khám phá các phương pháp cơ bản để tính gần đúng đạo hàm và tích phân Để hiểu rõ hơn về những vấn đề này, bạn đọc có thể tham khảo thêm các tài liệu [4, 9, 11, 12].
Tính gần đúng đạo hàm
Đạo hàm của hàm số f tại điểm x0 được định nghĩa là giới hạn của tỉ số f(x0+h)−f(x0) h khi h tiến gần đến 0 Ký hiệu của đạo hàm là f ′ (x0) hoặc y ′ (x0), và được biểu diễn bằng công thức f ′ (x0) = lim h→0 f(x0+h)−f(x0) h.
Công thức trên cung cấp một phương pháp đơn giản để tính gần đúng đạo hàm f ′ (x0), với công thức f ′ (x0)≈ (f(x0+h)−f(x0))/h khi h gần 0 Mặc dù không phải là phương pháp hiệu quả nhất để xấp xỉ đạo hàm, nhưng đây là một công thức dễ nhớ Để có được giá trị đạo hàm chính xác hơn, ta xem xét n+1 điểm phân biệt {x0, x1, , xn} trong khoảng I, với f thuộc C n+1 (I) Đạo hàm có thể được tính thông qua công thức nội suy f(x) = Σ (f(xk)Lk(x)) + f(n+1)(ξ(x)).
(n+ 1)! (x−x0)(x−x1) .(x−xn) ta được f ′ (x) Xn k=0 f(xk)L ′ k (x) + f (n+1) (ξ(x))
(x−x k ). Chọn x=xj, ta được công thức (n+1)-điểm xấp xỉ f ′ (xj), f ′ (x j ) Xn k=0 f(x k )L ′ k (x j ) + f (n+1) (ξ(x j ))
(x j −x k ). Đầu tiên ta sẽ xét cụ thể trường hợp có ba mốc nội suyx0, x1, x2 Ta có f ′ (xj) X2 k=0 f(xk)L ′ k (xj) + f (3) (ξj)
Từ đó, ta có f ′ (xj) =f(x0) 2xj −x1−x2
(xj −xk) (3.1) trong đó ξ j phụ thuộc vàox j Công thức trên có dạng đơn giản hơn nếu các mốc nội suy cách đều tức là nếu x1 =x0+h, x2 =x0+ 2h, h̸= 0.
Khi đó, sử dụng (3.1) với x j =x 0 , x 1 =x 0 +h, x 2 =x 0 + 2h , ta có f ′ (x0) = 1
Tương tự, cho x j =x 1 ta được f ′ (x1) = 1
6 f (3) (ξ1) và với xj =x2 ta có f ′ (x2) = 1
Vì x1 =x0+h, x2 =x0+ 2h các công thức trên trở thành f ′ (x0) = 1
3 f (3) (ξ2). Để thuận tiện, trong công thức thứ hai ta thay x 0 cho x 0 +h, công thức cuối ta thay x0 cho x0+ 2h thu được ba công thức xấp xỉ cho f ′ (x0)như sau f ′ (x0) = 1
Lưu ý rằng trong phương trình thứ ba, nếu thay thế −h bằng h, công thức sẽ trở về công thức đầu tiên, do đó thực chất chỉ có hai công thức.
• Công thức ba điểm ở đầu mút: f ′ (x0) = 1
• Công thức ba điểm ở giữa: f ′ (x0) = 1
6 f (3) (ξ1) (3.3)Mặc dù sai số ở hai công thức (3.2) và (3.3) đều là O(h 2 ), sai số của công thức (3.3) chỉ xấp xỉ một nửa sai số của công thức (3.2).
Nếu ta sử dụng đa thức nội suy cho 5 điểm ta một cách tương tự ta cũng thu được các công thức 5điểm với sai số O(h 4 ) như sau f ′ (x0) = f(x0−2h)−8f(x0−h) + 8f(x0+h)−f(x0+ 2h)
Ví dụ 3.1 Giá trị của hàm f(x) =xe x được cho bởi bảng sau x f(x)
Lời giải Từ bảng dữ liệu ta có thể sử dụng 4 công thức khác nhau để tính gần đúng f ′ (2.0).
Sử dụng công thức (3.2) vớih= 0.1 ta có f ′ (2.0)≈ 1
Sử dụng công thức (3.3) vớih= 0.1ta có f ′ (2.0)≈ 1
Sử dụng công thức 5 điểm với h= 0.1 ta có f ′ (2.0)≈ 1
Giá trị chính xác của f ′ (2.0) là (2 + 1)e 2 = 22.167168, vì vậy sai số trong 5 trường hợp trên lần lượt là 1.35×10 − 1 ,1.13×10 − 1 ,−6.16×10 − 2 ,−2.47×10 − 1 và ×10 − 4 □
Bằng cách sử dụng đa thức nội suy với nhiều mốc nội suy hơn ta thu được công thức đạo hàm cấp cao hơn, chẳng hạn f ′′ (x0) = 1 h 2 [f(x0 −h)−2f(x0) +f(x0+h)]− h 2
Sử dụng công thức trên cho ví dụ trước ta có thể tính được đạo hàm cấp 2 vớih= 0.1 như sau f ′′ (2.0)≈ 1
Vì f(x) = (x+ 2)e x , giá trị chính xácf ′′ (2.0) = 29.556224 Do đó hai sai số tương ứng là −3.70×10 −2 và −1.48×10 −1
Tính gần đúng tích phân
Công thức hình thang
Công thức hình thang: Với x0 =a, x1 =b, h =b−a ta có
Hình 3.1: Công thức hình thang
Công thức Simpson
Ví dụ 3.2 Sử dụng công thức hình thang và công thức Simpson xấp xỉ tích phân
0 f(x)dx với f(x) được cho bởi công thức sau:
(e) sinx (f) e x Lời giải Trên đoạn[0,2] công thức hình thang và công thức Simpson có dạng
Ta thấy công thức Simpson là chính xác vì sai số với f(x) = x 2 là bằng 0 Kết quả được tổng kết dưới bảng sau
Bậc chính xác
Bậc chính xác của một phương pháp xấp xỉ tích phân được định nghĩa là số nguyên k lớn nhất, trong đó mọi đa thức có bậc nhỏ hơn hoặc bằng k sẽ được tính chính xác bằng phương pháp này.
Theo định nghĩa trên ta thấy bậc chính xác của công thức hình thang là1và của công thức Simpson là3.
Bậc chính xác của phương pháp xấp xỉ tích phân đạt được khi và chỉ khi sai số bằng không đối với mọi đa thức bậc k = 0, 1, , n và khác không với một đa thức bậc n + 1 nào đó.
Công thức hình thang và công thức Simpson là hai dạng của công thức Newton - Cotes Trong đó, công thức Newton - Cotes được chia thành hai loại chính: công thức Newton - Cotes đóng và công thức Newton - Cotes mở.
Công thức Newton - Cotes
Công thức Newton - Cotes đóng: sử dụng các nút xi = x0+ih, x0 =a, xn =b, h= (b−a)/n ta có
Xn i=0 aif(xi) với ai Z b a
Một số trường hợp cụ thể
980f (4) (ξ) trong đó ξ là một số nào đó nằm giữax 0 và x 3
945f (6) (ξ) trong đó ξ là một số nào đó nằm giữax0 và x4.
Công thức Newton-Cotes mở: sử dụng các nút xi =x0+ih, x0 =a+h, xn =b−h, h= (b−a)/(n+ 2), ta có
Xn i=0 aif(xi) với ai Z b a
Một số trường hợp cụ thể
3 f ′′ (ξ) trong đó ξ là một số nào đó nằm giữax −1 và x 1
4 f ′′ (ξ) trong đó ξ là một số nào đó nằm giữa x −1 vàx 2
45 f (4) (ξ) trong đó ξ là một số nào đó nằm giữa x −1 vàx3.
144 f (4) (ξ) trong đó ξ là một số nào đó nằm giữa x − 1 vàx4.
Ví dụ 3.3 So sánh kết quả xấp xỉ bằng các công thức Newton - Cotes đóng và mở khi xấp xỉ tích phân
Lời giải Với công thức công thức Newton - Cotes đóng, ta có
Với công thức công thức Newton - Cotes mở, ta có
24 [11 sinπ/20 + sinπ/10 + sin 3π/20 + 11 sinπ/5]≈0.29286923.Chi tiết về sai số được thể hiện ở bảng dưới đây n 0 1 2 3 4 Đóng 0.27768018 0.29293264 0.29291070 0.29289318
Công thức hình thang mở rộng và công thức Simpson mở rộng
Để đạt được kết quả xấp xỉ chính xác hơn, việc chia nhỏ đoạn [a, b] trước khi áp dụng công thức hình thang hoặc Simpson là cần thiết Theo Định lý 3.1, công thức hình thang mở rộng được áp dụng cho hàm f ∈ C²[a, b], với h = (b−a)/n và xj = a + jh.
12 h 2 f ′′ (à) với một à nào đú thuộc [a, b]. y x y = f (x)
Hình 3.2: Công thức hình thang mở rộng Định lý 3.2 (Công thức Simpson mở rộng) Cho f ∈ C 2 [a, b], h = (b−a)/n, xj a+jh, n chẵn Khi đú tồn tại à∈[a, b] sao cho
Ví dụ 3.4 Ước lượng tích phân
Để tính giá trị của tích phân \( \int f(x)dx \) từ bảng số liệu đã cho, với các giá trị \( x \) là 0, 0.5, 1, 1.5, 2, 2.5 và \( f(x) \) tương ứng là 1.5, 2, 2, 1.6364, 1.25, 0.9565, chúng ta sẽ áp dụng công thức Simpson, vì nó cho độ chính xác cao hơn so với công thức hình thang Với 6 điểm dữ liệu, chúng ta sẽ kết hợp sử dụng công thức Simpson 3/8 để tính toán.
Công thức Gauss
Đa thức Legendre
2 n n! d n dx n (x 2 −1) n có các tính chất sau:
(1) Đa thức Legendre Pn có bậc n.
P(x)Pn(x)dx= 0 với mọi đa thức P(x)có bậc nhỏ hơn n.
Một số đa thức Legendre đầu tiên:
Các nghiệm của đa thức Legendre phân biệt trong khoảng (-1,1) và có tính đối xứng qua gốc tọa độ Điều này khiến chúng trở thành các nút tối ưu cho phương pháp.
Phương pháp Gauss sử dụng các nút x1, x2, , xn để tạo ra công thức xấp xỉ tích phân chính xác cho các đa thức có bậc nhỏ hơn 2n, với các nút này là nghiệm của đa thức Legendre bậc n Định lý 3.3 khẳng định rằng nếu x1, x2, , xn là các nghiệm của đa thức Legendre Pn(x), thì chúng có thể được sử dụng để tối ưu hóa tính chính xác trong việc xấp xỉ tích phân.
Yn j = 1 j ̸=i x−xj xi−xj dx.
Nếu P(x) là đa thức bất kỳ bậc nhỏ hơn 2n thì
Chứng minh Trước tiên, ta xét trường hợpP(x)là đa thức bậc nhỏ hơn n Sử dụng công thức nội suy Lagrange ta có
Vì degP(x)< n nên đạo hàm cấpn của P triệt tiêu, tức là P (n) (ξ) = 0 dó đó
Do đó định lý đúng với đa thức bậc nhỏ hơnn.
Tiếp theo, ta xétP(x)là các đa thức có bậc ít nhất làn và nhỏ hơn 2n Chia đa thức
P(x) cho đa thức LegendrePn(x)ta được
P(x) =Q(x)P n (x) +R(x) trong đódegR(x) < n Chú ý rằng các xi là nghiệm của Pn(x) với mọi i = 1,2, , n, ta có
P(xi) = Q(xi)Pn(xi) +R(xi) =R(xi).
Do degP(x) t o l c=(a+b ) / 2 ; f c=f ( c ) ; i f f c == 0 b r e a k end i f s i g n ( f c )∗s i g n ( f a )0: Hội tụ bình phương
Ví dụ 4.7 Tốc độ hội tụ của các dãy sau: a) 10 − 2 , 10 − 3 , 10 − 4 ,10 − 5 (tuyến tính vớiλ= 10 − 1 ); b) 10 −2 , 10 −4 , 10 −6 ,10 −8 (tuyến tính vớiλ= 10 −2 ); c) 10 − 2 , 10 − 3 , 10 − 5 ,10 − 8 (siêu tuyến tính, không phải bình phương); d) 10 −2 , 10 −4 , 10 −8 ,10 −16 (bình phương); e) 10 − 2 , 10 − 6 , 10 − 18 , (lập phương).
Ví dụ 4.8 Xét phép lặp xn+1 =g(xn)với g(x) = x− f(x) f ′ (x) − f ′′ (x)
Khi đó phép lặp trên có tốc độ hội tụ bậc 3.
Phương pháp Newton
Mô tả phương pháp
Phương pháp Newton 2 là một kỹ thuật hiệu quả để giải phương trình f(x) = 0, trong đó f là hàm khả vi liên tục Bắt đầu với một xấp xỉ ban đầu x0, các xấp xỉ tiếp theo được tính toán theo công thức: xn+1 = xn - f(xn) / f'(xn).
Về mặt hình học xn+1 là hoành độ giao điểm của tiếp tuyến với đường cong y =f(x) tại điểm (xn, f(xn)) với trục hoành. y
Phương pháp lặp Newton là một kỹ thuật hiệu quả để tìm nghiệm của phương trình f(x) Nếu hàm f(x) có đạo hàm cấp hai liên tục, sai số trong quá trình lặp được đánh giá thông qua bất đẳng thức Giả sử α là nghiệm của phương trình, ta có thể diễn đạt f(α) = f(xn) + f ′(xn)(α − xn) + R1, trong đó R1 đại diện cho sai số.
0 = f(α) = f(xn) +f ′ (xn)(α−xn) + 1 2 f ′′ (ξn)(α−xn) 2 Suy ra f(xn) f ′ (x n )+ (α−xn) = −f ′′ (ξn)
2 Phương pháp Newton còn có tên gọi là phương pháp Newton - Raphson
Do xn+1 được cho bởi x n+1 =x n − f(xn) f ′ (xn), ta có α−xn+1
2|f ′ (xn)| ãεn 2. Điều đó chỉ ra rằng tốc độ hội tụ là bình phương nếu các điều kiện sau được thỏa mãn:
• f ′ (x)̸= 0; với mọix∈[α−r, α+r] với mộtr nào đó thỏa mãn: r≥ |α−x0|.
Sai số của phương pháp Newton được ước lượng bởi công thức:
Ví dụ 4.9 Giải phương trình x−x 1/3 −2 = 0.
Ta có bảng kết quả sau: k xk f ′ (xk) f(x)
• Phương pháp Newton hội tụ nhanh hơn phương pháp chia đôi.
• Phương pháp Newton đòi hỏi tính f ′ (x).
Ví dụ 4.10 Tìm nghiệm của phương trình sau bằng phương pháp Newton x 3 −5 = 0.
Chương trình MATLAB cho thuật toán Newton f u n c t i o n x =Newton ( f , f 1 , x0 , n ) x = x0 ; f o r i = 1 : n x = x − f ( x ) / f 1 ( x ) end end hoặc ta có thể dùng vòng lặp while như sau k = 0 ; w h i l e abs ( x − x p r e v ) > e p s∗abs ( x ) x p r e v = x ; x = x − f ( x ) / f p r i m e ( x ) k = k + 1 ; end
Mặc dù phương pháp lặp Newton có tốc độ hội tụ nhanh, nhưng vẫn tồn tại một số trường hợp mà phương pháp này không đạt được kết quả Dưới đây là một số ví dụ minh họa cho các tình huống mà phép lặp Newton không hội tụ.
Ví dụ 4.11 Tìm nghiệm của phương trình sau bằng phương pháp Newton
2 thuật toán Newton rơi vào vòng lặp với chu kỳ 2: x0 = 1
Do đó phép lặp Newton không hội tụ trong trường hợp này Để khắc phục trường hợp này chúng ta chỉ cần chọn x0 ̸=±1
Thuật toán Newton cũng có thể bị hỏng trong các trường hợp sau:
• Đạo hàm tại điểm xn bằng không?
• Dãy lặp ngày càng xa nghiệm.
Với cách chọn điểm x0 = 0.5 thật toán Newton rơi vào vòng lặp chu kỳ 2 như Hình 4.5 Thậy vậy ta có x1 =x0− f(x 0 ) f ′ (x0) =x0+ 2(1.5−x0) = 0.5 + 2 = 2.5 y
Hình 4.4: Phép lặp Newton không hội tụ với x0 = 1/2 và x2 =x1− f(x1) f ′ (x1) =x1−2(x1−1.5) = 2.5−2 = 0.5 = x0.
Hình 4.5: Phương pháp Newton không hội tụ tới nghiệm
Thuật toán Newton ngày càng phân kỳ với bất kỳ x 0 Thật vậy, rõ ràng với x 0 bằng
0thì thuật toán Newton dừng ngay ở bước đầu tiên vì đạo hàm củaf(x)không xác định tại 0 Với x0 ̸= 0 ta có x 1 =x 0 − f(x0) f ′ (x0) =x 0 −
Tiếp tục áp dụng công thức lặp Newton ta được x2 = 4x0, x3 =−8x0,
Dãy lặp trong hàm này có trị tuyệt đối ngày càng lớn khi n tiến tới vô cực Do đó, thuật toán Newton không hội tụ đến nghiệm duy nhất x= 0 với bất kỳ giá trị khởi đầu x0 nào.
Hình 4.6: Phương pháp lặp Newton không hội tụ
Ví dụ 4.14 Tìm nghiệm xấp xỉ của phương trình arctanx = 0 bằng thuật toán Newton với x0 = 3.
Lời giải Đặt f(x) = arctanx ta có f ′ (x) = 1
Dễ thấy rằng xn → ∞ rất nhanh □
Việc tìm nghiệm của phương trình x ∗ = 0 là khá đơn giản; tuy nhiên, thuật toán Newton có thể gặp khó khăn khi đạo hàm gần bằng 0, dẫn đến việc dãy lặp ngày càng xa nghiệm Chẳng hạn, nếu chọn x0 = 1.3, thuật toán sẽ hội tụ, trong khi chọn x0 = 1.6 sẽ khiến thuật toán phân kỳ.
Ví dụ 4.15 Tìm nghiệm xấp xỉ của phương trình−x 3 + 4x 2 −2x+ 2 = 0 bằng thuật toán Newton với x 0 = 0.
Lời giải Đặt f(x) = −x 3 + 4x 2 −2x+ 2 Ta cóf ′ (x) = −3x 2 + 8x−2 Với x 0 = 0 ta có: x1 =x0− f(x 0 ) f ′ (x0) =−f(0) f ′ (0) =− 2
(b) x 0 = 1.6 Hình 4.7: Thuật toán Newton với hàm y= arctanx
Tuy nhiên nếu chọn điểm x0 khác đi, thuật toán có thể hội tụ Ta có bảng tính toán dưới đây vớix0 = 3 n x f(x)
(b) x 0 = 3 Hình 4.8: Phương pháp lặp Newton với các x0 khác nhau
Dưới đây ta minh họa các trường hợp xích với chu kỳ 3 và 4.
Ví dụ 4.16 (Xích với chu kỳ 3 ) Xét phương trình f(x) = (x 2 + 1)(x−2.95).
Ví dụ 4.17 (Xích với chu kỳ 4) Giải phương trình sau f(x) = (x 2 + 1)(x−4.6) = 0 bằng phương pháp lặp Newton vớix0 = 1.719149333287812.
Cách chọn điểm x 0 để đảm bảo thuật toán hội tụ
Định lý 4.6 khẳng định rằng nếu [a, b] là khoảng nghiệm của phương trình f(x) = 0 với đạo hàm f ′ (x) và f ′′ (x) liên tục, không đổi dấu và không triệt tiêu trên [a, b], thì việc chọn xấp xỉ nghiệm ban đầu x0 trong [a, b] sao cho f(x0)f ′′ (x0) > 0 sẽ đảm bảo quá trình lặp hội tụ đến nghiệm.
Hình 4.9: Xích với chu kỳ 3 y
Thuật toán Newton cải tiến cho trường hợp phương trình có nghiệm bội 68
Nếu x∗ là nghiệm bội m của f(x), thuật toán Newton chỉ hội tụ tuyến tính Để khắc phục tình huống này, ta áp dụng thuật toán Newton cải tiến với công thức: x n+1 = x n − f(xn) / f ′ (xn).
Nếu biết số bội của nghiệm, ta có thể áp dụng thuật toán Newton cải tiến Định lý 4.7 chỉ ra rằng, nếu hàm f khả vi liên tục m + 1 lần trên đoạn [a, b] chứa nghiệm r với bội m, thì thuật toán Newton cải tiến được mô tả bằng công thức xn+1 = xn - mf(xn) / f′(xn) sẽ hội tụ bình phương tới nghiệm.
Ví dụ 4.18 Tìm nghiệm của phương trình 4x 3 + 4x 2 −7x+ 2 = 0bằng cách sử dụng: a) Thuật toán Newton b) Thuật toán Newton cải tiến với x0 lần lượt là 0,−3.
Chương trình MATLAB cho thuật toán Newton cải tiến f u n c t i o n [ r , n ] = NewtonMod ( f , x1 , t o l , N) i f n a r g i n < 4 | | i s e m p t y (N) , N = 2 0 ; end i f n a r g i n < 3 | | i s e m p t y ( t o l ) , t o l = 1 e−4; end f p = m a t l a b F u n c t i o n ( d i f f ( f ) ) ; f 2 p = m a t l a b F u n c t i o n ( d i f f ( f , 2 ) ) ; f = m a t l a b F u n c t i o n ( f ) ; x = z e r o s ( 1 ,N+ 1 ) ; x ( 1 ) = x1 ; f o r n = 1 : N, x ( n+1) = x ( n ) − ( f ( x ( n ) )∗f p ( x ( n ) ) ) /
Phương pháp dây cung
Phương pháp dây cung được định nghĩa thông qua công thức truy hồi, với công thức cụ thể là: \( x_n = x_{n-1} - \frac{f(x_{n-1})}{x_{n-1} - x_{n-2}} \cdot \frac{f(x_n - 1) - f(x_n - 2)}{f(x_{n-1}) - f(x_{n-2})} \) Bắt đầu từ hai điểm ban đầu \( x_0 \) và \( x_1 \) gần với nghiệm, phương pháp này giúp xây dựng đường thẳng cát để tìm ra nghiệm của phương trình.
Hình 4.11: Phương pháp dây cung tuyến đi qua(x0, f(x0))và (x1, f(x1)), y= f(x1)−f(x0) x1−x0
Tìm giao điểm của đường thẳng với trục hoành
Thay x bằng x2 và lặp lại quá trình với x1 và x2 thay cho x0 và x1 để tính tiếp x3, x4, Công thức tính được xác định như sau: x2 = x1 - f(x1) * (x1 - x0) / (f(x1) - f(x0)), x3 = x2 - f(x2) * (x2 - x1) / (f(x2) - f(x1)), và tổng quát xn = xn-1 - f(xn-1) * (xn-1 - xn-2) / (f(xn-1) - f(xn-2)) với n ≥ 2 Định lý 4.8 chỉ ra rằng dãy lặp xn của phương pháp dây cung sẽ hội tụ tới nghiệm của f nếu giá trị ban đầu x0 và x1 đủ gần nghiệm, với tốc độ hội tụ α = 1 + √.
Ví dụ 4.19 Sử dụng phương pháp dây cung tìm nghiệm của phương trình x 4 −5 = 0 bằng cách chọn x0 = 1 và x1 = 2 là các xấp xỉ ban đầu.
Lời giải Sử dụng chương trình MATLAB cho phương pháp dây cung: f=@( x ) x^4 − 5 ; n ; x ( 1 ) = 1 ; x ( 2 ) = 2 ; f o r i =3:n x ( i ) = x ( i−1) − ( f ( x ( i −1 ) ) )
∗( ( x ( i−1) − x ( i −2 ) ) / ( f ( x ( i−1)) − f ( x ( i −2 ) ) ) ) ; end r o o t=x ( n ) ta có bảng kết quả sau k x k
Ví dụ 4.20 Giải phương trình sau bằng phương pháp dây cung x−arctanx+ 1 = 0.
Lời giải Áp dụng công thức lặp dây cung với x0 = 1.5 và x1 = 1, ta có bảng kết quả sau k xk
Hình 4.12: Phương pháp dây cung cho phương trình x−arctanx+ 1 = 0
Công thức lặp dây cung có thể được viết một cách dễ lập trình với biểu thức: xn+1 = xn − 1f(xn)−xnf(xn − 1) / (f(xn)−f(xn−1)) Tuy nhiên, cần lưu ý rằng phương pháp dây cung không đảm bảo luôn hội tụ.
Ví dụ 4.21 Giải phương trìnhf(x) = cosx−x= 0.
Bảng so sánh nghiệm gần đúng giữa ba phương pháp chia đôi, Newton và dây cung cho thấy sự khác biệt trong các giá trị x tại các bước lặp Các giá trị x0 đến x10 cho thấy độ chính xác ngày càng cao hơn với phương pháp Newton và dây cung, trong khi phương pháp chia đôi có sự dao động lớn hơn Đặc biệt, phương pháp Newton và dây cung đạt được giá trị gần đúng ổn định là 0.7390851332151607, trong khi phương pháp chia đôi có các giá trị x không xác định tại một số bước Kết quả này cho thấy hiệu quả của các phương pháp trong việc tìm nghiệm gần đúng.
Giải đa thức
Phương trình đa thức và sự phân bố nghiệm
Trước khi chúng ta bàn luận về phương pháp tìm nghiệm của phương trình đa thức bậc n có dạng:
Phương trình bậc n có dạng P n (x) = a 0 x n + a 1 x n−1 + + a n−1 x + a n = 0, với a0, a1, a2, , an là các số thực và a0 ≠ 0 Bài viết sẽ khám phá hai nội dung chính: i) Số nghiệm thực, bao gồm nghiệm âm và nghiệm dương, cũng như nghiệm phức; ii) Khoảng chứa nghiệm Theo Định lý 4.9, được gọi là Định lý cơ bản của đại số, mọi phương trình đại số bậc n đều có ít nhất một nghiệm.
Mọi phương trình đại số bậc n đều có đúng n nghiệm, kể cả bội Để giải quyết phương trình đa thức, trước tiên cần sắp xếp các số hạng theo thứ tự Nếu có sự kết hợp giữa dấu cộng và dấu trừ, sẽ xảy ra sự thay đổi dấu Theo định lý 4.10 (Quy tắc dấu Descartes), số lượng nghiệm thực dương của phương trình Pn(x) không vượt quá số lượng dấu thay đổi của đa thức Pn(x), trong khi số lượng nghiệm thực âm cũng không được vượt quá số lượng dấu thay đổi của đa thức Pn(−x).
Ví dụ 4.22 Phương trình đa thức sau
Đa thức P4(x) = x^4 − 3x^3 + 2x^2 + x − 4 = 0 có tối đa ba nghiệm thực dương do có ba lần đổi dấu Đồng thời, đa thức P4(−x) chỉ có tối đa một nghiệm thực âm vì chỉ có một lần đổi dấu Lưu ý rằng nếu dấu bằng không xảy ra, thì kết quả phải nhỏ hơn một số chẵn.
Quy tắc này xác định số nghiệm thực âm và dương tối đa của phương trình, nhưng không cho phép tìm nghiệm chính xác của phương trình đa thức Định lý Sturm cung cấp số nghiệm chính xác của phương trình đa thức Một dãy Sturm cho hàm đa thức f(x) bao gồm các đa thức f0(x), f1(x), f2(x), fm(x) với bậc giảm dần, được xác định theo thuật toán: f0(x) = f(x), f1(x) = f ′(x), f2(x) = −remainder(f0, f1), f3(x) = −remainder(f1, f2), và tiếp tục cho đến fm(x) = −remainder(fm−2, fm−1).
Số hạng cuối cùng fm(x)là một hằng số.
Dãy f0(x), f1(x), f2(x), fm(x) được gọi là dãy Sturm Để loại bỏ hệ số hữu tỷ, chúng ta có thể thực hiện phép nhân hoặc chia các phần tử của dãy Sturm với một hằng số dương tùy ý.
Khi f(x) = 0 với 0 < i < m, thì dấu của fi(x) sẽ ngược lại với dấu của fi+1(x) Định lý Sturm chỉ ra rằng, đối với một đa thức bậc n không có nghiệm bội, nếu f0(x), f1(x), f2(x), f3(x), là một dãy Sturm của f(x), thì số lần đổi dấu trong dãy Sturm tại x=a và x=b (với a < b và f(a) ≠ 0, f(b) ≠ 0) sẽ cho phép xác định số nghiệm phân biệt của phương trình f(x) = 0 trong khoảng [a, b] bằng công thức g(a) - g(b).
Khi x0 là một nghiệm bội của f, thì f và f' có ước chung là (x−x0) m − 1 Điều này dẫn đến việc tất cả các đa thức trong dãy Sturm đều chia hết cho (x−x0) m − 1 Do đó, khi chia tất cả các đa thức của dãy Sturm cho (x−x0) m − 1, ta thu được dãy mới p0(x), p1(x), , pn(x) với p(x) = f(x).
Khi (x−x0) m−1, nghiệm x0 trở thành nghiệm đơn của p(x) Với x cố định trong dãy Sturm của f, ta có thể thu được dãy Sturm từ p(x), dẫn đến số lần đổi dấu của hai dãy là trùng nhau.
Vì vậy ta chỉ cần chứng minh định lý trong trường hợpf không có nghiệm bội. a α b y=f(x) y=f ′ (x) =f 1 (x)
Hình 4.13: Dấu của y=f(x) và y=f ′ (x) qua α
Khi xem xét một nghiệm α của hàm fi với i ≥ 1, theo định nghĩa của dãy Sturm, ta có fi − 1(α) = qi(α)fi(α) − fi+1(α) = −fi+1(α) vì fi(α) = 0 Điều này cho thấy fi − 1(α) và fi+1(α) đều khác 0, ngụ ý rằng x = α không phải là nghiệm bội của f(x) Bởi vì fi − 1 và fi+1 là các hàm liên tục, nên trong một lân cận của α, dấu của fi−1(x) và fi+1(x) sẽ đối nhau Do đó, sự chuyển đổi của fi(x) từ âm sang dương hoặc ngược lại khi x đi qua nghiệm α của fi với i ≤ 1 là không ảnh hưởng.
Khi x đi qua một nghiệm α của hàm f0, do f1 là đạo hàm của f0, dấu của f0 và f1 sẽ chuyển từ khác nhau sang giống nhau trong một lân cận của α Điều này dẫn đến việc số lần đổi dấu trong dãy Sturm giảm đi 1, đồng nghĩa với việc g(x) cũng bị giảm bớt đi 1 khi x đi qua nghiệm của f.
Một đa thức bậc n có đúng n nghiệm (phức) Vì vậy nếu ta có s nghiệm thực bội r, thì số nghiệm phức sẽ là n−rs.
Ví dụ 4.23 Xác định dãy Sturm và tính toán số lượng nghiệm thực và nghiệm kép của phương trình đa thức sau: x 3 −3x+ 1 = 0.
Hai số hạng đầu tiên của dãy Sturm là f0(x) =f(x) = x 3 −3x+ 1, f1(x) =f ′ (x) = 3x 2 −3 = 3 (x 2 −1)hoặcx 2 −1.
(Để tránh hệ số hữu tỷ, ta có thể nhân hoặc chia phần tử của dãy Sturm với một hằng số dương bất kỳ).
Các số hạng tiếp theo của dãy Sturm là: f2(x) = x− 1 2 , f 3 (x) = 1.
Vậy dãy Sturm cần tìm là: x 3 −3x+ 1, x 2 −1, x−1
Chọn g(a) là số lần đổi dấu của dãy Sturm với x=a Để tìm được số nghiệm dương và âm, ta có: x f0(x) f1(x) f2(x) f3(x) g(x)
Theo định lý Sturm, số lượng nghiệm thực khác nhau của phương trình f(x) = 0 trong khoảng [a, b] làg(a)−g(b) Vì g(−∞) = 3 vàg(∞) = 0, phương trình f(x) = 0 có ba nghiệm thực phân biệt trong khoảng (−∞,∞).
Chú ý 4.7 Ta có thể xây dựng bảng chi tiết hơn dựa trên khoảng chứa nghiệm của phương trình ví dụ trên. x f0(x) f1(x) f2(x) f3(x) g(x)
Tất cả ba nghiệm đều là nghiệm thực, và nằm trong các khoảng (−2,−1),(0,1) và
Vì hàm f(x) liên tục, chúng ta có thể áp dụng định lý giá trị trung gian để xác định khoảng chứa nghiệm Các nghiệm chính xác của phương trình là 0.347296355, 1.532088886 và -1.87938524.
Ví dụ 4.24 Xác định dãy Sturm và tính toán số lượng nghiệm thực và nghiệm kép của phương trình đa thức sau: x 4 −4x 3 + 8x 2 −4x+ 3 = 0.
Lời giải Ta có dãy Sturm như sau f0(x) =f(x) =x 4 −4x 3 + 8x 2 −4x+ 3, f1(x) =x 3 −3x 2 + 4x−1, f2(x) =−x 2 −x−2, f3(x) =−x− 7 6 , f4(x) = 1.
Vậy dãy Sturm ta cần tìm là
Vậy tất cả các nghiệm của phương trình đều là nghiệm phức □
Ví dụ 4.25 Xác định dãy Sturm và tính toán số lượng nghiệm thực và nghiệm kép của phương trình đa thức sau x 4 + 2x 3 −2x 2 −4x+ 1 = 0.
Lời giải Dãy Sturm ta cần tìm là:
Số lần thay đổi dấu được cho bởi g(−∞) = 3, g(∞) = 1.
Vậy, phương trình có hai nghiệm phân biệt trong khoảng (−∞,∞) Hai nghiệm còn lại là nghiệm phức.
6 ,−1]. Để tìm được khoảng chứa nghiệm thực, ta sử dụng Định lý giá trị trung gian x −∞ −3 −2 −1 0 1 2 ∞ f(x) + + + + + − + +
Dựa theo Định lý giá trị trung gian, khoảng (0,1)và (1,2)chứa nghiệm Hai nghiệm đó là 0.2302926 và 1.3321898 □
Lệnh roots trong MATLAB cho phép tìm tất cả nghiệm thực và nghiệm phức của một đa thức Ví dụ, với phương trình x^6 − 4x^3 + x − 2, khi sử dụng lệnh roots([1 0 0 -4 0 1 -2]), kết quả trả về là nghiệm phức: -0.804363369450963 + 1.4599999855807630i.
Hình 4.14: Nghiệm của phương trình x 6 −4x 3 +x−2
Ví dụ 4.26 Tìm nghiệm của phương trình
Lời giải Sử dụng lệnh roots trong MATLAB ta được kết quả dưới đây r o o t s ( [ 1 0 0 −36 0 90 0 ] ) ans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 i
Hình vẽ dưới minh họa phương pháp lặp Newton không hội tụ nếu chọnx0 = 1 và hội tụ khá chậm nếu chọn x0 = 2 mặc dù nghiệm đơn. y
(b) x 0 = 2 Hình 4.15: Thuật toán Newton với các x0 khác nhau.
Nghiệm phức và phương pháp Muller
Phương pháp Newton bắt đầu từ điểm x0, với điểm xấp xỉ tiếp theo x1 là giao điểm của tiếp tuyến tại (x0, f(x0)) với trục hoành Phương pháp dây cung khởi đầu từ hai điểm x0 và x1, trong đó điểm xấp xỉ tiếp theo là giao điểm của cát tuyến đi qua (x0, f(x0)) và (x1, f(x1)) với trục hoành Trong khi đó, phương pháp Muller 3 sử dụng ba điểm ban đầu x0, x1 và x2, với điểm xấp xỉ tiếp theo x3 là giao điểm của trục hoành với parabol đi qua ba điểm (x0, f(x0)), (x1, f(x1)) và (x2, f(x2)).
Ta tìm parabol P(x) đi qua ba điểm trên dưới dạng
Ta có hệ phương trình sau:
Giải hệ trên ta được: a= (x1−x2)[f(x0)−f(x2)]−(x0 −x2)[f(x1)−f(x2)]
3 Phương pháp này thường được gọi là phương pháp parabol.
(b) Phương pháp Muller Hình 4.16: Phương pháp dây cung và phương pháp Muller và c=f(x2).
Gọi x3 là nghiệm của P(x), ta có
Từ đó ta có x3−x2 = −b±√ b 2 −4ac
Dấu ±ở mẫu được chọn sao cho mẫu số có mô đun lớn nhất Khi tính được x3 thì ta lặp lại quá trình trên sử dụng x1, x2, x3 thay chox0, x1, x2.
Ví dụ 4.27 Xét đa thức f(x) =x 4 −3x 3 +x 2 +x+ 1.
Lời giải Sử dụng phương pháp Muller với x0 = 0.5, x1 = 1.0, x2 = 1.5 ta có bảng kết quả sau: i xi P(xi)
6 1.38939 0.00000 Với x0 = 1.5, x1 = 2.0, x2 = 2.5 ta có bảng kết quả sau: i xi P(xi)
7 2.28879 0.00000 Với x 0 = 1.5, x 1 =−0.5, x 2 = 0 ta có bảng kết quả sau: i xi P(xi)
9 -0.339093 + 0.446630i 0.000000 + 0.000000i Vậy phương trình trên có hai nghiệm thực phân biệt và hai nghiệm phức liên hợp. y
□ Định lý 4.12 Giả sử x ∗ là nghiệm đơn của f và f khả vi liên tục đến cấp 3 Khi đó với các xấp xỉ ban đầu đủ gần nghiệm ta có, klim→∞
|xk − 1−ξ| à f ′′′ (ξ) 6f ′ (ξ) trong đú à≈1.84 là nghiệm dương của phương trỡnh x 3 −x 2 −x−1 = 0.
Chương trình Python cho phương pháp Muller
# w i t h x2 t i l l two d e c i m a l p l a c e s m = r e s ∗ 1 0 0 ; n = c ∗ 1 0 0 ; m = math f l o o r (m) ; n = math f l o o r ( n ) ; i f (m == n ) : b r e a k ; a = b ; b = c ; c = r e s ; i f ( i > MAX_ITERATIONS ) : p r i n t ( " Root c a n n o t be found u s i n g " ,
" M u l l e r 's method " ) ; b r e a k ; i += 1 ; i f ( i 1) không hội tụ bình phương tớip= 0.
20 Chứng minh rằng phép lặp g(x) =x− mf(x) f ′ (x) có g ′ (p) = 0 nếu p là không điểm cấpm của hàm f.
NGHIỆM SỐ CỦA HỆ PHƯƠNG TRÌNH TUYẾN TÍNH VÀ
BÀI TOÁN TÌM GIÁ TRỊ RIÊNG, VECTOR RIÊNG
Trong chương này, chúng tôi giới thiệu các phương pháp để giải hệ phương trình đại số tuyến tính và tìm giá trị gần đúng của giá trị riêng cùng vector riêng cho ma trận vuông Độc giả có thể tham khảo thêm các kết quả liên quan trong các tài liệu [1, 15, 9, 16, 12].
Phương pháp trực tiếp
Phương pháp khử Gauss
Xét hệ phương trình a11x1+a12x2+ .+a1nxn = b1, a21x1+a22x2+ .+a2nxn = b2,
Phương pháp Gauss gồm hai bước:
Bước thuận: Giả sử a11 ̸= 0 Ký hiệu a (1) ij = aij và a (2) ij := a (1) ij −ℓi1a (1) 1j , i, j 2, , n, trong đó ℓi1 :=a (1) i1 /a (1) 11 , i= 2, , n. b (1) 1 :=b1 and b (2) i :=b (1) i −ℓi1b (1) 1 , i= 2, , n,
Nếua (2) 22 ̸= 0, đặt a (3) ij := a (2) ij −ℓ i2 a (2) 2j , i, j = 3, , n,trong đó ℓi2 := a (2) i2 /a (2) 22 , và b (3) i :=b (2) i −ℓi2b (2) 2 , i= 3, , n.
Tổng quát nếu a (k) kk ̸= 0: a (k+1) ij := a (k) ij −ℓika (k) kj , i, j =k+ 1, , n, trong đó ℓik := a (k) ik /a (k) kk , b (k+1) i :=b (k) i −ℓikb (k) k , i=k+ 1, , n.
Sau n−1 bước ta được a (1) 11 x1+a (1) 12 x2+ .+a (1) 1n xn = b (1) 1 , a (2) 22 x2+ .+a (2) 2n xn = b (2) 2 a (3) 33 x3+ .+a (3) 3n xn = b (3) 3 , a (n) nnxn = b (n) n Bước ngược: Từ hệ tam giỏc trờn tỡm xn, xn − 1,ã ã ã , x1.
Ví dụ 5.3 Giải hệ sau
Sử dụng các phép biến đổi sơ cấp theo hàng ta được
Ví dụ 5.4 Giải hệ phương trình sau bằng phương pháp khử Gauss
Lời giải Sử dụng phương pháp khử Gauss
Từ hai ví dụ trên ta nhận thấy, ta có thể áp dụng phương pháp Gauss khi det
Phương pháp phân tích LU
Ta có mô tả các bước của phương pháp khử Gauss sử dụng ký hiệu ma trận như sau:
! trong đó a 1 := (a 12 , , a 1n ), c 1 := (a 21 , , a n1 ) T và A (1) 22 ∈R(n−1)×(n−1) Khi đó:
Tổng quát, ở bước thứ k ta có:
Akx = Lk − 1ã ã ãL1b=⇒Ak+1x=Lkã ã ãL1b,
Ak+1 := LkAk=Lkã ã ãL1A, trong đó
Tính toán trực tiếp ta có
Ví dụ 5.5 Giải hệ sau
Lời giải Chương trình MATLAB cho phân tích LU: f u n c t i o n [ L ,U] = s l u (A)
U( k , j ) = A( k , j ) ; end end Áp dụng cho trường hợp này ta được:
Phương pháp Cholesky
Xét trường hợp đặc biệt: A là ma trận đối xứng và xác định dương tức là:
Ví dụ 5.6 Giải hệ phương trình sau:
Lời giải Dễ thấy A là ma trận đối xứng Hơn nữa A là xác định dương vì
Ta cũng có thể viết
Ví dụ 5.7 Sử dụng phương pháp Cholesky giải hệ sauAx=b trong đó
Phương pháp lặp đơn
Phương pháp Jacobi
Ax=b là hệ n phương trình, n ẩn số với
. Khi đó A có thể viết dưới dạng:
Ta xây dựng dãy lặp x (k+1) =D − 1 (b−Rx (k) ), hay x (k+1) i = 1 aii bi−X j ̸ =i aijx (k) j
Gọi e (k) là vector sai số e (k+1) =x (k+1) −x (k) =D − 1 (b−Rx (k) )−x (k) =D − 1 (b−Ax (k) ). Định lý 5.3 (Điều kiện đủ) Nếu A là ma trận đường chéo trội, tức là
|aij|,∀i= 1, , n thì với mọi x (0) thuật toán Jacobi hội tụ tới nghiệm của hệ Ax=b.
Ví dụ 5.8 Áp dụng phương pháp Jacobi để giải hệ sau với bốn bước lặp a)
Ta thấy ma trận A của hệ trên
có dạng đường chéo trội Từ hệ trên ta rút ra:
. Áp dụng công thức lặp Jacobi ta có
, ta sẽ tính được x (1) , từ đó tính được x (2) , x (3) và x (4) Kết quả được thể hiện ở bảng sau: k x (k) 1 x (k) 2 x (k) 3
Hệ trên có nghiệm chính xác là:
Trong ví dụ này, ma trậnA của hệ có dạng
Trong hệ phương trình này, do A không có dạng đường chéo trội, việc áp dụng trực tiếp phương pháp Jacobi sẽ không đảm bảo dãy lặp hội tụ tới nghiệm Trên thực tế, dãy lặp sẽ không hội tụ Do đó, để đảm bảo tính tương đương của hệ, chúng ta cần đổi chỗ phương trình thứ nhất và phương trình thứ ba.
Đối với hệ mới ma trận A, nó có dạng đường chéo trội, cho phép áp dụng thuật toán Jacobi Kết quả tính toán được trình bày trong bảng dưới đây: k x (k) 1 x (k) 2 x (k) 3.
Chương trình MATLAB cho thuật toán Jacobi: f u n c t i o n [ x , k , MJnorm]= J a c o b i (A, b , x0 , t o l , kmax ) i f n a r g i n 1là một hằng số. x (k+1) = (D+ωL) − 1 ωb−[ωU+ (ω−1)D]x (k)
, hay x (k+1) i = (1−ω)x (k) i + ω aii bi−X ji aijx (k) j
! ,1, n. hay x (k+1) i =x (k) i + ω aii bi−X j|λ1| ≥ .≥ |λn| và các vector riêng tương ứng độc lập tuyến tính. c) λ1 là số thực.
Thuật Toán Input: Ma trậnA, vec tơ ban đầu x 1 , α 1 = 0,ϵ (sai số). a) Chuẩn hóax 1 : x 1 = x1
∥x1∥. Với k chạy từ 1 đếnkmax (Số bước lặp tối đa.) b) Tính xk+1 =Axk. c) Tính α k =x T k x k+1 d) Chuẩn hóaxk+1: xk+1 = x1
∥xk+1∥. e) Kiểm tra điều kiện dừng: Nếu|αk+1−αk|< ϵ, Thuật toán kết thúc Ngược lại, tăng k lên một đơn vị (k+1) và trở về bước 2.
Ví dụ 5.13 Xét ma trận
Vì |α 2 −α 1 |= 1.333> ϵ, ta tiếp tục tính các bước lặp. x2 = x2
Vì |α 2 − α 1 | = 5.8533, ta tiếp tục tính các bước lặp, ta thu được α 4 = 3.4742, α 5 3.2083, α6 = 3.1097, , α20= 3.002.
Phương pháp lũy thừa nghịch đảo: Tìm vector riêng có mô đun nhỏ nhất Nếu λ1, λ2, , λn là các giá trị riêng của A thì 1 λ1
, , 1 λn là các giá trị riêng của A − 1
Phương pháp tìm giá trị riêng gần một số cho trước là một kỹ thuật quan trọng trong đại số tuyến tính Để tìm tất cả các giá trị riêng của ma trận A, nếu λ₁, λ₂, , λₙ là các giá trị riêng của A, thì các giá trị riêng của ma trận A - αI sẽ là λ₁ - α, λ₂ - α, , λₙ - α.
• Vector ban đầu x1 và các vector xk cần được chuẩn hóa.
• Đặt α = 0 ta tìm được vector riêng có mô đun nhỏ nhất của A.
Ví dụ 5.14 Tìm tất cả các giá trị riêng, vector riêng của ma trận sau:
1 Sử dụng phương pháp khử Gauss giải hệ phương trình sau
2 Giải hệ phương trình Ax=b bằng phương pháp phân tích LU
3 Sử dụng phương pháp Cholesky, giải hệ Ax=b trong đó
4 Sử dụng phương pháp Cholesky giải hệ sau Ax=b trong đó
5 Giải hệ sau bằng phương pháp Jacobi với 3 bước lặp
6 Giải hệ sau bằng phương pháp Gauss-Seidel với với 3 bước lặp
7 Giải hệ phương trình sau
1, 0, 1iT sử dụng bốn bước lặp, bằng phương pháp
8 Tính số điều kiện của ma trận sau:
9 Tìm giá tri riêng có mô đun lớn nhất, nhỏ nhất của các ma trận sau với 4 bước lặp với α1 = 0, x1 = (1,1,1) T
PHƯƠNG PHÁP XẤP XỈ TRUNG BÌNH PHƯƠNG
Trong các chương trước, chúng ta đã thảo luận về phương pháp xấp xỉ hàm số thông qua đa thức nội suy Tuy nhiên, phương pháp này gặp phải nhược điểm khi số mốc nội suy tăng lên, dẫn đến bậc của đa thức trở nên lớn, gây khó khăn trong quá trình tính toán Thêm vào đó, giá trị yi = f(xi), với i = 0, 1, , n thường được thu thập từ thực nghiệm và dễ mắc phải sai số, điều này đòi hỏi sự cẩn trọng trong việc xử lý dữ liệu.
Trong chương này, chúng ta sẽ khám phá phương pháp xấp xỉ trung bình phương để khắc phục những nhược điểm của công thức P(x i ) = y i với i = 0, 1, , n Bạn đọc có thể tìm hiểu thêm về các kết quả liên quan trong tài liệu [1, 9].
Xấp xỉ tốt nhất trong không gian Hilbert
Bất đẳng thức Bessel và đẳng thức Parseval
Giả sử H là không gian Hilbert với hệ trực chuẩn đầy đủ {ei} ∞ i=1, thỏa mãn ⟨ei, ej⟩ = δij (i, j ∈ N) và Span(ei) = H Đối với mỗi x ∈ H, ta xem xét tổng Fourier của n phần tử đầu tiên.
Sn:Xn i=1 ciei, trong đó ei :=⟨x, ei⟩ được gọi là hệ số Fourier của x Khi đó với mọi n ∈ N, ta có:
Do đó, chuỗi P ∞ i=1c 2 i hội tụ, hơn nữa ta còn có bất đẳng thức Bessel sau đây
Mệnh đề 6.1 Chuỗi Fourier P ∞ i=1c i e i hội tụ và xX∞ i=1 c i e i
∥Sn−Sn+m∥ 2 n+mX i=1 c 2 i →0 (m→ ∞) suy ra dãy tổng riêng {Sn} là dãy cơ bản nênSn →S ∈ H Với mọi k cố định, ta có
⟨x−S, ek⟩=⟨x, ek⟩ − ⟨S, ek⟩=ck− ⟨S−Sn, ek⟩ − ⟨Sn, ek⟩. Khi n > k ta có
⟨x−S, ek⟩=ck− ⟨S−Sn, ek⟩ −ck =⟨Sn−S, ek⟩, suy ra,
0≤ ∥ ⟨x−S, e k ⟩ ∥=∥ ⟨S n −S, e k ⟩ ∥ ≤ ∥S n −S∥ →0 (k→ ∞) hay ⟨x−S, ek⟩= 0 ∀k ∈N Vì Span(en) =H nên tồn tại phần tử hn Xn i=1 α i (n) ei sao cho hn → x−S Lại có
∥x−S∥ 2 = lim n →∞⟨x−S, hn⟩= 0, suy ra x=S X∞ i=1 ciei.
Từ Mệnh đề 6.1, suy ra
X∞ i=1 c 2 i =∥x∥ 2 , (6.2) và gọi là đẳng thức Parseval Thật vậy, ta có
|ci| 2 =∥x−Sn∥ 2 →0, n → ∞, suy ra đẳng thức (6.2).
Mệnh đề 6.2 Hệ vector {ei} n 1 độc lập tuyến tính khi và chỉ khi định thức Gramm
G(e1, , en) = det(⟨ei, ej⟩) n i,j=1 khác không.
Chứng minh Nếu{e i } n 1 phụ thuộc tuyến tính thì tìm được α i i= 1, n không đồng thời bằng không sao cho
Hệ phương trình tuyến tính thuần nhất trên có nghiệm {αi} n 1 không tầm thường, nên định thức G(e1, , en) = 0.
Ngược lại, nếu định thức Gramm G(e1, , en) = 0 thì hệ phương trình
Xn i=1 α i ⟨e i , e j ⟩= 0 (j = 1, n) có nghiệm αi i= 1, n không tầm thường Đặt eXn i=1 α i e i
⟨e, ej⟩Xn i=1 αi⟨ei, ej⟩= 0, do đó
Suy ra e =θ hay hệ{e i } n 1 phụ thuộc tuyến tính ■
Xấp xỉ tốt nhất trong không gian Hibert
Xét bài toán: Giả sửH0 là một không gian con, đóng của không gian Hilbert H Tìm h0 ∈ H0 thỏa mãn điều kiện
∥x−h0∥=d0 := inf h∈H 0∥x−h∥=d(x, H0) (6.3) Mệnh đề 6.3 Giả sửh 0 = argmin h ∈ H 0 ||x−h|| Khi đó x−h 0 ⊥ H 0
Chứng minh Cố định phần tử h∈ H0 bất kì Xét hàm
F ′ (α) = 2⟨x−x0, h⟩+ 2α∥h∥ 2 và αmin∈RF (α) = F(0) =||x−h0|| 2 , nên F ′ (α) α=0 = 0, suy ra ⟨x−h0, h⟩= 0 với mọi h ∈ H0 hay x−h0⊥ H0 ■ Mệnh đề 6.4 Nếux−h0⊥ H0 thì h0 = argmin h ∈ H 0 ||x−h||.
Chứng minh Với mọi h∈H0, ta có x−h0 ⊥h0−h và
Dấu “=” xảy ra khi và chỉ khi h ≡ h0 ■
Mệnh đề 6.5 Giả sửdimH0 0 Thật vậy, với n = 1
G(e 1 ) =⟨e 1 , e 1 ⟩=||e 1 || 2 Giả sửG(e 1 , e n )>0khi đó ta có d(en+1, Span({ei} n 1)) = G(e1, en+1)
G(e1, en) , vì d(en+1, Span({ei} n 1))>0 và G(e1, , en)>0 theo giả thiết qui nạp, nên G(e 1 , e n+1 )>0 ■
6.2 Xấp xỉ tốt nhất trong L 2 [a, b]
Xấp xỉ bằng đa thức đại số
Giả sử {x i } ∞ 0 là hệ hàm độc lập tuyến tính trên[a, b] và Pn là tập hợp tất cả các đa thức có bậc không quá n Khi đó, Pn = Span {x i } n 0
Theo Mệnh đề 6.5, tồn tại duy nhất đa thức P ∈ Pn thỏa mãn δ n 2 :=∥f −P∥ 2 Z b a p(x)∥f(x)−P(x)∥ 2 dx= inf
s0c0+s1c1ã ã ãsncn =m0 s1c0+s1c1ã ã ãsn+1cn =m1 ã ã ã ã snc0+sn+1c1ã ã ãsn+1cn =mn
(6.7) và phương saiδ n 2 tính theo công thức δ 2 n s0 ã ã ã sn m0 s1 ã ã ã sn+1 ã ã ã ã sn ã ã ã s2n mn m 0 ã ã ã m n ||f|| 2 × s0 sn
Xấp xỉ bằng đa thức trực giao
Trong không gian L²[p(a, b)], các hàm bình phương khả tích với trọng số p(x) có những đặc điểm quan trọng: (a) Hai hệ đa thức trực giao chỉ khác nhau ở các thừa số hằng số (b) Số nghiệm thực của đa thức trực giao Qn(x) trên đoạn [a, b] là n (c) Các nghiệm của Qn−1(x) và Qn(x) xen kẽ nhau (d) Mỗi đa thức trực giao Qn tuân theo công thức truy hồi an,n+1Qn+1(x) + (an,n−x)Qn(x) + an−1,nQn−1(x) = 0 Đặc biệt, đa thức Legendre p(x) có giá trị bằng 1 khi a = -1 và b = 1.
- Phương trình vi phân d dx
Các đa thức Legendre được tạo ra thông qua quá trình trực giao hóa Schmidt trên đoạn [-1, 1] với hệ cơ sở đai số 1, x, x², , xⁿ Để giải quyết bài toán (6.3), chúng ta sẽ tìm đa thức xấp xỉ tốt nhất Pn(x) dưới dạng Pn = Σ(ckLk(x)), với ck = 2k + 1.
- Công thức truy hồi Tn+1(x) = 2xTn(x)−Tn − 1(x).
- Đa thức xấp xỉ tốt nhất
Pn(x) Xn i=0 ciTi(x), trong đó c0 = 1 π
= (2 n n!π) 1/2 Đa thức xấp xỉ tốt nhất có dạng P n (x) =Pn i=0c i H i (x), trong đó ci = (−1) i
−∞ e − x 2 f(x)Hi(x)dx. d) Đa thức lượng giác p(x) = 1;a=−π; b=π.
- Hệ hàm lượng giác {1,cosx,sinx, , cosnx,sinnx, } trực giao và đầy đủ trong
1dx= 2π; và với k >1, ta có
- Đa thức xấp xỉ tốt nhất có dạng
Ta có khai triển Fourier theo nghĩa hẹp và δ 2 n =∥f−P n 2 ∥Z π
Chuỗi Fourier hội tụ trong không gian L²[a, b], và nếu hàm f thuộc lớp C¹(a, b), chúng ta có thể chứng minh rằng chuỗi Fourier hội tụ đều trên mỗi đoạn con hữu hạn trong khoảng (a, b), với điều kiện a ≥ -∞ và b ≤ ∞.
Ví dụ 6.1 Xấp xỉ trung bình phương hàm f(x) = 3 x trên [−1,1] bằng đa thức bậc 3.
Lời giải Cách 1 Tìm đa thức xấp xỉ tốt nhất dưới dạng Q3(x) = P3 i=0αix i Trước hết ta tính sk Z 1
Thay vào hệ (6.7), ta được
Giải hệ phương trình, ta có α0 = 0.9944;α1 = 1.1000;α3 = 0.2335 Như vậy
Q3(x) = 0.9944 + 1.1000x+ 0.6576x 2 + 0.2335x 3 Cách 2 Tìm đa thức xấp xỉ tốt nhất dưới dạng
Bằng tính toán trực tiếp ta được c0 = 1.2137;c1 = 1.2371;c3 = 0.4384;c3 = 0.09345.
Sử dụng đa thức đại số có thể dẫn đến hệ đại số tuyến tính với điều kiện xấu, gây ra nghiệm không ổn định khi có sai số làm tròn Ngược lại, tính toán với đa thức trực giao mang lại sự ổn định hơn Đặc biệt, khi thêm số hạng, việc sử dụng đa thức trực giao cho phép không cần tính toán lại từ đầu.
Xấp xỉ trung bình phương hàm cho dưới dạng bảng bằng đa thức đại số
bảng bằng đa thức đại số
Giả sử có hai đại lượng x và y có mối liên hệ phụ thuộc theo các dạng đã biết như sau: a) y = a + bx; b) y = a + bx + cx²; c) y = a + cos(x) + sin(x); d) y = b^x; e) y = ax^b Tuy nhiên, các giá trị cụ thể của các tham số a, b, c vẫn chưa được xác định Để xác định những tham số này, cần thực hiện đo đạc một số cặp giá trị tương ứng (xi, yi), với x là x1, x2, , xn và y là y1, y2, , yn.
Trường hợp y=a+bx Giả sử y phụ thuộc vào x theo dạng y=a+bx Khi đó y i −a−bx i =ϵ i , i= 1, , n là các sai số tại x i Do đó
(yi−a−bxi) 2 là tổng bình phương các sai số.
Mục đích của phương pháp bình phương tối thiểu là xác định a và b sao cho S bé nhất Như vậy a và b là nghiệm của hệ chính tắc
∂b = 0 ⇔ na+bP xi =P yi; aP x i +bP x 2 i =P x i y i
Ví dụ 6.2 Sử dụng phương pháp bình phương tối thiểu để xấp xỉ bảng dữ liệu sau: xi 1 2 3 4 5 6 7 8 9 10 yi 1.3 3.5 4.2 5.0 7.0 8.8 10.1 12.5 13.0 15.6 x i y i x 2 i x i y i P(x i ) = 1.538x i −0.360
(yi−P(xi)) 2 ≈2.34Trường hợp y=a+bx+cx 2 Nếu y=a+bx+cx 2 thì a, b, c là nghiệm của hệ chính tắc
na+bP xi+cP x 2 i =P yi aP xi+bP x 2 i +cP x 3 i =P xiyi aP x 2 i +bP x 3 i +cP x 4 i =P x 2 i yi.
Ví dụ 6.3 Tìm một đa thức bậc không quá 2 theo phương pháp bình phương cực tiểu cho bảng dữ liệu sau. i xi yi
Trong bài viết này, chúng ta sẽ khám phá quan hệ phi tuyến giữa y và bx Đầu tiên, chúng ta lấy logarit của cả hai vế của phương trình y = a + bx, dẫn đến lny = lna + bx Bằng cách đặt Y = lny, X = x, A = lna và B = b, chúng ta có thể chuyển đổi thành phương trình Y = A + BX Tiếp theo, chúng ta sẽ chuyển đổi bảng số giữa x và y thành bảng số giữa X và Y Cuối cùng, chúng ta sẽ tính các tổng P để hoàn thiện phân tích.
XiYi. d) Giải hệ chính tắc nA+BP
Ví dụ 6.4 Xét bảng dữ liệu sau: i xi yi
Ta có i xi yi lnyi x 2 i xilnyi
1 Lập chương trình và in kết quả theo bảng
(a) Các hệ số của đa thức Chebychev n= 0,20.
(b) Các hệ số của đa thức Legendre n = 0,20.
2 Tìm đường thẳng xấp xỉ tốt nhất dữ liệu sau x 0.0 1.0 2.0 2.5 3.0 y 2.9 3.7 4.1 4.4 5.0 theo phương pháp bình phương cực tiểu.
3 Xác định tham số a và b sao cho hàm f(x) = ae bx xấp xỉ tốt nhất bảng dữ liệu sau theo nghĩa bình phương cực tiểu x 1.2 2.8 4.3 5.4 6.8 7.9 y 7.5 16.1 38.9 67.0 146.6 266.2
4 Tìm đường thẳng và parabol xấp xỉ bảng dữ liệu sau x 1.0 2.5 3.5 4.0 1.1 1.8 2.2 2.7 y 6.008 15.722 27.130 33.772 5.257 9.549 11.098 28.828
Phương pháp nào tốt hơn?
5 Xác định a và b sao cho hàm f(x) = asin(πx/2) +bcos(πx/2) xấp xỉ tốt nhất bảng dữ liệu sau theo phương pháp bình phương cực tiểu: x -0.5 -0.19 0,02 0.20 0.35 0.50 y -3.558 -2.874 -1.995 -1.040 -0.068 0.677
6 Xác địnhavà b sao cho hàmf(x) =ax b xấp xỉ tốt nhất bảng dữ liệu sau theo phương pháp bình phương cực tiểu: x 0.5 1 1.5 2.0 2.5 y 0.49 1.6 3.36 6.44 10.16
7 Xác định a và b sao cho hàm f(x) = axe bx xấp xỉ tốt nhất bảng dữ liệu sau theo phương pháp bình phương cực tiểu: x 0.5 1 1.5 2.0 2.5 y 0.541 0.398 0.232 0.106 0.052
8 Xác định mặt phẳng f(x, y) = a+bx+cy xấp xỉ tốt nhất dữ liệu sau x y z
GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂN
Chương này chúng ta sẽ nghiên cứu một số phương pháp số sau để giải phương trình vi phân:
• Phương pháp xấp xỉ Picard;
• Phương pháp Euler và Euler cải tiến;
Bạn đọc có thể tìm hiểu thêm các kiến thức chuyên sâu liên quan đến các phương pháp trên trong các tài liệu [4, 9, 12].
Một số khái niệm về phương trình vi phân thường
Phương trình vi phân đóng vai trò quan trọng trong khoa học kỹ thuật và được nghiên cứu rộng rãi trong toán học thuần túy, vật lý và các ngành kỹ thuật Việc tìm nghiệm chính xác cho các phương trình vi phân cụ thể thường gặp khó khăn Trong nhiều trường hợp, người ta chỉ quan tâm đến giá trị của hàm số tại các giá trị cụ thể của biến độc lập Tuy nhiên, việc tìm giá trị chính xác của hàm số tại một điểm nào đó không phải lúc nào cũng khả thi Do đó, tìm kiếm một giá trị xấp xỉ chính xác là giải pháp tối ưu Phương trình vi phân thường cấp n có dạng như sau.
= 0 (7.1) trong đó xlà biến số độc lập, y=y(x) là hàm số phải tìm và y ′ (x),y ′′ (x), ,y (n) (x)là các đạo hàm của hàm số y=y(x).
• Cấp của phương trình là cấp của đạo hàm cao nhất có mặt trong phương trình.
• Nghiệm của phương trình là mọi hàm số y=y(x) thỏa mãn phương trình (7.1).
Giải phương trình vi phân thường nhằm mục đích tìm ra tất cả các nghiệm của phương trình đó Định nghĩa 7.2 đề cập đến phương trình vi phân cấp n có dạng y(n)(x) = f(x, y(x), y'(x), , y(n−1)(x)).
Bài toán Cauchy trong phương trình vi phân là việc xác định hàm y = y(x) sao cho thỏa mãn phương trình vi phân và các điều kiện ban đầu, bao gồm y(x0) = y0, y ′ (x0) = y 0 ′, và các đạo hàm bậc cao tại x0 Đặc biệt, đối với phương trình vi phân cấp 1, bài toán Cauchy tìm nghiệm y = y(x) của phương trình y ′ = f(x, y) với điều kiện ban đầu y(x0) = y0.
Phương trình vi phân (7.3) tương đương với phương trình tích phân y(x) =y0+
Zx x 0 f s, y(s) ds (7.5) theo nghĩa mọi nghiệm của phương trình (7.3) là nghiệm liên tục của (7.5) và ngược lại.
Trong chương này, chúng ta sẽ tìm hiểu ba phương pháp giải gần dúng phương trình vi phân sau đây:
• Phương pháp Euler và Euler cải tiến, gồm 3 phương pháp: Phương pháp Euler, Phương pháp Euler cải tiến thứ nhất và Phương pháp cải tiến thứ hai.
• Phương pháp Adams, gồm 2 phương pháp: Công thức nội suy Adams và Công thức ngoại suy Adams.
Phương pháp một bước
Phương pháp xấp xỉ Picard
Xét phương trình vi phân cấp một dy dx =f(x, y) (7.6) với điều kiện ban đầu y(x0) = y0 Lấy tích phân (7.6) từ x0 đến x ta được y(x) =y 0 +
Xấp xỉ đầu tiên y1 thu được bằng cách thay y bằng y0 trong công thức (7.7) Khi đó, y 1 =y 0 +
Tiếp tục quá trình trên ta thu được dãy y0, y1, y2, , yn trong đó yn =y0+
Công thức Lặp Picard là một phương pháp lặp để tìm nghiệm chính xác của phương trình, với điều kiện hàm f(x, y) bị chặn trong lân cận của điểm (x0, y0) trong miền D và thỏa mãn điều kiện Lipschitz.
|f(x, y)−f(¯x,y)¯ |< L|y−y¯|, ∀(x, y),(¯x,y)¯ ∈D trong đó L≥0và f liên tục theo trong miền D chứa(x0, y0) Phép lặp sẽ kết thúc khi
|yn−y n−1 |< ε trong đó ε là sai số chúng ta mong muốn.
Ví dụ 7.1 Sử dụng phương pháp xấp xỉ Picard tính y(0.1) và y(0.2) chính xác tới bốn chữ số thập phân của nghiệm phương trình dy dx =x 3 +y, y(0) = 1.
Lời giải Công thức lặp Picard yn=y0+
Với y0 = 1 và x0 = 0 ta có công thức xấp xỉ đầu tiên y1 =y0+
Do đóy1(0.1) = 1 + 0.1 = 1.1 Công thức xấp xỉ thứ hai y2 =y0+
Từ đó ta cóy2(0.1) = 1105025 Công thức xấp xỉ thứ ba y3 =y0+
Từ đó, ta cóy 3 (0.1) = 1.105192 Công thức xấp xỉ thứ tư y4 =y0+
Từ đó, ta cóy 4 (0.1) = 1.105196 Vì
Kết quả của phép lặp Picard với x0 = 0.1 và y0 = 1.1052 cho y(0.2) = 1.2284, đạt độ chính xác bốn chữ số thập phân sau năm bước lặp.
Phương pháp chuỗi Taylor
Với xi+1 =xi+h ta có khai triển Taylor y(xi+1) =y(xi) +y ′ (xi)h+ 1
(k+ 1)!h k+1 y (k+1) (ξi) trong đó ξi nằm giữa xi và xi+1 Phương pháp chuỗi Taylor cấp k được định nghĩa như sau y i+1 =y i +hp k (x i , y i ), i= 0,1,2, , n−1 x0 x1
Hình 7.1: Ý nghĩa hình học của phương pháp Euler trong đó p k (x i , y i ) =f(x i , y i ) + 1
Ví dụ 7.2 Sử dụng chuỗi Taylor đến cấp 5, tính giá trị xấp xỉ cho y(1) với y là nghiệm của phương trình vi phân sau y ′ = 2y+ 3 sinx+e x , y(0) = 7, 0≤x≤1. với 5 bước lặp.
Nghiệm chính xác của phương trình trên y(x) = −3
Ví dụ 7.3 Xét bài toán
Phương pháp Euler
Xét bài toán giá trị ban đầu y ′ =f(x, y), y(x0) = y0. Tính y(x1).
Khai triển Taylor y(x1) tại điểm x0 ta có y(x1) =y(x0+h) = y(x0) +y ′ (x0)h+ 1
2!h 2 y ′′ (ξ0) trong đó ξ0 nằm giữa x0 và x1 Tổng quát: y(xi+1) = y(xi) +y ′ (xi)h+ 1
2!h 2 y ′′ (ξi) trong đó ξi nằm giữa xi và xi+1.
Phương pháp Euler: yi+1 =yi+hf(xi, yi), i= 0,1,2, , n−1.
Ví dụ 7.4 Xét bài toán
Biết nghiệm chính xác của phương trình trên là yexact(x) = 3
Nghiệm chính xác tại 0.1là yexact(0.1) = 3
Tiếp tục tính toán ta có kết quả thể hiện ở bảng sau: x yEuler yexact
Ví dụ 7.5 Giải phương trình sau y ′ (t) = −2y(t), y(0) = 3. y0 = 3 ; h = 0 2 ; t = 0 : h : 2 ; y e x a c t = 3∗exp (−2∗t ) y s t a r = z e r o s ( s i z e ( t ) ) ; y s t a r ( 1 ) = y0 ; f o r i = 1 : ( l e n g t h ( t )−1) k1 = −2∗y s t a r ( i ) ; y s t a r ( i +1) = y s t a r ( i ) + k1∗h ; end p l o t ( t , y e x a c t , t , y s t a r ) ; l e g e n d ('Exact' ,'Approximate ') ;
Ví dụ 7.6 Giải phương trình sau y ′ (t) = −2y(t) + cos(4t), y(0) = 3. y0 = 3 ; h = 0 2 ; t = 0 : h : 2 ; y e x a c t = 0 1∗c o s ( 4∗t ) + 0 2∗s i n ( 4∗t ) + 2 9∗exp (−2∗t ) ; y s t a r = z e r o s ( s i z e ( t ) ) ; y s t a r ( 1 ) = y0 ; f o r i = 1 : ( l e n g t h ( t )−1) k1 = −2∗y s t a r ( i )+ c o s ( 4∗t ( i ) ) ; y s t a r ( i +1) = y s t a r ( i ) + k1∗h ; end p l o t ( t , y e x a c t , t , y s t a r ) ; l e g e n d ('Exact ', 'Approximate ') ;
Phương pháp Euler cải tiến
Định nghĩa 7.3 Phương pháp Euler cải tiến có dạng yi+1 =yi+hk2, i= 0,1,2 n−1, với k 1 =f(x i , y i ), k2 =f(xi+h
Ví dụ 7.7 Xét bài toán y ′ −x 2 y= 2x 2 , y(0) = 1, 0≤x≤1, h= 0.1. Tính y(0.1).
The MATLAB function `ImprovedEulerODE` implements the Improved Euler method for solving ordinary differential equations It initializes the output array `y` with the initial condition `y0`, calculates the step size `h`, and iterates through the provided `x` values For each step, it computes the slope `k1` and updates the next value of `y` using the formula that incorporates the midpoint evaluation After defining the function `f`, which represents the differential equation, the code calls `ImprovedEulerODE` to obtain the approximate solution It also calculates the exact solution using MATLAB's `dsolve` function Finally, the script prints the coordinates alongside the improved and exact values for comparison, formatted to six decimal places.
Phương pháp Runge - Kutta
Xét phương trình vi phân sau y ′ =f(x, y), y(x0) =y0, a=x0 ≤x≤xn =b. Phương pháp Runge - Kutta có dạng sau: yi+1 =yi+ 1
6(k1+ 2k2+ 2k3+k4), i= 0,1, n−1, trong đó k1 =hf(xi, yi), k2 =hf(xi+h
Một cách khác để biểu diễn phương pháp Runge-Kutta được gọi là bảng Butcher theo tên John C Butcher (32-3-1933) yi+1 =yi+h
Xs n=1 ankn, trong đó k1 =f(ti, yi), k2 =f(ti+α2h, yi+h(β21k1)), k 3 =f(t i +α 3 h, y i +h(β 31 k 1 +β 32 k 2 )), ks=f(ti+αsh, yi+h(βs1k1 +βs2k2+ã ã ã+βs,s − 1ks − 1)).
Những dữ liệu này thường được sắp xếp một cách dễ nhớ như sau, gọi là Bảng Butcher
Khi đó ta có thể biểu diễn phương pháp Runge - Kutta như sau:
1/6 1/3 1/3 1/6 Người ta cũng có thể viết phương pháp Runge - Kutta dưới dạng y i+1 =y i +1
6h(k 1 + 2k 2 + 2k 3 +k 4 ), i= 0,1, n−1, trong đó k1 =f(xi, yi), k2 =f(xi+h
Ví dụ 7.8 Xét bài toán y ′ −x 2 y= 2x 2 , y(0) = 1, 0≤x≤1, h= 0.1.
Lời giải Chú ý rằng f(x, y) = x 2 (2 +y) Ta có k 1 =f(x 0 , y 0 ) =f(0,1) = 0, k2 =f(x0+ h
Ví dụ 7.9 Xét phương trình y ′ =x 2 +y 2 , y(0) = 1.
Sử dụng phương pháp Runge-Kutta, hãy xấp xỉ giá trị củay tại0.1và0.2vớih= 0.1.
Lời giải Sử dụng phương pháp Runge-Kutta ta có y i+1 =y i +1
6h(k 1 + 2k 2 + 2k 3 +k 4 ), i= 0,1, n−1, trong đó k1 =f(xi, yi) k2 =f(xi+h
Chú ý 7.1 Nếu sử dụng công thức Runge-Kutta dưới dạng yi+1 =yi+ 1
2) k4 =hf(xi+h, yi+k3) thì các giá trị k1, k2, k3, k4 sẽ khác nhưngy1, y2 thì vẫn giống như trên.
Nếu tiếp tục tính một số bước nữa ta có kết quả thể hiện dưới bảng sau i xi k1 k2 k3 k4 yi
Ví dụ 7.10 Áp dụng phương pháp RK cho phương trình y ′ =y−t 2 + 1, 0≤t≤1, y(0) = 1 2
Nghiệm chính xác của phương trình trên là y(t) =t 2 + 2t+ 1−0.5e t f u n c t i o n RungeKutta h = 0 1 ; t = 0 ; y = 0 5 ; f i g u r e ( 1 ) ; c l f ; e z p l o t ('t ^2+2∗t +1−0.5∗exp ( t ) ' , [ 0 , 1 ] ) ; h o l d on ; p l o t ( t , y , ' ∗ ') ; f p r i n t f ( '0 : t = %12.8 f , y = %12.8 f \n' , t , y ) ; f o r i =1:40 k1 = h∗f ( t , y ) ; k2 = h∗f ( t+h / 2 , y+k1 / 2 ) ; k3 = h∗f ( t+h / 2 , y+k2 / 2 ) ; k4 = h∗f ( t+h , y+k3 ) ; y = y + ( k1+2∗k2+2∗k3+k4 ) / 6 ; t = t + h ; p l o t ( t , y , ' ∗ ') ; f p r i n t f (' %d : t = %6.4 f , y = %18.15 f \n' , i , t , y ) ; end i t y
Phương pháp đa bước
Phương pháp Adams - Bashforth
Mặc dù có thể sử dụng nhiều dạng đa thức nội suy để phát triển công thức Adams - Bashforth, nhưng để tiện lợi hơn, chúng ta chọn P(x) là đa thức nội suy Newton lùi.
Vì P(x) là đa thức nội suy bậc k−1 nên tồn tại ξk ∈(xm+1 − k, xm)sao cho f(x) =P(x) + f (k) (ξm, y(ξm)) k! (x−xm)(x−x m−1 )ã ã ã(x−x m+1−k ). Đổi biến x=xm+sh với dx=hdsta có xZm+1 x m f(x, y(x))dx xZm+1 x m
−s i ds dễ dàng được tính toán chẳng hạn với i= 3 ta có
8. Để cho tiện sử dụng ta liệt kê chúng dưới bảng sau: i 0 1 2 3 4 5 6 7 a i = (−1) i
Từ đó ta có xZm+1 x m f(x, y(x))dx=h
Bởi vỡs(s+ 1)ã ã ã(s+k−1)khụng đổi dấu trờn[0,1], theo định lý giỏ trị trung bỡnh của tớch phõn mở rộng, tồn tạiàm ∈(tm+ 1−k, tm+1) sao cho h k+1 k!
Từ đó, yx m+1 = yx m + xZm+1 x m f(x, y(x))dx (7.13)
Sau đây, chúng ta xét một vài trường hợp cụ thể:
• Với k = 1: ym+1 =ym+h(fm+a1∇fm) = ym+ h
• Với k = 2: ym+1 =ym+h(fm+a1∇fm+a2∇fm − 1)
• Với k = 3: ym+1 =ym+h(fm+a1∇fm+a2∇fm − 1+a3∇fm − 2)
Phương pháp Adams - Moulton
Phương pháp Adams - Bashford là một phương pháp hiển, trong khi phương pháp Adams-Moulton là phương pháp ẩn Phương pháp Adams-Moulton được phát triển bằng cách sử dụng thêm điểm (xm+1, f(xm+1, y(xm+1))) như một mốc nội suy cho tích phân từ xZm+1 đến xm của f(x, y(x)) dx.
720(251fm+1+ 646fm−264fm − 1+ 106fm − 2−19fm − 3).
Ví dụ 7.11 Bằng phương pháp ngoại suy Adams ứng với k = 3, giải gần đúng phương trình: y ′ =f(x, y) =y−x 2 biết y(0) = 1 và độ dài bước h= 0,1.
Lời giải Công thức ngoại suy Adams ứng vớik = 3: ym+1 =ym+ h
24(55fm−59fm − 1+ 37fm − 2 −9fm − 3) nghĩa là: y4 =y3+ h
24(55f3−59f2+ 37f1 −9f0) trong đó các giá trịfi(xi, yi),i= 0,1,2,3vàyi ≈y(xi)được tính bằng phương pháp RK4 với cácx0 = 0,x1 = 0.1, x2 = 0.2, x3 = 0.3. f(0,1) = 1, f(0.1,1.104829) = 1.094829, f(0.2,1.218597) = 1.178597, f(0.3,1.3402141) = 1.250141.
Nghiệm chính xác của phương trình φ(x) = 2 + 2x + x² - e^x có thể so sánh với nghiệm gần đúng từ phương pháp RK4 và phương pháp nội suy Adams với k = 3 Dưới đây là bảng so sánh giữa các nghiệm gần đúng và nghiệm chính xác của phương trình tại các điểm xi.
MATLAB
Mở đầu về MATLAB
MATLAB là môi trường tính toán số và lập trình do công ty MathWorks phát triển, cho phép thực hiện các phép toán với ma trận, vẽ đồ thị và biểu đồ, thực hiện thuật toán, tạo giao diện người dùng và kết nối với các chương trình viết bằng nhiều ngôn ngữ lập trình khác MATLAB giúp đơn giản hóa việc giải quyết các bài toán tính toán kỹ thuật so với các ngôn ngữ lập trình truyền thống như C, C++ và Fortran.
MATLAB là công cụ quan trọng trong nhiều lĩnh vực như xử lý tín hiệu, xử lý ảnh, truyền thông, thiết kế điều khiển tự động, đo lường và kiểm tra, phân tích mô hình tài chính, và tính toán sinh học Được sử dụng bởi hàng triệu kỹ sư và nhà khoa học trong cả môi trường công nghiệp và học thuật, MATLAB đã trở thành ngôn ngữ chủ yếu cho tính toán khoa học.
Giao diện
Màn hình giao diện có dạng như sau:
Command Window là giao diện cho phép người dùng nhập lệnh và nhận kết quả tính toán trong MATLAB Mỗi lệnh sẽ được thực thi ngay khi người dùng nhấn nút Enter.
Workspace trong MATLAB là không gian hiển thị các dữ liệu đang được sử dụng, cho phép người dùng nắm bắt thông tin về loại, kích thước và nội dung của các biến hiện có trong bộ nhớ.
Lịch sử lệnh trong MATLAB lưu trữ mọi câu lệnh đã thực hiện, cho phép người dùng dễ dàng truy cập và thực hiện lại bất kỳ lệnh nào chỉ bằng cách nhấp đúp vào lệnh trong Lịch sử lệnh.
• Scripts là một tập các câu lệnh được thực hiện theo trình tự, được viết trong MATLAB editor, save dưới dạng MATLAB files (đuôi m).
MATLAB hỗ trợ nhiều loại biến, cho phép người dùng thực hiện các phép toán với ma trận và vector, bao gồm cả số học và ký tự Để tạo biến trong MATLAB, bạn chỉ cần gán một giá trị cho tên biến.
• Mảng là một thành phần rất quan trọng của MATLAB Có 2 loại mảng:
– mảng số: ma trận số thực hoặc số phức.
– mảng cell: một cấu trúc dữ liệu trừu tượng, là mảng của các đối tượng.
– Vector hàng: dùng dấu cách hoặc dấu phẩy để ngăn cách các phần tử trong dấu ngoặc vuông [ ]
– Vector cột: dùng dấu chấm phẩy ngăn cách các phần tử trong dấu ngoặc vuông
Các phép toán
Các phép toán cơ bản:
Các hàm toán học được định nghĩa sẵn (Built-in Functions) s q r t ( 2 ) l o g ( 2 ) ; l o g 1 0 ( 1 2 ) c o s ( 1 2 ) , a t a n (− 8 ) round ( 1 2 ) , f l o o r ( 3 3 ) , c e i l ( 4 2 3 ) exp (2+4∗i ) a n g l e ( i ) ; abs (1+ i ) ;
Vẽ đồ thị cơ bản
MATLAB cung cấp công cụ mạnh mẽ cho việc biểu diễn dữ liệu một cách trực quan và hiệu quả, cho phép người dùng thực hiện các biểu đồ 2D, 3D, vẽ phối cảnh và nhiều dạng biểu đồ khác Khả năng trực quan hóa dữ liệu của MATLAB rất đa dạng, giúp người dùng dễ dàng phân tích và trình bày thông tin.
Chú ý A.1 Để biết rõ hơn về matlab, bạn đọc có thể tham khảo thêm các cuốn sách về Matlab chẳng hạn [17, 18].
Python
Tổng quan
Python là một ngôn ngữ lập trình bậc cao, thông dịch, hướng đối tượng, đa mục đích và cũng là một ngôn ngữ lập trình động.
Python là một ngôn ngữ lập trình dễ học, mạnh mẽ và linh hoạt, tương đương với nhiều ngôn ngữ khác Nó hỗ trợ đa dạng các mẫu lập trình, bao gồm lập trình hướng đối tượng, lập trình hàm, mệnh lệnh và lập trình theo thủ tục.
Python là một ngôn ngữ lập trình đa mục đích, không chỉ giới hạn trong lĩnh vực lập trình web mà còn có thể áp dụng trong nhiều lĩnh vực khác như thiết kế 3D và CAD.
Với Python, quá trình phát triển ứng dụng và gỡ lỗi diễn ra nhanh chóng hơn nhờ vào việc không cần bước biên dịch Chu trình chỉnh sửa, kiểm tra và gỡ lỗi của Python rất hiệu quả, giúp tiết kiệm thời gian cho lập trình viên.
Dưới đây là các đặc điểm chính của Python:
Python là một ngôn ngữ lập trình bậc cao dễ sử dụng, với số lượng từ khóa ít và cấu trúc đơn giản Cú pháp rõ ràng giúp lập trình viên dễ dàng tiếp cận và làm quen, khiến Python trở thành lựa chọn thân thiện cho người mới bắt đầu.
• Đọc code của Python khá dễ dàng: Phần code của Python được định nghĩa khá rõ ràng và rành mạch.
• Python có thư viện chuẩn khá rộng:Thư viện này dễ dàng tương thích và tích hợp UNIX, Windows, Macintosh.
Python là một ngôn ngữ lập trình thông dịch, cho phép thực thi mã nguồn từng dòng mà không cần biên dịch thành file thực thi Điều này không chỉ giúp quá trình gỡ lỗi trở nên dễ dàng hơn mà còn là một yếu tố quan trọng góp phần thu hút nhiều người học và làm cho Python trở nên phổ biến.
• Python cũng là một ngôn ngữ lập trình hướng đối tượng Ngoài ra, Python còn hỗ trợ các phương thức lập trình theo hàm và theo cấu trúc.
Python không chỉ nổi bật với các đặc điểm chính mà còn sở hữu nhiều tính năng khác như mã nguồn mở và khả năng tích hợp với các ngôn ngữ lập trình khác Thêm vào đó, ngôn ngữ này thường xuyên được cập nhật để bổ sung các tính năng và hỗ trợ mới, giúp người dùng luôn tiếp cận công nghệ hiện đại.
Một số lệnh cơ bản trong Python
Biến số: Khai báo biến bằng một câu lệnh gán. x=2 y="Trường Đại học Sư phạm Đà Nẵng" z=["a",1,6] nganh_hoc='sư phạm Toán'
Toán tử : Python hỗ trợ một số loại toán tử, ví dụ như toán tử toán học, toán tử logic, toán tử gán,
Python hỗ trợ một số toán tử logic như:
• not: để đảo giá trị
• and: phép tính logic và (AND)
• or: phép tính logic hoặc (OR)
Một số phép toán thông thường như:
< (bé hơn), (lớn hơn),
>= (lớn hơn hoặc bằng), == (bằng), != (khác)
Ví dụ A.1. a b@ cP if ab or c>b: print("chính xác") else: print("sai")
Các từ khóa trong Python: Dưới đây là các từ khóa trong Python.
When using Python, it's important to note that certain keywords cannot be utilized as identifiers, such as variable names Keywords like 'exec', 'assert', 'finally', 'break', 'for', 'pass', 'class', 'from', 'print', 'continue', 'global', 'raise', 'def', 'if', 'return', 'del', 'import', 'try', 'elif', 'in', 'while', 'else', 'is', 'with', 'except', 'lambda', and 'yield' are reserved and should not be repurposed Understanding these restrictions is crucial for effective programming in Python, particularly when working with mathematical functions.
Hàm abs(x) Trị tuyệt đối của x
Hàm ceil(x) Số nguyên nhỏ nhất mà không nhỏ hơn x
Hàm cmp(x,y) Trả về -1 nếux < y, trả về 0 nếux= y, hoặc 1 nếu x > y Hàm exp(x) Trả về e x
Hàm fabs(x) Giá trị tuyệt đối của x
Hàm floor(x) Số nguyên lớn nhất mà không lớn hơn x Hàm log(x) Trả về lnx, với x >0 Hàm log10(x) Trả về log 10 (x), với x >0 Hàm max(x1, x2, ) Trả về số lớn nhất
Hàm min(x1, x2, ) trả về giá trị nhỏ nhất trong danh sách các số, trong khi hàm modf(x) phân tách giá trị x thành phần nguyên và phần thập phân, cả hai đều có cùng dấu với x, với phần nguyên được trình bày dưới dạng số thực.
Hàm pow(x,y) Trả về giá trị x ∗∗ y Hàm sqrt(x) Trả về căn bậc 2 của x, vớix >0 Cấu trúc điều khiển a if elif else
Cấu trúc câu lệnh sau: if dieu_kien1:
#trả về về giá trị hoặc đưa ra phép tính elif dieu_kien2:
#trả về về giá trị hoặc đưa ra phép tính elif dieu_kie3:
#trả về về giá trị hoặc đưa ra phép tính else:
#trả về về giá trị hoặc đưa ra phép tính
Ví dụ A.2. mang=[] for i in range(10,30): if i %2==0: s=str(i) mang.append(s) print(mang)
Ta sẽ thu được kết quả sau:
['10','12', '14','16','18','20','22','24','26', '28'] b for in for interating_var in sequence: statements(s)
Ví dụ trên, chúng ta có sử dụng lệnh for in mang=[] for i in range(1000,3000): if i %2==0: s=str(i) mang.append(s) print(mang) c while
Cú pháp sử dụng lệnh như sau: while expression: statement(s)
Nhập số nguyên x và đếm số chữ số của nó, cũng như xác định chữ số đầu tiên Để thực hiện, sử dụng hàm int(input('số x là:')) để nhận giá trị x Khởi tạo biến đếm dem bằng 1 và sử dụng vòng lặp while để chia x cho 10 cho đến khi x nhỏ hơn 10 Mỗi lần lặp, tăng giá trị dem lên 1 Cuối cùng, in ra số chữ số của x và chữ số đầu tiên bằng cách sử dụng print.
Hàm trong Python a Cú pháp def ten_ham(cac_tham_so):
"function_docstring" function_suite return[bieu_thuc] b Ví dụ minh họa cách gọi hàm
- Xây dựng hàm tính khoảng cách: def distance (x1,y1,x2,y2): dx=x2-x2 dy=y2-y1 dsquared=dx*dx-dy*dy result=dsquared**0.5 return result
Thư viện trong Python
Có nhiều thư viện trong Python, các thư viện thường dùng trong Python như NumPy, SciPy, Matplotlib, SymPy.
Khai báo thư viện: import #thư viện cần sử dụng
NumPy và SymPy là hai thư viện toán học nổi bật trong Python, giúp xử lý hiệu quả các ma trận và mảng lớn, đồng thời cho phép thực hiện các hàm toán học phức tạp với tốc độ nhanh chóng.
NumPy và SymPy cung cấp khả năng biên dịch nhanh cho các phép toán toán học và số học, đặc biệt hữu ích cho việc xử lý ma trận và mảng với khối lượng dữ liệu lớn.
Mỗi khi bạn thay đổi đặc điểm của bất kỳ mảng N chiều nào, NumPy sẽ tạo các mảng mới cho mảng đó và xóa các mảng cũ.
Khi nhắc đến NumPy, không thể không đề cập đến SciPy, một thư viện cung cấp các thuật toán và công cụ toán học cho Python SciPy mang đến nhiều quy trình số hiệu quả và dễ sử dụng, đặc biệt trong các lĩnh vực như đại số tuyến tính, giải tích và thống kê.
Matplotlib là thư viện Python mạnh mẽ cho việc tạo đồ thị 2D, thường được sử dụng trong toán học Thư viện này cho phép người dùng tạo nhiều giao điểm giữa các trục số đồng thời và cung cấp khả năng thao tác trực tiếp với các đặc điểm khác nhau của đồ thị.
Matplotlib là công cụ lý tưởng để tạo ra đồ thị chất lượng cao và xuất bản một cách dễ dàng, phù hợp với nhu cầu của nhiều ngành học Các đồ thị được tạo ra bằng Matplotlib có thể dễ dàng chia sẻ và sử dụng trên nhiều nền tảng tương tác khác nhau.
Một số chương trình Python để giải các bài toán độc giả có thể tham khảo trong các tài liệu sau [19, 20].
Ngoài hai phần mềm đã đề cập, người dùng có thể khám phá thêm nhiều phần mềm miễn phí khác có thể sử dụng trực tuyến mà không cần cài đặt, ví dụ như Mathwolfram (Mathematica), Symbolab, và GNU Octave Bên cạnh đó, còn có các phần mềm miễn phí có thể cài đặt để sử dụng.
Hàm số và tính liên tục
Định nghĩa B.1 (Tính liên tục) Cho f : (a, b)→R, x0 ∈(a, b) Ta nói rằng f liên tụctại x0 nếu ∀ε >0tồn tại δ >0 sao cho:
Tính chất: Cho hàmf : [a, b]→R liên tục trên đoạn[a, b] Khi đó
• Hàm f bị chặn trên đoạn [a, b].
• Hàm f đạt GTLN và GTNN trên [a, b].
• Hàm f nhận mọi giá trị trung gian giữa f(a) và f(b).
• Hàm f liên tục đều trên đoạn [a, b].
Đạo hàm
Xét hàm số thực y = f(x) xác định trên khoảng (a; b), với x0 ∈ (a; b) và x ∈ (a; b), x ≠ x0 Đặt ∆x = x - x0, trong đó x = x0 + ∆x, với ∆x được gọi là số gia đối số Đồng thời, ∆y = f(x) - f(x0) được gọi là số gia hàm số.
∆x Nếu khi ∆x → 0, tỷ số đó dần tới một giới hạn thì giới hạn đó được gọi là đạo hàm của hàm sốy=f(x) tại điểm x0 ký hiệu là f ′ (x0) hay f(x˙ 0) f ′ (x0) = lim
Các định lý cơ bản của hàm khả vi bao gồm: Định lý Fermat, cho biết nếu c là điểm cực trị của hàm f và đạo hàm f' tại c tồn tại, thì f'(c) = 0 Định lý Rolle khẳng định rằng với hàm f liên tục trên đoạn [a, b] và khả vi trong (a, b) với f(a) = f(b), tồn tại ít nhất một điểm c trong (a, b) sao cho f'(c) = 0 Định lý Lagrange chỉ ra rằng nếu f liên tục trên [a, b] và khả vi trong (a, b), thì tồn tại c trong (a, b) sao cho f(b) - f(a) = f'(c)(b - a) Cuối cùng, định lý Cauchy khẳng định rằng với hai hàm f(x) và g(x) liên tục trên [a, b] và khả vi trong (a, b), tồn tại ít nhất một điểm c trong (a, b) thỏa mãn điều kiện nhất định.
Nếu \( g' (x) \neq 0 \) với mọi \( x \in (a, b) \), thì ta có công thức: \( \frac{f(b) - f(a)}{g(b) - g(a)} = f' (c) g' (c) \) Ngoài ra, theo công thức Taylor, với \( n \) là số nguyên dương và \( f \) là hàm khả vi liên tục đến cấp \( n \) trên khoảng đóng \([a, x]\) và khả vi cấp \( n+1 \) trên khoảng mở \((a, x)\), ta có thể biểu diễn \( f(x) \) dưới dạng: \( f(x) = f(a) + f' (a) \).
1! (x−a) +ã ã ã+f (n) (a) n! (x−a) n +R n (x). với Rn(x) là phần dư bậcn.
Dạng Lagrange của phần dư trong công thức trên là
(n+ 1)! (x−a) n+1 với ξ là số nằm giữa a và x.
Ngoài ra còn có dạng tích phân của phần dư:
Rn(x) Z x a f (n+1) (t) n! (x−t) n dt, với f (n) là hàm liên tục tuyệt đối trên [a, x].
Giả sử f(x) và g(x) là hai hàm số định nghĩa trên tập số thực Chúng ta nói rằng f(x) = O(g(x)) khi x → ∞ nếu tồn tại một hằng số M đủ lớn sao cho với mọi giá trị x đủ lớn, f(x) nhỏ hơn M lần g(x) về giá trị tuyệt đối Điều này có nghĩa là tồn tại số thực dương M và số thực x0 sao cho f(x) không vượt quá M * g(x) khi x lớn hơn x0.
Trong nhiều trường hợp, giả thiết x tiến đến vô cùng là ngầm hiểu, và ta có thể viết f(x) = O(g(x)) Ký hiệu này cũng có thể mô tả giá trị của f xung quanh giá trị a (thường là a= 0) Chúng ta nói f(x) = O(g(x)) khi x→a nếu và chỉ nếu tồn tại các số thực dương δ và M sao cho:
Nếu g(x) là khác không khi x đủ gần a, cả hai định nghĩa đều có thể được viết bằng giới hạn trên f(x) =O(g(x))khi x→a khi và chỉ khi lim sup x → a f(x) g(x)
• Ký hiệu O lớn được dùng để mô tả sai số trong phép xấp xỉ một hàm toán học Ví dụ: e x = 1 +x+ x 2
Ký hiệu O lớn được sử dụng để phân tích độ phức tạp của thuật toán, ví dụ như thời gian hoàn thành một bài toán kích thước n được biểu diễn là T(n) = 4n² − 2n + 2, trong đó T(n) = O(n²) Định nghĩa B.2 về tốc độ hội tụ cho biết rằng với dãy {βn} hội tụ về 0 và dãy {αn} hội tụ về α, nếu tồn tại một hằng số K thỏa mãn điều kiện nhất định.
|αn−α| ≤K|βn| thì ta nói rằng αn hội tụ về α với tốc độ hội tụ O(βn).
Thông thường, chúng ta chọn βn với dạng βn = 1/n^p Để tìm hiểu chi tiết hơn, độc giả có thể tham khảo các giáo trình về Giải tích toán học.
Ma trận và định thức
Định nghĩa ma trận
Ma trận là một bảng bao gồm các số hoặc các biểu thức được xếp thành các hàng và các cột.
Ma trận có m hàng và n cột được ký hiệu như sau:
•Dạng rút gọn: A= (aij) m×n hoặc A= [aij] m×n
Các phép biến đổi sơ cấp
Các phép biến đổi sau đây thực hiện trên ma trận được gọi là phép biến đổi sơ cấp
• Đổi vị trí 2 hàng hoặc 2 cột cho nhau;
• Nhân một số λ ̸= 0 bất kỳ vào một hàng hoặc một cột nào đó;
• Cộng vào một hàng (cột) với tích của một số λ với một hàng nào đó (một cột nào đó).
Định thức và cách tính
Cho ma trận vuông cấp1:A= (a11)1 × 1 Định thức củaAđược ký hiệu là det(A)hoặc
|A| và tính như sau: det(A) =|A|=a11.
Cho ma trận vuông cấp 2: A= a11 a12 a21 a22
! Định thức củaA là: det(A) =|A| a 11 a 12 a 21 a 22
=a11a22−a21a12. Cho ma trận vuông cấp n(n≥3)
. Định thức của A được tính quy nạp theo công thức sau đây: det(A) Xn j=1
Định thức của ma trận A có thể được khai triển theo hàng thứ nhất với công thức (-1)^(1+j) * a1j * M1j, trong đó M1j là định thức cấp n−1 của ma trận con thu được bằng cách xóa hàng thứ nhất và cột thứ j Ngoài ra, định thức det(A) cũng có thể được khai triển theo bất kỳ hàng hoặc cột nào khác Theo định lý C.1, có điều kiện cần và đủ để một ma trận là khả nghịch.
A Điều kiện cần và đủ để ma trận A có ma trận nghịch đảo là det(A)̸= 0. Để tìm ma trận nghịch đảo của một ma trận cấp n, A = (aij) cho trước, ta làm như sau:
Để tính các Aij, công thức được sử dụng là Aij = (−1)^(i+j) Mij, trong đó Mij là định thức của ma trận con được tạo ra từ ma trận A bằng cách loại bỏ hàng i và cột j Aij được biết đến như là phần phụ đại số của phần tử aij.
Bước 3: Lập ma trận nghịch đảo A − 1 theo công thức
Ma trận con là một ma trận vuông cấp k được tạo ra từ các phần tử nằm trên k hàng và k cột của ma trận A có cấp mxn, trong đó k là số tự nhiên không vượt quá n.
Nhận xét: Cứ lấy k hàng và k cột củaA thì ta có một định thức con cấp k Vậy có
C m k C n k định thức con cấp k. Định nghĩa C.2 Khái niệm hạng của ma trận - NếuA là ma trậnO thì ta quy ước hạng của A bằng 0.
- Nếu A ̸=O thì hạng của ma trận A là cấp cao nhất của định thức con khác 0 của ma trận A.
Ký hiệu hạng của ma trận A là:rankA
Chú ý: Với mọi ma trậnA cấp m×n thì 0≤rankA≤min(m, n).
Hệ phương trình tuyến tính
Hệ phương trình tuyết tính tổng quát gồm m phương trình và n ẩn số có dạng:
Dạng ma trận-vector của hệ như sau:
Nghiệm của hệ (C.1) là một bộ số sắp thứ tự (c1, c2, , cn)∈K n, với điều kiện khi thay xj = cj (j = 1, n) vào các phương trình của hệ (C.1), ta nhận được các đồng nhất thức trên K Khi đó, ma trận cột C sẽ được xác định từ các giá trị này.
Tập hợp tất cả các nghiệm của một hệ phương trình tuyến tính được gọi là tập hợp nghiệm của hệ đó Hai hệ phương trình có cùng số ẩn được xem là tương đương nếu chúng có cùng tập hợp nghiệm Một hệ phương trình tuyến tính được coi là có nghiệm hay tương thích khi tập nghiệm của nó không rỗng; ngược lại, nếu tập nghiệm rỗng, hệ đó được gọi là vô nghiệm hay không tương thích Hệ phương trình tuyến tính tương thích có duy nhất một nghiệm được gọi là hệ xác định, trong khi hệ không xác định là những hệ không có nghiệm duy nhất.
Ma trận sau đây gọi là ma trận hệ số mở rộng
Định lý Kronecker - Capelli (Định lý C.2) xác định rằng điều kiện cần và đủ để một hệ phương trình tuyến tính tổng quát có nghiệm là hạng của ma trận hệ số phải bằng hạng của ma trận hệ số mở rộng, tức là rankA = rank(A|B) Hệ phương trình Cramer (Định nghĩa C.3) là hệ phương trình tuyến tính tổng quát với số ẩn bằng số phương trình (n) và định thức ma trận hệ số khác 0 (det(A) ≠ 0) Định lý Crammer (Định lý C.3) áp dụng cho hệ phương trình Cramer với dạng ma trận cụ thể.
Hệ phương trình có nghiệm duy nhất khi được biểu diễn bằng công thức xi = det(Ai) / det(A) với mọi i = 1, 2, , n Ở đây, Ai là ma trận thu được từ ma trận hệ số A bằng cách thay thế cột thứ i bằng cột hệ số tự do B.
Với hệ tuyến tính tổng quát ta có kết quả sau Định lý C.4 Cho hệ phương trình tuyến tính tổng quát
Hệ phương trình tuyến tính có dạng am1x1 + am2x2 + + amnxn = bm với ma trận hệ số A và ma trận hệ số mở rộng A Nếu r(A) < r(A) thì hệ vô nghiệm; nếu r(A) = r(A) = n (số ẩn) thì hệ có duy nhất nghiệm; và nếu r(A) = r(A) = r < n thì hệ có vô số nghiệm phụ thuộc vào n−r tham số Đối với ma trận vuông cấp n, các mệnh đề sau là tương đương: A là ma trận khả nghịch, hệ phương trình Ax = 0 chỉ có nghiệm tầm thường, và các cột của A là độc lập tuyến tính.
Giá trị riêng, vector riêng
Giả sử A là ma trận vuông cấp N Số λ gọi là trị riêng của A nếu phương trình
Ax = λx,(x ∈ R n ) có nghiệm x ̸= 0 Vector x ̸= 0 này được gọi là vector riêng ứng trị riêng.
Chú ý C.1 λ là một giá trị riêng của A khi và chỉ khi det(A−λI) = 0. Định lý C.6 NếuA là ma trận đối xứng thì:
(i) Các giá trị riêng của A là số thực.
(ii) Các vector riêng tương ứng với các giá trị riêng khác nhau thì trực giao.
Chú ý C.2 Để biết chi tiết hơn, độc giả có thể tìm đọc các giáo trình về Đại số tuyến tính.
[1] P K Anh, Giải tích số Nhà xuất bản Đại học Quốc gia Hà Nội, 2005.
[2] N M Chương, Giải tích số Nhà xuất bản Giáo dục, 2001.
[3] P P T và Nguyễn Bường, Giải tích số: Thuật toán, chương trình Pascal Nhà xuất bản Đại học Quốc gia Hà Nội, 2000.
[4] A Ackleh, E Allen, R Kearfott, and P Seshaiyer, Classical and Modern Numeri- cal Analysis: Theory, Methods and Practice, ser Chapman & Hall/CRC Numerical Analysis and Scientific Computing Series CRC Press, 2009.
[5] J F Epperson,An Introduction to Numerical Methods and Analysis, 2nd ed Wiley, 2013.
[6] A Neumaier, Introduction to Numerical Analysis Cambridge University Press, 2001.
[7] J P George Lindfield, Numerical Methods: Using MATLAB, 4th ed Academic Press, 2019.
[8] N Nassif and D Fayyad,Introduction to Numerical Analysis and Scientific Comput- ing CRC Press, 2016.
[9] R L B J D Faires, Numerical analysis, 9th ed Brooks/Cole Cengage Learning, 2011.
[10] W Gautschi,Numerical Analysis Birkh¨auser Boston, 2011.
[11] S Ray, Numerical Analysis with Algorithms and Programming CRC Press, 2018.
[12] T Sauer, Numerical Analysis, 3rd ed Pearson, 2017.
[13] T V Đĩnh,Phương pháp tính Nhà xuất bản Giáo dục, 1994.
[14] R K Gupta,Numerical Methods: Fundamentals and Applications Cambridge Uni- versity Press, 2019.
[15] R S Esfandiari,Numerical Methods for Engineers and Scientists using MatLab 2nd ed CRC, 2017.
[16] J Kiusalaas,Numerical Methods in Engineering with MATLAB® Cambridge Uni- versity Press, 2010.
[17] T Davis, MATLAB Primer CRC Press, 2010.
[18] S Linge and H Langtangen, Programming for Computations - MATLAB/Octave:
A Gentle Introduction to Numerical Simulations with MATLAB/Octave Springer International Publishing, 2018.
[19] ——,Programming for Computations - Python: A Gentle Introduction to NumericalSimulations with Python Springer International Publishing, 2018.