Phương pháp giải hệ phương trình của mơ hình tốn

Một phần của tài liệu 3. TOAN VAN LATS NCS LANH (Trang 63 - 67)

7. Điểm mới và đĩng gĩp của luận án

2.4 Phương pháp giải hệ phương trình của mơ hình tốn

2.4.1 Phương pháp giải hệ phương trình theo Newton - Raphson

Phương pháp Newton – Raphson là một cách để nhanh chĩng tìm ra một xấp xỉ tốt cho nghiệm nguyên của một hàm cĩ giá trị thực f (x) = 0. Với ý tưởng rằng một hàm liên tục và cĩ thể phân biệt thì hàm đĩ cĩ thể được xấp xỉ bởi một đường thẳng tiếp tuyến với nĩ để ứng dụng vào việc giải một hệ phương trình. Phương pháp này được rất nhiều tác giả sử dụng để giải hệ phương trình mơ tả q trình hĩa khí [91, 93, 104].

Phương pháp Newton–Raphson với một biến được thực hiện như sau: Phương pháp này bắt đầu với một hàm f được xác định qua số thực x, với đạo hàm f ′, và một số gần đúng x0 ban đầu sát với nghiệm của f. Nếu chức năng đáp ứng các giả định được đưa ra trong cơng thức đạo hàm và số dự đốn ban đầu gần với nghiệm số, thì một phép xấp xỉ tốt hơn x1 là

1= 0−

( 0) (2.6)

′( 0)

Về mặt hình học, (x1, 0) là điểm giao giữa trục x và tiếp tuyến của đồ thị của f tại (x0, f (x0)).

Hình 2.2 Nghiệm của hệ phương trình theo Newton - Raphson

Quá trình được lặp lại với

+1 = −

( )

(2.7)

′( )

Hình 2.3 Ý tưởng của thuật tốn Newton-Raphson

- Tại điểm ( 0, 0) bất kì thuộc hàm f(x) ta cĩ các thơng tin sau: + Phương trình tiếp tuyến với điểm ( 0, 0) cĩ cơng thức:

(): = ′( )( − ) + (2.8)

0 0 0

+ Gĩc tạo bởi tiếp tuyến tại điểm ( 0, 0) và trục hồnh (Ox) cĩ giá trị

được tính bằng cơng thức:

=

(2.9)

+ Giả sử giao điểm của tiếp tuyến (d) và trục hồnh là điểm 1, ta nhận xét thấy điểm này gần với nghiệm của phương trình ( ) =

0. Vì vậy nếu tìm được giá trị 1thì sẽ càng xấp xỉ tốt nghiệm của phương trình ( ) = 0. Làm thế nào tìm được giá trị 1 ?

- Ta cĩ một số mối liên hệ như sau:

′( ) == = 0 = 0

(2.10)

0 ∆

− 0

- Từ đĩ ta suy ra được giá trị nghiệm tiếp theo được xác định bởi cơng thức:

1= 0− ( 0)

(2.11)

′( )

0

- Khi cĩ được giá trị 1, ta lại tiếp tục tính được giá trị 2và 2 càng gần với nghiệm của phương trình ( ) = 0. 2= 1− ( 1)

(2.12)

′( )

- Tổng quát, tại thời điểm thứ n, giá trị nghiệm tiếp theo được xác định với cơng thức: +1 = − ( ) (2.13) ′ ( )

với sai số tương ứng là ( ) .

′ ( )

- Cơng thức trên chính là cơng thức cập nhật nghiệm của thuật tốn Newton-

Raphson và thường được viết dưới dạng ngắn gọn là:

+1 = −

(2.14)

với = ( ) là sai số.

( )

Chi tiết thuật tốn được diễn giải như sau:

- Đầu vào của thuật tốn: + ε: sai số cho phép.

+ N: số lần lặp.

- Đầu ra của thuật tốn:

+ Vector nghiệm xn tìm được. - Mã giả (pseudocode) của thuật tốn:

+ Bước 1: Khởi tạo ngẫu nhiên x0 và n = 1

+ Bước 2: Nếu n ≤ N thì thực hiện bước 3 đến bước 7.

Bước 3: Tính giá trị F(xn−1) và J(x −1), trong đĩ J(x)ij = ( ∂fi(x) ),

∂xj

với 1 ≤ i, j ≤ n. 

Bước 4: Giải hệ phương trình tuyến tính J(x −1)y −1 = F(x −1) , với y là vector cần tìm.

Bước 5: Cập nhật nghiệm bằng cơng thức: xn = xn−1 − yn−1

Bước 6: Nếu ‖ −1‖ ≤ ε : Trả về giá trị nghiệm thu được x // Thành cơng.

Bước 7: Nếu ‖ −1‖ > ε thì n = n + 1 và thực hiện từ Bước 2.

+ Bước 8: Nếu n ≥ N : Trả về Bước 1 (khởi tạo nghiệm ngẫu nhiên x0).

2.4.2 Ngơn ngữ lập trình giải hệ phương trình theo Newton - Raphson

Với sự phát triển của các ngơn ngữ lập trình và tốc độ tính tốn nhanh của máy tính, nhiều ngơn ngữ lập trình như: MatLab, Python, R,… cĩ thể được sử dụng để xây dựng chương trình tính tốn và giải hệ theo phương pháp Newton – Raphson. Trong nghiên cứu này, ngơn ngữ lập trình Python được sử dụng để xây dựng chương trình tính tốn và giải hệ phương trình theo phương pháp Newton – Raphson.

Python là một ngơn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Python được thiết kế với ưu điểm là cấu trúc câu lệnh đơn giản và thư viện dữ liệu lớn. Trong 3 năm liền, từ 2019 đến 6 tháng đầu năm 2021, trong bảng xếp hạng ngơn ngữ lập trình tốt nhất cho khoa học dữ liệu và tính tốn thì ngơn ngữ lập trình Python đứng hàng thứ nhất, tiếp theo là ngơn ngữ lập trình R và thứ 3 là ngơn ngữ lập trình Matlab.

2.4.3 Cấu trúc mã nguồn bằng ngơn ngữ lập trình Python

Với một hệ phương trình phi tuyến tính gồm 6 ẩn số n1, n2, n3, n4, n5, n6. Khi áp dụng thuật tốn Newton-Raphson để cài đặt lời giải cho bài tốn với 2 giá trị đầu vào là à 2 cần thiết kế giải pháp cho bài tốn sao cho dễ dàng cài đặt, dễ dàng quản lý và kiểm sốt. Quá trình cài đặt đã chia chương trình thành nhiều modules, cụ thể như sau:

Hình 2.5 Cấu trúc mã nguồn (sourcecode structure)

- Module hằng số (constants.py) chứa tất cả các hằng số, ví dụ: a, b,w, … mà bài tốn cung cấp.

Các giá trị hằng số này sẽ dùng để cập nhật các tham số cần tính khi đã nhập hai giá trị ER và T2. - Module tham số (parameters.py) chứa các tham số, ví dụ: q, K1, K2, … được lập luận từ bài tốn. Các giá trị tham số này sẽ được xác định khi nhập ER, T2.

- Module xử lý chính (main.py) là nơi chương trình được thực thi, cho phép nhập vào giá trị ER, T2 và gửi giá trị ER, T2 này cho module paremeters.py (đã đề cập bên trên), quá trình cập nhật diễn ra.

Một phần của tài liệu 3. TOAN VAN LATS NCS LANH (Trang 63 - 67)

Tải bản đầy đủ (DOC)

(199 trang)
w