ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC ỨNG DỤNG BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP NEWTON ĐỂ GIẢI BÀI TOÁN TỐI ƯU PHI TUYẾN LỚP L05, NHÓM 16: GVHD:
Trang 1ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC ỨNG DỤNG
BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP NEWTON ĐỂ GIẢI BÀI TOÁN TỐI ƯU PHI TUYẾN
LỚP L05, NHÓM 16:
GVHD: TRẦN THỊ NGỌC HUYỀN
Tp HCM, 05/2024
Trang 2ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC ỨNG DỤNG
BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP NEWTON ĐỂ GIẢI BÀI TOÁN TỐI ƯU PHI TUYẾN
cáo,
Trang 3Tp HCM, 05/2024
LỜI CẢM ƠN
Nhóm tác giả do thành viên không đoàn kết nên bài làm còn sai xót, mong giảng viên
bộ môn chăm chước Đồng thời nhóm tác giả xin trân trọng cảm ơn sự hướng dẫn tận tình của giảng viên bộ môn Phương Pháp Tính Trần Thị Ngọc Huyền, thông qua các bài giảng, tài liệu tham khảo,…đã giúp tác giả hiểu rõ hơn về bản chất cốt lõi của đề tài, từ đó vận dụng kiến thức vào thực tiễn một cách đúng đắn và hoàn thiện.
Trang 4MỤC LỤC
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT VÀ THUẬT TOÁN 1
1.1 Phương pháp Newton 1
1.1.1 Khái niệm sai số 1
1.1.2 Cơ sở lý thuyết phương pháp Newton 1
1.2 Thuật toán của phương pháp Newton 2
1.2.1 Diễn giải thuật toán của phương pháp Newton để giải phương trình tối ưu phi tuyến……… 2
1.2.1.1 Thuật toán newton thuần túy để giải bài toán tối ưu: 2
1.2.1.2 Thuật toán phương pháp Newton với bước tự điều chỉnh hay phương pháp newton suy rộng 2 1.2.1.3 Thuật toán phương pháp Newton cổ điển giải hệ phương trình phi tuyến 2
1.2.2 Lập trình code cho phương pháp Newton để giải phường trình tối ưu phi tuyến 4
1.2.2.1 Bài toán và lập trình code 4
1.2.2.2 Giải thích code 5
CHƯƠNG 2 PHẦN ỨNG DỤNG THỰC TẾ CỦA PHƯƠNG PHÁP NEWTON 6
2.1 Phân tích động lực học phi tuyến theo lịch sử thời gian được tích hợp sẵn trong phần mềm SAP2000 6
2.1.1 Khái quát 6
2.1.2 Phương pháp 6
CHƯƠNG 3 KẾT LUẬN 7
TÀI LIỆU THAM KHẢO 8
Trang 5CHƯƠNG 1 CƠ SỞ LÝ THUYẾT VÀ THUẬT TOÁN
1.1 Phương pháp Newton
1.1.1 Khái niệm sai số
Trong thực tế, khi bài toán tìm xẩp xì một mô hình toán học đă biết, ví dụ tìm nghiệm của một phương trình đà biết, tính tích phân xác định của một hàm số nào đó trên miền cho trước hoặc cỏ nhừng bài toán thực tế mà ngay cả mô hình toán học cùng chưa biết; vỉ dụ, dự bảo về lượng mưa thay đổi do biến đổi khí hậu toàn cầu, nhu cầu thuê bao internet, Trong những trường hợp này, ta phải bắt đầu từ việc thu thập sổ liệu, xây dựng mô hình tỉnh toán rồi tìm phương pháp giải số thích hợp Nói chung khi thực hiện một bài toán bàng phương pháp số ta thường gặp sai số
-Sai số tuyệt đối: gọi a là giá trị gần đúng của A, ta viết được: A = a ± ∆ a
∆ agọi là sai số tuyệt đối giới hạn
-Sai số tương đối: δa = ∆ a|a|, dạng khác: A = a (1 ± δa)
Sai sổ tuyệt đối không nói lên đầy đủ "chất lượng" của một số xấp xỉ, chất lượng ẩy được phản ánh qua sai số tương đối
-Sai số quy tròn:
Quy tẳc quy tròn: Chừ sổ bò đi đầu tiên > 5: Thêm vào chừ sổ giữ lại cuối cùng 1 đơn vị Chữ số bỏ đi đầu tiên < 5: Để nguyên chữ số giữ lại cuối cùng
-Sai số của số đã quy tròn:
Giả sử quy tròn a thành a' với sai số quy tròn tuyệt đối θa'
|a '-a| < θa' thì ∆ a’ = ∆ a + θa' (tức tăng sai sổ tuyệt đối)
-Ảnh hưởng của sai số quy tròn:
Áp dụne nhị thức Newton, ta có: (√2 - l )10 = 3363-23782
Bây giờ thay √2 bởi các số quy tròn khác nhau:
1
Trang 6-Các quy tắc tính sai số:
Xét hàm số: u= f(x,y)
Ta ký hiệu ∆ x , ∆ y , ∆ u: chỉ các số gia của x , y ,u
∆ x , ∆ y , ∆ u: chỉ các vi phân của x , y , u
∆ X , ∆Y , ∆ U : sai số tuyệt đốicủa x , y , u
Ta luôn có: | ∆ x∨≤ ∆ X
| ∆ y ∨≤ ∆ Y
Ta phải tìm ∆ U để có :∨∆ u∨¿≤ ∆ U
Sai số của tổng: u=x+y
Ta có: ∆ u=∆ x +∆ y-> |∆ u∨≤∨∆ x∨+¿∆ y∨¿
-> ¿∆ u∨≤ ∆ X+ ∆ Y¿X+Y)
+Nếu u = x - y với x, y cùng dấu:
δU= ∆ U
¿u∨¿ ¿= ∆ x +∆ y
¿x− y∨¿ ¿ nếu |x-y| là rất bé thì sai số rất lớn +Nếu u=xy -> ∆ udu= ydx +xdy= y∆ x +x ∆ y
Do đó: δU= ∆ U
¿u∨¿ ¿= ∆ x
¿x∨¿ ¿+ ∆ y
¿y∨¿ ¿
2
Trang 7+Nếu u=x y, với y≠0, δU =δX +δY
Công thức tổng quát: u= f(x1, x2, x3,…xn)
Thì: ∆ U =∑
t=1
n
¿ δf δxi∨∆ Xi
1.1.2 Cơ sở lý thuyết phương pháp Newton
Xét phương trình f(x)=0 với f(x) là hàm liên tục trong miền xác định của nó, trong khoảng li nghiệm [a,b] chứa duy nhất nghiệm chính xác p Giả sử hàm f(x) có đạo hàm trong [a, b]
Ta xây dựng phương pháp Newton bằng hình học như sau:
Từ điểm có hoành độ xn-1 trên đồ thị của đường cong y= f(x), ta kẻ tiếp tuyến với đường cong Hoành độ giao điểm của tiếp tuyến với trục hoành sẽ là xn Ta dễ dàng viết phương trình tiếp tuyến:
y - f(xn-1 ) = f’(xn-1)(x-xn-1) cho y=0, x=xn ta thu được công thức xác định xn cũng là công thức lặp của phương pháp Newton như sau:
xn= xn-1 - f '(x n−1) f (x n−1) ∀ n=1, 2, 3,
3
Trang 8Do cách xây dựng bằng hình học như vậy nên phương pháp Newton còn được gọi là
phương pháp tiếp tuyến
Sai số của nghiệm xấp xỉ xn theo phưởng pháp Newwton được đánh giá theo công thức sai
số tổng quát
1.2 Thuật toán của phương pháp Newton
Để xây dựng được thuật toán cho phương pháp nội suy Newton, tác giả chọn sử dụng phần mềm MATLAB để thiết lập thuật toán tìm ra giá trị xấp xỉ
1.1.1 Diễn giải thuật toán của phương pháp Newton để giải phương trình tối ưu phi tuyến 1.1.1.1 Thuật toán newton thuần túy để giải bài toán tối ưu:
Khởi tạo ban đầu, xuất phát từ điểm tùy ý x0∈ R n đủ gần điểm dừng x¿
và ∇ f (x0
)≠ 0; chọn trước số ε> 0 đủ nhỏ Đặt k := 0
Bước lặp k (k= 0;1;2….)
Bước 1: Tính hướng newton p k của hàm f tại x bằng việc giải hệ phương trình tuyến tính
[∇2f(x k) ] p k
=−∇f(x k).
Bước 2: Xác định x k+1 ≔ x k
+p k và ∇ f(x k+1).
Bước 3: If ‖∇f(x k+ 1) ‖<εThen dừng thuật toán lấy điểm ( lấy điểm dừng x¿
≈ x¿ +1) Else k:= k+1 và quay ngược lại bước lặp k
Chú ý: Điểm xuất phát x0 trong thuật toán phải đảm bảo đủ gần điểm dừng x¿
của hàm f
1.1.1.2 Thuật toán phương pháp Newton với bước tự điều chỉnh hay phương pháp newton suy rộng
Thuật toán newton với bước tự điều chỉnh hay phương pháp newton suy rộng
Bước khởi đầu , xuất phát từ điểm tùy ý x0∈ R n đủ gần điểm dừng x¿
và ∇ f (x0
)≠ 0; chọn trước số ε> 0 đủ nhỏ Đặt k := 0;
Bước 1: Tính hướng newton d k bằng việc giải hệ phương trình tuyến tính
[∇2
f (x k) ] d k=−∇ f(x k).
Bước 2: Xác định x k+1 ≔ x k
+t k d k theo thủ tục quay lui.Tính ∇ f(x k+1).
Bước 3: If ‖∇f(x k+ 1) ‖<εThen dừng thuật toán lấy điểm ( lấy điểm dừng x¿
≈ x¿ +1) Else k:= k+1 và quay ngược lại bước lặp k
1.1.1.3 Thuật toán phương pháp Newton cổ điển giải hệ phương trình phi tuyến
4
Trang 9-Xét phương trình một biến số
f(x)=0 Giả sử nghiệm của phương bỉnh này là x¿ϵ R Thuật toán Newton tìm nghiệm x¿ sẽ xuất phát
từ mừt điểm x0 đủ gần x¿ và sinh ra một dãy nghiệm xấp xỉ x0;x1;x2;… hội tụ đến x¿
Xét x k là một điểm thuộc dãy này Với p ∈ R và |p| đủ bé, xấp xỉ Taylor bậc nhất của hàm f(x) tại x k là:
f(x k
+p)≈ f(x k)+p f '(x k).
Dễ thấy
y=f (x k
)+p f '(x k).
Là phương trình tiếp tuyến tại điểm (x k ;f(x k)) với đồ thị y=f(x) Gỉa sử f '(x k)≠ 0 Khi đó giải phương trình
f(x k)+p f '(x k)=0
Ta được:
p=−f (x
k
)
f '(x k)
Đặt:
x k+1=x k−f (x k
)
f '(x k)
-Trường hợp tổng quát (n>1)
Xét hệ phương trình n ẩn, n phương trình
F(x)=0 Giả sử nghiệm của phương bỉnh này là x¿
ϵ R Thuật toán Newton tìm nghiệm x¿
sẽ xuất phát
từ mừt điểm x0 đủ gần x¿ và sinh ra một dãy nghiệm xấp xỉ x0;x1;x2;… hội tụ đến x¿
Tại điểm x¿ϵ R n thuộc dãy này, khai triển Taylor của F(x) tại x k là
F(x k+p)=F(x k)+DF(x k)p+o(‖p‖) Trong đó vecto p ϵ R n có ‖p‖ đủ nhỏ, DF(x k) là ma trận Jacobian của F tại điểm x k ϵ R n và
5
Trang 10o (‖p‖) là vô cùng bé so với ‖p‖ khi p →0 Khi đó xấp xỉ Taylor bậc nhất của hàm F tại x k là
F(x k+p)≈ F(x k)+DF(x k)p Giả sử ma trận Jacobi DF(x k) không suy biến Giải hệ phương trình
F(x k)+DF(x k)p=0
Ta được vecto p=−[ DF(x k)]−1F(x k)
Và điểm lặp tiếp theo là x k+1=x k+p=x k−[DF(x k)]−1F(x k)
Đặt x k ≔ x k +1 và lặp lại quá bình tính toán đối với điểm x k mới
1.1.2 Lập trình code cho phương pháp Newton để giải phường trình tối ưu phi tuyến
1.1.2.1 Bài toán và lập trình code
Ví dụ hàm mục tiêu là f ( x )=(x1−1)2+(x2−2)2+x1× x2
% Định nghĩa hàm mục tiêu và hàm phụ
objective = @(x) (x(1) - 1)^2 + (x(2) - 2)^2 + x(1)*x(2); % Hàm mục tiêu
objective_negative = @(x) -objective(x); % Hàm phụ (đối của hàm mục tiêu)
% Khởi tạo điểm ban đầu
x0 = [0, 0];
% Tối ưu hóa hàm mục tiêu bằng fminunc
[x_opt, fval] = fminunc(objective, x0);
% In kết quả
disp('Nghiệm tối ưu:');
disp(x_opt);
disp('Giá trị tối ưu của hàm mục tiêu:');
disp(fval);
6
Trang 11% Tìm giá trị nhỏ nhất và lớn nhất
% Tìm giá trị nhỏ nhất
[x_min, fval_min] = fminunc(objective, x0, options);
% Tìm giá trị lớn nhất của hàm phụ
[x_max, fval_max] = fminunc(objective_negative, x0, options);
% In kết quả giá trị nhỏ nhất và lớn nhất
% Hiển thị kết quả
disp('Giá trị nhỏ nhất:');
disp(['x1 = ', num2str(x_min(1))]);
disp(['x2 = ', num2str(x_min(2))]);
disp(['Giá trị của hàm tại điểm này = ', num2str(fval_min)]); disp('Giá trị lớn nhất:');
disp(['x1 = ', num2str(x_max(1))]);
disp(['x2 = ', num2str(x_max(2))]);
disp(['Giá trị của hàm tại điểm này = ', num2str(-fval_max)]);
1.1.2.2 Giải thích code
objective là hàm mục tiêu cần tối ưu
objective_negative là hàm đối của hàm mục tiêu
fminunc là hàm được sử dụng để tối ưu hóa hàm mục tiêu x0 là giá trị ban đầu của biến
x là giá trị tối ưu của biến mà fminunc tìm ra
fval là giá trị tối ưu của hàm mục tiêu tại điểm tối ưu
7
Trang 12CHƯƠNG 2 PHẦN ỨNG DỤNG THỰC TẾ CỦA PHƯƠNG PHÁP NEWTON
2.1 Phân tích động lực học phi tuyến theo lịch sử thời gian được tích hợp sẵn trong phần mềm SAP2000
2.1.1 Khái quát
Vấn đề phân tích động lực học phi tuyến (gọi tắt là động phi tuyến) kết cấu công trình chịu tải trọng động đất theo phương pháp lịch sử thời gian (nonlinear time-history analyses) được quan tâm gần đây vì những ưu điểm của nó như: Khắc phục được những nhược điểm của phương pháp phân tích đàn hồi tuyến tính khi thiết kế những công trình có kết cấu đặc biệt, phức tạp, phân tích chính xác hơn ứng xử của kết cấu có thể giúp giảm bớt kích thước tiết diện, làm giảm chi phí đầu tư mà vẫn đảm bảo an toàn khi sử dụng
Phương pháp phân tích động phi tuyến có thể cho biết chính xác vị trí và thời điểm hình thành khớp dẻo trong kết cấu
2.1.2 Phương pháp
Một trong những cách để áp dụng các phương pháp phân tích động phi tuyến theo lịch sử thời gian là sử dụng phần mềm phân tích kết cấu SAP2000 cho phép phân tích động phi tuyến theo lịch sử thời gian với một số phương pháp được tích hợp sẵn.
8
Trang 13CHƯƠNG 3 KẾT LUẬN
Đề tài đã giúp nhóm nghiên cứu hiểu thêm về MATLAB ở những bước đầu tiên MATLAB giúp tiết kiệm thời gian tính toán và xử lý bài toán hơn các phương pháp phổ thông Bên cạnh đó các câu lệnh, hàm và giao diện của chương trình dễ sử dụng, khá tiện ích và dễ hiểu Mặc dù thiết kế đoạn code có rườm rà và tốn thởi gian nhưng đó cũng là những kinh nghiệm quý báu và bổ ích cho tác giả Với đề tài cô giao, nhóm 16 đã cố gắng hoản thành
và cho ra kết quả tốt nhất có thể Qua bài tập lớn, tác giả cũng đã đạt được mục đích chính của bài tập đó là hiểu hơn về phần mềm quan trọng MATLAB, nâng cao hiểu biết và niềm yêu thích với môn học, trau dồi và rèn luyện thêm để cải thiện vốn kiến thức còn nhiều hạn chế
9
Trang 14TÀI LIỆU THAM KHẢO
[1] Giáo trình Phương pháp tính (Tài liệu liệu hành nội bộ), Trường Đại học Bách Khoa – Đại học Quốc gia Thành Phố Hồ Chí Minh, 2019
[2] Nguyễn Phùng Quang (2006), “Matlab và Simulink Dành cho Kỹ sư điều khiển
tự động”, NXB Khoa học & Kỹ thuật.
[3] Phạm Thị Ngọc Yến, Lê Hữu Tình, “Cơ sở matlab và ứng dụng”, NXB Khoa học
&Kỹ thuật
[4] Trần Quang Khánh (2002), “giáo trình cơ sở Matlab ứng dụng”, tập I và II, NXB
Khoa học & Kỹ thuật
8