Đăng ký Đăng nhập
Trang chủ Một số phương pháp lặp giải phương trình vi phân phi tuyến cấp bốn với hệ điều k...

Tài liệu Một số phương pháp lặp giải phương trình vi phân phi tuyến cấp bốn với hệ điều kiện biên phức tạp

.PDF
71
125
71

Mô tả:

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC ------------------------------- VŨ THỊ THẢO MỘT SỐ PHƯƠNG PHÁP LẶP GIẢI PHƯƠNG TRÌNH VI PHÂN PHI TUYẾN CẤP BỐN VỚI HỆ ĐIỀU KIỆN BIÊN PHỨC TẠP LUẬN VĂN THẠC SĨ TOÁN HỌC THÁI NGUYÊN - 2019 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC ------------------------------- VŨ THỊ THẢO MỘT SỐ PHƯƠNG PHÁP LẶP GIẢI PHƯƠNG TRÌNH VI PHÂN PHI TUYẾN CẤP BỐN VỚI HỆ ĐIỀU KIỆN BIÊN PHỨC TẠP Chuyên ngành: Toán ứng dụng Mã số : 8 46 01 12 LUẬN VĂN THẠC SĨ TOÁN HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC TS. Vũ Vinh Quang THÁI NGUYÊN - 2019 Lời cam đoan Tôi xin cam đoan nội dung trong luận văn Thạc sĩ chuyên ngành Toán ứng dụng với đề tài MỘT SỐ PHƯƠNG PHÁP LẶP GIẢI PHƯƠNG TRÌNH VI PHÂN PHI TUYẾN CẤP BỐN VỚI HỆ ĐIỀU KIỆN BIÊN PHỨC TẠP được hoàn thành bởi nhận thức của tôi, không trùng lặp với luận văn, luận án và các công trình đã công bố. Thái Nguyên, tháng 5 năm 2019 Người viết Luận văn VŨ THỊ THẢO Lời cảm ơn Tôi xin bày tỏ lòng biết ơn tới TS.Vũ Vinh Quang, người đã định hướng chọn đề tài và tận tình hướng dẫn, cho tôi những nhận xét quý báu để tôi có thể hoàn thành luận văn. Tôi cũng xin bày tỏ lòng biết ơn chân thành tới phòng Sau Đại học, các thầy cô giáo dạy cao học chuyên ngành Toán ứng dụng trường Đại học khoa học - Đại học Thái Nguyên đã giúp đỡ và tạo điều kiện cho tôi trong suốt quá trình học tập và nghiên cứu khoa học. Nhân dịp này tôi cũng xin gửi lời cảm ơn chân thành tới gia đình, bạn bè đã luôn động viên, cổ vũ, tạo mọi điều kiện thuận lợi cho tôi trong suốt quá trình học tập. Thái Nguyên, tháng 5 năm 2019 Người viết luận văn VŨ THỊ THẢO ii Mục lục Lời cam đoan i Lời cảm ơn ii Mục lục ii Mở đầu 1 Một số ký hiệu viết tắt 2 1 Một số kiến thức cơ bản 3 1.1 1.2 Lý thuyết về các phương pháp lặp giải hệ đại số tuyến tính . . 3 1.1.1 Không gian Metric . . . . . . . . . . . . . . . . . . . . 3 1.1.2 Ánh xạ co . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.3 Nguyên lí ánh xạ co . . . . . . . . . . . . . . . . . . . 4 1.1.4 Hệ đại số tuyến tính với ma trận chéo trội . . . . . . . . 4 1.1.5 Phương pháp lặp đơn . . . . . . . . . . . . . . . . . . . 5 1.1.6 Phương pháp lặp Jacobi . . . . . . . . . . . . . . . . . . 7 1.1.7 Phương pháp lặp Gauss - Seidel . . . . . . . . . . . . . 10 Phương pháp sai phân đối với phương trình vi phân cấp 2 . . . 13 iii 1.2.1 Công thức Taylor . . . . . . . . . . . . . . . . . . . . . 1.2.2 Một số phương pháp xấp xỉ đạo hàm với độ chính xác cấp bốn 1.2.3 1.3 13 . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Hệ phương trình sai phân . . . . . . . . . . . . . . . . . 19 Phương pháp Runge - Kutta đối với phương trình vi phân cấp cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.3.1 Mô hình bài toán tổng quát của phương trình cấp cao . 23 1.3.2 Xây dựng thuật toán với độ chính xác cấp 4 . . . . . . . 24 1.3.3 Giới thiệu về thư viện QH− 2015 . . . . . . . . . . . . . 26 2 Sự tồn tại nghiệm dương trong lớp các bài toán biên với hệ 3 điều kiện biên phi tuyến tính 29 2.1 Mô hình bài toán biên phi tuyến thứ nhất . . . . . . . . . . . . 30 2.1.1 Sự tồn tại nghiệm . . . . . . . . . . . . . . . . . . . . . 31 2.1.2 Nghiệm dương của bài toán . . . . . . . . . . . . . . . 32 2.2 Mô hình bài toán phi tuyến thứ hai . . . . . . . . . . . . . . . 35 2.3 Mô hình bài toán biên với hệ số phụ thuộc tích phân, điều kiện phi tuyến . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.3.1 Mô hình bài toán . . . . . . . . . . . . . . . . . . . . . 37 2.3.2 Sự tồn tại nghiệm . . . . . . . . . . . . . . . . . . . . . 38 2.3.3 Phương pháp tìm nghiệm số . . . . . . . . . . . . . . . 39 Phương pháp lặp tìm nghiệm số của các bài toán biên phi tuyến cấp bốn 42 3.1 42 Phương pháp phân rã giải các bài toán tuyến tính cấp 4 . . . . iv 3.2 Dạng bài toán điều kiện đầu phi tuyến . . . . . . . . . . . . . . 44 3.3 Dạng bài toán điều kiện biên phi tuyến . . . . . . . . . . . . . 48 3.4 Dạng bài toán biên chứa hệ số tích phân . . . . . . . . . . . . . 51 Tài liệu tham khảo chính 57 v Mở đầu Phương trình vi phân dạng phi tuyến tính là một lớp phương trình quan trọng trong lý thuyết phương trình vi phân, lớp phương trình này có ứng dụng quan trọng đối với các bài toán thực tế đặc biệt là lý thuyết điều khiển ổn định. Việc tìm nghiệm giải tích của các phương trình này chỉ thực hiện được đối với các phương trình dạng đặc biệt còn chủ yếu là phải xác định nghiệm xấp xỉ qua các phương pháp gần đúng dựa trên cơ sở của các thuật toán số như việc giải các hệ phương trình đại số tuyến tính hoặc các sơ đồ lặp thông qua phương pháp sai phân. Mục tiêu nghiên cứu chính của luận văn là tìm hiểu một số phương pháp giải số phương trình vi phân cấp 4 với hệ điều kiện biên phức tạp bao sơ đồ lặp, nghiên cứu tính chất hội tụ của các sơ đồ lặp và kiểm tra tính đúng đắn của các sơ đồ lặp thông qua các chương trình trên máy tính điện tử. Nội dung của đề tài: Chương 1: Một số kiến thức cơ bản. Chương 2: Sự tồn tại nghiệm dương trong lớp các bài toán biên với hệ điều kện biên phi tuyến tính. Chương 3: Phương pháp lặp tìm nghiệm số của các bài toán biên phi tuyến cấp bốn. 1 Một số ký hiệu viết tắt R tập các số thực R+ tập các số thực không âm A ma trận A−1 ma trận khả nghịch của A ||C|| chuẩn của ma trận C d(x, y) khoảng cách từ phần tử x đến phần tử y limx→x0 giới hạn x đến x0 J ánh xạ đối ngẫu chuẩn tắc un đạo hàm cấp n hi tích vô hướng U, K1 , K2 , F, Uα các vecto n chiều 2 Chương 1 Một số kiến thức cơ bản 1.1 Lý thuyết về các phương pháp lặp giải hệ đại số tuyến tính 1.1.1 Không gian Metric Định nghĩa 1.1.1. Tập X của các phần tử x, y, z, ... được gọi là không gian Metric nếu như với mọi phần tử x, y bất kì đều tương ứng với một số không âm d(x, y) thoả mãn các điều kiện sau: + d(x, y) > 0, d(x, y) = 0 khi và chỉ khi x = y + d(x, y) = d(y, x) + d(x, y) ≤ d(x, z) + d(z, y). Số d(x, y) được gọi là khoảng cách giữa hai phần tử x và y hay thường gọi là Metric. Định nghĩa 1.1.2. Dãy {xn } được gọi là 1 dãy cơ bản nếu ∀ε > 0, đều tồn tại số N > 0 sao cho với mọi m, n > N ta đều có d(xn , xm ) ≤ ε. Nếu bất kì một dãy cơ bản nào trong không gian X đều hội tụ đến phần tử thuộc X thì 3 X được gọi là không gian đủ. 1.1.2 Ánh xạ co Định nghĩa 1.1.3. Một ánh xạ A từ không gian Metric (X,d) vào chính nó được gọi là ánh xạ co nếu tồn tại hằng số q ∈ (0, 1) sao cho với mọi x, y ∈ X, d(A(x), A(y)) < qd(x, y). Khi đó hằng số q được gọi là hệ số co của ánh xạ A. 1.1.3 Nguyên lí ánh xạ co Cho A là ánh xạ co trong không gian Metric đủ (X,d). Khi đó: • Tồn tại duy nhất x∗ ∈ X sao cho A(x∗ ) = x∗ . Phần tử x∗ ∈ X được gọi là điểm bất động của ánh xạ A. • Mọi dãy lặp xn+1 = A(xn ), (n≥0) xuất phát từ x0 bất kì đều hội tụ. Ngoài ra ta có ước lượng sau d(xn , x∗ ) ≤ q n (1 − q)−1 d(x0 , x1 ) (n ≥ 1) d(xn , x∗ ) ≤ q n (1 − q)−1 d(xn−1 , xn ) (n ≥ 1) 1.1.4 Hệ đại số tuyến tính với ma trận chéo trội Xét một hệ phương trình gồm n phương trình tuyến tính với n ẩn số x1 , x2 , ...., xn như sau: 4    a11 x1 + a12 x2 + ... + a1n xn = b1       a21 x1 + a22 x2 + ... + a2n xn = b2   ..........................................       an1 x1 + an2 x2 + ... + ann xn = bn Hệ phương trình này có thể   a11 a12   a21 a22  A=  ... ...   an1 an2 (1.1) viết dưới dạng ma trận Ax = b, trong đó      ... a1n   x1   b1        x2   b2  ... a2n       ,x =  ,b =        ... ...   .   .       ... ann xn bn Nếu det A 6= 0 thì nghiệm của hệ (1.1) có thể tính theo công thức x = A−1 b. Áp dụng công thức tính ma trận đảo ta có thể biến đổi và dẫn đến lời giải được diễn tả bằng định lý Cramer như sau: Định lý Cramer. Gọi Aj là ma trận nhận được từ ma trận A bằng cách thay cột thứ j bằng cột b. Khi đó hệ (1.1) có nghiệm duy nhất và xj được tính bởi công thức xj = 1.1.5 det Aj det A Phương pháp lặp đơn Trở lại bài toán giải hệ phương trình tuyến tính Ax = b (1.2) x = Cx + d (1.3) Ta đưa (1.2) về dạng 5 Trong đó ma trận C và vecto d được xây dựng từ A và b. Để thực hiện phép lặp ta chọn một vecto ban đầu x(0) , sau đó tính các x(i) , i = 1, 2, ... theo công thức lặp sau:    x(1) = Cx(0) + d       x(2) = Cx(1) + d    (1.4) ...      x(k) = Cx(k−1) + d       .... Véc tơ x(k) được gọi là vecto lặp thứ k . Ta có định lý sau: Định lý 1.1.4. ( Sự hội tụ của phương pháp) a. Nếu phép lặp (1.4) hội tụ, tức là tồn tại x∗ sao cho x∗ = lim x(k) . k→+∞ ∗ Thì x là nghiệm của (1.3) ( và như vậy cũng là nghiệm của (1.2)) b. Nếu kCk < 1 với một chuẩn nào đó, thì (1.4) hội tụ và sai số giữa nghiệm gần đúng x(k) (nghiệm gần đúng tại bước lặp thứ k) và nghiệm đúng x∗ có thể đánh giá bằng các công thức sau: (k) ∗ x − x ≤ kCk (k) (k−1) x − x 1 − kCk hoặc (k) ∗ x − x ≤ kCkk (1) (0) x − x 1 − kCk Nói chung theo phương pháp lặp đơn, điều kiện để phép lặp được hội tụ thì kCk < 1. Tuy nhiên trong thực tế thì ta chỉ có ma trận A. Một câu hỏi đặt ra là ma trận A phải thoả mãn điều kiện gì để có thể đưa (1.2) về dạng (1.3) và áp dụng phương pháp lặp đơn? 6 Để phương pháp lặp đơn hội tụ thì thường ma trân A phải thỏa mãn tính chéo trội của ma trận trận vuông. Định nghĩa 1.1.5. ( Tính chéo trội của một ma trận vuông): Ma trận A với các thành phần aij được gọi là có tính chéo trội, nếu giá trị tuyệt đối của các phần tử nằm trên đường chéo chính lớn hơn tổng các giá trị tuyệt đối của các phàn còn lại nằm cùng hàng, tức là n X |aij |, i = 1, 2, ...n |aii | > j−1,j6=i Sau đây sẽ giới thiệu 2 phương pháp lặp đơn Jacobi và Gauss - Seidel 1.1.6 Phương pháp lặp Jacobi Với giả thiết ma trận A có tính chéo trội, khi đó các hệ số aii 6= 0, i = 1, 2, ..., n do đó ta có thể chia phương trình thứ i của hệ (1.1) cho aii và nhận được hệ tương đương x1 + a12 a11 x2 + a13 a11 x3 + ... + a1n a11 xn = b1 a11 a21 a22 x1 + x2 + a23 a22 x3 + ... + a2n a22 xn = b2 a22 ... ai1 aii x1 + ai2 aii x2 + ... + ai,i−1 aii xi−1 + xi + ai,i+1 aii xi+1 + ... + ain aii xn ... an1 ann x1 + an2 ann x2 + ... + an,n−1 ann xn−1 + xn = bn ann Từ đây ta có + a13 a11 x3 + ... + a1n a11 xn ) + b1 a11 x2 = −( aa21 x1 + 0.x2 + 22 a23 a22 x3 + ... + a2n a22 xn ) + b2 a22 x1 = −(0.x1 + a12 a11 x2 ... 7 = bi aii xi = −( aai1ii x1 + ai2 aii x2 + ... + ai,i−1 aii xi−1 + 0.xi + ai,i+1 aii xi+1 + ... + ain aii xn ) + bi aii ... n1 x1 + xn = −( aann an2 ann x2 + ... + Khi đó ma trận C, vecto d là:   0  a  21  C = −  a22  .   an1 ann an,n−1 ann xn−1 a12 a11 0 . an2 ann ... + 0.xn ) + a1n a11  bn ann  b1 a11        a2n  b2   ... a22   a   , d =  22   .  ... .        bn ... 0 ann (Đến đây ta đưa hệ (1.2) về dạng (1.3) và dễ thấy rằng ma trận C thoả mãn điều kiện lặp đơn, tức là kCk∞ < 1 ). Vậy đến đây ta tiếp tục áp dụng phương pháp lặp (1.4) để tính nghiệm ở các bước lặp như sau: Với vecto x(0) cho trước bất kỳ, ví dụ x0 = 0 (vecto 0) ta có thể tính các vecto x(k) tại bước lặp k bằng công thức Cxk = Cxk−1 + d, (k) (k) (k) k = 1, 2, .... Cụ thể hơn, nếu x(k) = (x1 , x2 , ...., xn ) thì ta có:  (k) x1     0   (k)   a  21 x   a  2    = −  22  .  .        (k) an1 xn ann (k) Với từng thành phần xi (k) xi a12 a11 0 . an2 ann a1n a11 ...  (k−1) x1    (k−1)  x ... aa2n 2 22     ... .   .  (k−1) xn ... 0   b1 a11       b    2    a22  +    .        bn ann ta có n n X X aij (k−1) bi 1 (k−1) aij xj ) =− xj + = (bi − aii aii aii j−1,j6=i j−1.j6=i 8 (1.5) i = 1, 2, ..., n, k = 1, 2, ... Điều kiện hội tụ, đánh giá sai số của phương pháp lặp Jacobi cũng giống với phương pháp lặp đơn. Ví dụ. Dùng phương pháp lặp Jacobi tìm nghiệm gần đúng của hệ phương trình:    4x1 + 0.24x2 − 0.08x3 = 8    0.09x1 + 3x2 − 0.15x3 = 9      0.04x1 − 0.08x2 + 4x3 = 20 Giải: (1). Có thể thấy rằng ma trận các hệ số của hệ phương trình trên đây thoả mãn tính chéo trội, do đó ta có thể biến đổi hệ này để áp dụng phương pháp lặp Jacobi. Chia hai vế phương trình đầu tiên cho 4, hai vế phương trình thứ hai cho 3 và hai vế của phương trình thứ ba cho 4 rồi biến đổi thích hợp ta nhận được x1 = 2 − 0.06x2 + 0.02x3 x2 = 3 − 0.03x1 + 0.05x3 x3 = 5 − 0.01x1 + 0.02x2 Hay     −0.06 0.02   x1  x1   0      x  x  =  −0.03 0 0.05  2   2     −0.01 0.02 0 x3 x3     2     +  3  = Cx + d       5 kCk∞ = max(0 + 0.06 + 0.02, 0.03 + 0 + 0.05, 0.01 + 0.02 + 0) = max(0.08, 0.08, 0.03) = 0.08 < 1 9 (2). Chọn x(0) = (2, 3, 5)T , rồi tính x(1) , x(2) , ... theo công thức (1.5) với lưu ý aii = 1 ta được bảng kết quả sau: (k) (k) (k) k x1 x2 x3 0 2 3 5 1 1.92 3.19 5.04 2 1.9094 3.1944 5.0446 3 1.909228 3.194948 5.044794 (3). Xem x(3) là nghiệm gần đúng cần tìm, ta có thể đánh giá sai x(3) với nghiệm đúng x∗ theo (1.5) như sau: (3) ∗ x − x ≤ (3) (2) x − x kCk (3) (2) x − x 1 − kCk (3) (2) = max xi − xi i ∞ = max (0.000172, 0.000548, 0.000194) = 0.000548 Như vậy (3) ∗ x − x ∞ 1.1.7 ≤ 0.08 0.000548 = 0.0000476 ≈ 0.00005 1 − 0.08 Phương pháp lặp Gauss - Seidel Với giả thiết ma trận A có tính chéo trội. Từ công thức (1.5) ta thấy rằng phần tử thứ i của vecto nghiệm tại bước k được tính qua các phần tử ở các vị trí khác i trong bước k − 1. Phương pháp Gauss - Seidel cải tiến phương pháp Jacobi bằng cách dùng ngay những kết quả vừa tính được cho các thành phần của nghiệm tại bước k để tính các thành phần khác của bước k , chỉ có những 10 thành phần nào chưa được tính thì mới lấy ở bước k − 1. Cụ thể hơn ta có tại các bước: (1) (0) (0) (0) (1) Giá trị x1 được tính qua các giá trị x2 , x3 , ..., xn (1) (1) (0) (0) (1) (1) (1) (0) (h−1) , x3 Giá trị x2 được tính qua các giá trị x1 , x3 , ..., xn (0) Giá trị x3 được tính qua các giá trị x1 , x2 , x4 ..., xn .... (h) (h) Giá trị x1 được tính qua các giá trị x2 (h−1) (h) (h) (h−1) , ..., xn (h) (h) (h) (h−1) Giá trị x2 được tính qua các giá trị x1 , x3 (h−1) , ..., xn (h−1) Giá trị x3 được tính qua các giá trị x1 , x2 , x4 (h−1) ..., xn .... Với vecto x(0) cho trước bất kỳ, ví dụ x(0) = 0 (vecto 0) ta có thể tính các vecto x(k) tại bước lặp k bằng công thức (k) xi i−1 n X X 1 (k) (k−1) = (bi − ( aij xj + aij xj )) aii j−1 j−i+1 (1.6) i = 1, 2, .., n, k = 1, 2, .... Sự hội tụ của phương pháp Gauss - Seidel. Điều kiện hội tụ của phương pháp lặp Gauss - Seidel cũng giống với phương pháp lặp đơn. Như ta sẽ thấy trong ví dụ trong phần sau, phương pháp Gauss - Seidel nói chung hội tụ nhanh hơn phương pháp lặp đơn. Ta có thể sử dụng các công thức sau để đánh giá sai số của phương pháp lặp Gauss - Seidel: Gọi x∗ là nghiệm đúng của hệ phương trình và đặt pi = i−1 X j=1 |cij |, qi = n X |cij |, µ = max j=1 11 i qi 1 − pi Khi đó ta có (k) ∗ x − x ≤ µ (k) (k−1) x − x 1−µ (1.7) hoặc (k) ∗ x − x ≤ µk (1) (0) x − x 1−µ Ví dụ: Dùng phương pháp lặp Gauss-Saidel tìm nghiệm gần đúng của hệ phương trình:    4x1 + 0.24x2 − 0.08x3 = 8    0.09x1 + 3x2 − 0.15x3 = 9      0.04x1 − 0.08x2 + 4x3 = 20 Giải. (1) Có thể thấy rằng ma trận các hệ số của hệ phương trình trên đây thoả mãn tính chéo trội, do đó ta có thể biến đổi hệ này để áp dụng phương pháp lặp Jacobi. Chia hai vế phương trình đầu tiên cho 4, hai vế phương trình thứ hai cho 3 và hai vế của phương trình thứ ba cho 4 rồi biến đổi thích hợp ta nhận được:    x = 2 − 0.06x2 + 0.02x3    1 x2 = 3 − 0.03x1 + 0.05x3      x3 = 5 − 0.01x1 + 0.02x2 Hay       −0.06 0.02   x1   2  x1   0           x  =  −0.03 0 0.05   x2   2  + 3       −0.01 0.02 0 x3 5 x3     = Cx + d   kCk∞ = max(0 + 0.06 + 0.02, 0.03 + 0 + 0.05, 0.01 + 0.02 + 0) = max(0.08, 0.08, 0.03) = 0.08 < 1 12 (2) Chọn x(0) = (2, 3, 5)T , rồi tính x(1) , x(2) , ... theo công thức (1.6) với lưu ý aii = 1 ta được bảng kết quả sau: (k) (k) (k) k x1 x2 x3 0 2 3 5 1 1.92 3.1924 5.044648 2 1.9093489 3.194952 5.0448056 3 3.1949643 5.0448073 1.909199 Xem x(3) là nghiệm gần đúng cần tìm, ta có thể đánh giá sai số phạm phải của x(3) theo (1.7): (k) ∗ x − x ≤ Trong đó: (3) (2) x − x ∞ µ (k) (k−1) x − x 1−µ (3) (2) = max xi − xi i = max(0.0001499, 0.000123, 0.0000017) = 0.0001499, µ = max i Như vậy (3) ∗ x − x ∞ 1.2 qi = max(0.08, 0.0515463, 0) = 0.08. 1 − pi µ 0.08 (k) (k−1) 0.00001499 ≈ 0.000013 ≤ x − x ≤ 1−µ 1 − 0.08 Phương pháp sai phân đối với phương trình vi phân cấp 2 1.2.1 Công thức Taylor Giả sử u(x) là một hàm số xác định và có đạo hàm đến cấp m + 1 trong một khoảng (α, β) chứa x và x + ∆x, ∆x có thể âm hay dương. Khi đó ta có 13
- Xem thêm -

Tài liệu liên quan