Giáo trình tính toán khoa học - Chương 1 potx

21 658 1
Giáo trình tính toán khoa học - Chương 1 potx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

3 MỤC LỤC Trang LỜI NÓI ĐẦU 6 Chương 1 MỞ ĐẦU VỀ TÍNH TOÁN KHOA HỌC 8 1.1 Mở đầu 1.2 Phân tích sai số Bài tập 8 13 22 Chương 2 CƠ SỞ MATLAB 24 2.1 Làm quen với Matlab 2.2 Những lệnh điều khiển chương trình 2.3 Nhóm lệnh Input/Output 2.4 Hàm trong MATLAB 2.5 Một số lệnh bổ trợ Bài tập 24 38 48 50 55 60 Chương 3 GIẢI TÍCH MA TRẬN VÀ ĐẠI SỐ TUYẾN TÍNH 62 3.1 Giải tích ma trận 3.2 Một số ma trận đặc biệt trong Matlab 3.3 Các phương pháp giải hệ phương trình tuyến tính 3.4 Ma trận suy biến và ma trận gần suy biến Bài tập 57 72 76 87 90 Chương 4 TÍNH TRỊ RIÊNG VÀ VECTOR RIÊNG CỦA MA TRẬN 93 4.1 Mở đầu 93 4 4.2 Các phương pháp trực tiếp 4.3 Phương pháp lặp 4.4 Các hàm tính trị riêng của ma trận trong Matlab Bài tập 94 100 102 109 Chương 5 NỘI SUY VÀ XẤP XỈ HÀM 111 5.1 Nội suy bằng đa thức 5.2 Nội suy bằng Spline bậc 3 5.3 Xấp xỉ hàm Bài tập 111 123 127 133 Chương 6 TÍNH VI PHÂN VÀ TÍCH PHÂN SỐ 135 6.1 Tích phân số dựa trên đa hức nội suy 6.2 Công thức ngoại suy Richardson 6.3 Tính tích phân bội 6.4 Tích phân ngẫu nhiên 6.5 Vi phân số dựa trên nội suy 6.6 Một số hàm tính vi phân của Matlab Bài tập 135 143 149 151 157 159 163 Chương 7 GIẢI PHƯƠNG TRÌNH VÀ TỐI ƯU HÓA 165 7.1 Giải phương trình 7.2 Giải hệ phương trình phi tuyến 7.3 Bài toán Tối ưu hóa 7.4 Qui hoạch tuyến tính 7.5 Qui hoạch toàn phương 7.6 Bài toán qui hoạch không ràng buộc Bài tập 165 178 180 182 197 199 202 Chương 8 PHƯƠNG TRÌNH VI PHÂN THƯỜNG 205 8.1 Phương trình vi phân thường và các phương pháp giải cơ bản 8.2 Ứng dụng của phương trình vi phân 205 212 5 8.3 Giải phương trình với điều kiện biên. Bài tập 223 226 Chương 9 ĐỒ HỌA TRONG MATLAB 228 9.1 Đồ hoạ 2 chiều. 9.2 Đồ hoạ 3 chiều. 9.3 Hoạt hình 228 233 243 Chương 10 BIỂU DIỄN PHỔ 245 10.1 Biểu diễn phổ dữ liệu. 10.2 Tương quan giữa 2 chuỗi thời gian 245 246 TÀI LIỆU THAM KHẢO 250 6 LỜI NÓI ĐẦU Rất nhiều năm kể từ những năm của thập kỷ 70 thế kỷ XX về trước, một kỹ sư khi tính toán thường sử dụng các bảng số, thước tính hoặc máy tính quay tay. Từ thập kỷ 70 cho đến những năm đầu thập kỷ 80 họ chuyển dần sang sử dụng các máy tính bỏ túi (calculator) và người ta xem đó như một cuộc cách mạng về công nghệ tính toán. Tuy nhiên với những công cụ thô sơ như vậy thì con người phải làm việc rất vất vả mà chỉ có thể giải được các bài toán cỡ nhỏ đến trung bình với độ chính xác không cao. Trong khoảng thời gian đó máy tính điện tử (MTĐT) đã có nhưng vẫn chỉ là một thứ công cụ “xa xỉ”. Từ đầu thập kỷ 80 của thế kỷ XX đến nay, Công nghệ thông tin phát triển nhanh chóng và đi dần dần từ khoa học kỹ thuật vào đời sống hàng ngày. Tư duy và phương pháp làm việc của người kỹ sư cũng thay đổi một cách cơ bản. Sự bùng nổ thông tin khiến họ không thể giải các bài toán khoa học kỹ thuật thực tế hiện đại mà không sử dụng MTĐT. Đây là khoảng thời gian mà các công cụ Tính toán khoa học phát triển mạnh mẽ. Các phần mềm tin học đã trợ giúp cho các nhà nghiên cứu kinh tế, nghiên cứu xã hội, kỹ sư, kiến trúc sư , bác sỹ… giải quyết nhanh chóng và hiệu quả các công việc của họ. Cũng vì lý do như trên mà nội dung của nhiều môn học truyền thống của các trường đại học cũng phải thay đổi cả về phương pháp giảng dạy, phương pháp học tập, phương pháp nghiên cứu và thực hành. Cuốn sách này sẽ trình bày về Các phương pháp tính toán số. Đây chỉ là một khía cạnh nghiên cứu của Tính toán khoa học. Mục đích của cuốn sách là dùng làm tài liệu giảng dạy, học tập, nghiên cứu và tham khảo cho sinh viên đại học và học viên cao học ngành CNTT và các ngànhkỹ thuật. Nội dung từng chương mục của cuốn sách cố gắng được giới thiệu ngắn gọn theo cấu trúc: giới thiệu bài toán, cơ sở lý thuyết, ứng dụng thực tiễn, các phương pháp toán học và sử dụng các công cụ đã có trong Matlab để giải bài toán đặt ra. Các bài tập trong các chương cũng được chia làm 2 loại: một loại yêu cầu học viên sử dụng các hàm đã cài đặt sẵn của Matlab để giải các bài toán cụ thể, một loại khác lại yêu cầu học viên cài đặt chương trình để giải các bài toán tổng quát theo các phương pháp toán học đã được giới thiệu. 7 Do hạn chế về không gian và thời gian nên chúng tôi đi sâu về việc trình bày các công thức và phương pháp cài đặt chương trình tính toán và ít trình bày các chứng minh của định lý và công thức. Nếu muốn tìm hiểu kỹ hơn về điều này, bạn đọc cần đọc thêm những giáo trình về giải tích số. Đây là lần xuất bản đầu tiên nên trong cuốn sách không thể tránh được một số thiếu sót về nội dung và chế bản. Rất mong nhận được những góp ý chân tình và thẳng thắn của bạn đọc. Để hoàn thành giáo trình này tôi xin chân thành cảm ơn sự giúp đỡ của PGS-TS Nguyễn Đức Nghĩa và những gợi ý bổ ích của PGS-TS Tô Văn Ban; Đồng thời tôi cũng xin cảm ơn sự giúp đỡ, khích lệ, đọc bản thảo và đóng góp ý kiến của các Giáo sư, Tiến sỹ và giảng viên Bộ môn Toán, Khoa CNTT Học viện Kỹ thuật Quân sự. Tác giả 8 Chương 1 MỞ ĐẦU VỀ TÍNH TOÁN KHOA HỌC 1.1 MỞ ĐẦU 1.1.1 Khái niệm về Tính toán khoa học Tính toán khoa học (TTKH) đã trở thành lĩnh vực nghiên cứu phổ biến và phát triển mạnh trong suốt hàng chục năm qua. Có rất nhiều định nghĩa và khái niệm về TTKH theo các khuynh hướng phát triển khác nhau của nó, tuỳ thuộc vào từng lĩnh vực nghiên cứu và sự phát triển của công cụ ứng dụng. Đây là một lĩnh vực đang phát triển rất nhanh, cho nên một định nghĩa lúc này được coi là hợp lý thì chẳng bao lâu nó trở nên lạc hậu do các thuật toán, lĩnh vực ứng dụng và cấu trúc máy tính liên tục được cải tiến. Có thể nêu một định nghĩa khá tổng quát về TTKH và cũng dễ được chấp nhận như sau: Tính toán khoa học là một môn khoa học sử dụng máy tính điện tử và các thuật toán số theo một phương pháp hiệu quả để giải các bài toán khoa học, kỹ thuật và kinh tế có kích thước lớn. Người ta nói rằng TTKH là sự giao thoa của Toán học, Công nghệ thông tin và các ngành khoa học ứng dụng. 1.1.2 Phương pháp nghiên cứu TTKH Trước hết cần phải phân tích kỹ lưỡng những ứng dụng của các công cụ tính toán số và công cụ tính toán ký hiệu. Trong các nghiên cứu ứng dụng, cần xem xét chỗ nào thì các công cụ tính toán cổ điển như phương pháp giải tích phù hợp hơn và chỗ nào thì cần phải sử dụng phương pháp tính số. Nội dung giáo trình sẽ giới thiệu ngắn gọn cơ sở lý thuyết của các phương pháp số, các thuật toán dùng để tính toán chúng, các hàm nội trú của Matlab phục vụ cho việc tính toán và kỹ thuật cài đặt hàm Matlab theo các thuật toán đã nghiên cứu. Giáo trình không sử dụng các công cụ toán học nào quá phức tạp ngoài các phương pháp tính toán giải tích và đại số tuyến tính quen thuộc. Tuy nhiên người đọc cũng cần nắm được các kiến thức cơ bản về lý thuyết phương trình vi phân thường. 9 Phương pháp nghiên cứu của bất kỳ một lĩnh vực tính toán khoa học nào cũng được mô tả khái quát như trong Hình 1.1. Có thể diễn giải sơ đồ trong Hình 1.1 như sau. Đầu tiên ta nghiên cứu bài toán thực tế cần phải giải quyết. Trong hầu hết các trường hợp, bài toán được đặt ra ban đầu phụ thuộc vào rất nhiều tham số và các yếu tố ngẫu nhiên, cho nên không thể có một phương pháp giải được bài toán trong trường hợp hoàn toàn tổng quát. Để xây dựng được mô hình bài toán, cần phải bổ sung các giả thiết hợp lý và hiệu quả cho mốt số tham số thích hợp nhất; đồng thời cũng cần phải xấp xỉ một số yếu tố trong xây dựng cấu trúc của bài toán. Hình 1.1. Mô hình tính toán khoa học Kết quả là xây dựng được mô hình của bài toán gốc với những đặc trưng quan trọng nhất. Sau công việc đơn giản hoá này, hãy cố gắng tìm phương pháp hiệu quả để giải bài toán mô hình với sự trợ giúp của MTĐT. Giáo trình sẽ trình bày một số phương pháp tính toán cơ bản. Trong đó, có nhiều phương pháp khá hiệu quả cho những bài toán có cấu trúc đặc biệt. Nói chung, có hai kỹ thuật tính toán được sử dụng chủ yếu là: - Phương pháp tính toán kí hiệu (Symbolic computations): Cần thiết cho việc mô tả các đặc trưng liên tục của bài toán mô hình. - Phương pháp tính toán số (Numeric computations): Biểu diễn hàm liên tục bởi tập hợp dữ liệu rời rạc để xử lý trên MTĐT. Bài toán Mô hình Thuật toán Kết quả Biểu diễn Các giả thiết Xấp xỉ hoá Phương pháp số Phương pháp kí hiệu Kiểm tra 10 Sau khi đã chọn thuật toán và phương pháp giải thích hợp cho bài toán của mô hình, thực hiện các thuật toán ta sẽ nhận được các kết quả. Đây là kết quả giải được của bài toán mô hình. Vì thế các kết quả này phải được kiểm tra để bảo đảm rằng chúng hoàn toàn đúng đắn và phù hợp với bài toán gốc được đặt ra từ thực tế. Nếu chúng chưa phù hợp thì cần phải tìm hiểu xem nguyên nhân là do mô hình được xây dựng chưa hợp lý hay do thuật toán được chọn sai. Việc đánh giá sai số của kết quả đã tính được và những phương pháp “tính toán ngược” rất cần thiết trong trường hợp này. Sau khi đã bảo đảm rằng các kết quả là hoàn toàn đúng đắn và phù hợp với bài toán, ta có thể thông báo hay trình bày kết quả dưới dạng: báo cáo kĩ thuật, đồ họa, quảng cáo hay bài báo khoa học Trong các chương mục của giáo trình, chúng tôi tập trung trình bày : - Cơ sở toán học của các phương pháp tính toán số sử dụng cho các bài toán được nghiên cứu; - Khai thác sử dụng các thuật toán từ các gói phần mềm tính toán số và tính toán kí hiệu; - Quản lí dữ liệu và biểu diễn kết quả. 1.1.3 Quan hệ giữa các phương pháp tính rời rạc và liên tục Nhiều khái niệm trong toán học cổ điển được định nghĩa bởi những quá trình giới hạn. Chẳng hạn, đạo hàm của một hàm số f(x) được định nghĩa bởi giới hạn: 0 ( ) ( ) ( ) lim h df x f x h f x dx h     . Tương tự, tích phân xác định (tích phân Riemann) của một hàm số cũng được định nghĩa bởi giới hạn: b-a 0 k 1 I ( ) lim h h f a kh h      . Tuy nhiên, MTĐT lại không thể đánh giá được các giới hạn, ngay cả giới hạn khi x tiến dần đến 0 của các biểu thức đơn giản như: x x x x sin , 2 , Thậm chí, các biểu thức đó cũng không thể tính được trên MTĐT với x=0. 11 Vì vậy người ta thường xấp xỉ hoá các giới hạn từ chính các biểu thức lấy giới hạn, chẳng hạn với cách chọn h đủ nhỏ để xấp xỉ hoá giá trị thực của đạo hàm hoặc tích phân xác định. Công việc đó chỉ thực sự có ý nghĩa khi ta biết được giới hạn đó hội tụ và có thể đánh giá được sai số của nó. Lĩnh vực nghiên cứu của giải tích số bao gồm cả việc xây dựng, lẫn việc đánh giá hiệu quả của các thuật toán để xấp xỉ các giới hạn liên tục theo một cách tốt nhất có thể được. Việc khẳng định được tính chắc chắn và ổn định của các quá trình giới hạn đóng vai trò to lớn trong việc này. Để dễ dàng nghiên cứu giáo trình này bạn đọc nên đọc thêm các giáo trình về giải tích số. Như vậy, các phương pháp toán học rời rạc (phương pháp số) và các phương pháp toán học liên tục (phương pháp giải tích) là hai lĩnh vực nghiên cứu khác nhau nhưng hỗ trợ cho nhau trong việc giải quyết các bài toán thực tế. Sau đây chúng tôi sẽ trình bày một thí dụ minh họa về phương pháp nghiên cứu TTKH: mô tả mối quan hệ giữa phát biểu về mặt toán học của các bài toán, bao gồm cả những giả thiết hợp lý được sử dụng trong các mô hình thực tế, những công cụ giải tích cho một số trường hợp, các giả thiết nhằm đơn giản hoá bài toán và các phương pháp số dùng để giải bài trong trường hợp tổng quát. Cuối cùng chúng ta sẽ quan sát kết quả tính toán được dưới một trong hai dạng tĩnh hoặc động. Phương pháp tiếp cận của TTKH nói chung là đa nguyên tắc. Chúng bao gồm nhiều kĩ thuật tính toán và phương pháp toán học, từ giải tích tiệm cận đến các sơ đồ tính toán số, từ phương pháp tính toán song song đến sự vận dụng tính toán kí hiệu. Đầu tiên chúng tôi trình bày các công cụ và kỹ thuật cơ bản trong TTKH bằng cách minh hoạ bằng các bài toán cỡ nhỏ (Small-Scale). Điều đó có vẻ như mâu thuẫn với ý nghĩa cơ bản của định nghĩa về TTKH được nêu ở trên. Tuy nhiên ở đây chúng tôi muốn minh hoạ các kĩ thuật tính toán cho một số công việc cụ thể còn hơn để bạn đọc bị choáng ngợp vì kích thước lớn của bài toán. Cũng cần phải nói thêm rằng, có nhiều bài toán cỡ lớn đòi hỏi những công cụ và các phương pháp giải đặc biệt phù hợp với kích cỡ của chúng (chẳng hạn, các thuật toán lặp cho ma trận cỡ lớn). Những vấn đề như vậy vượt quá phạm vi nghiên cứu của giáo trình này. Vì vậy, ta nên áp dụng phương pháp tiếp cận đa nguyên tắc và khai thác các kỹ năng giải bài toán bằng cách bắt đầu từ các bài toán đáng quan tâm với kích thước vừa và nhỏ. 12 Bây giờ ta nghiên cứu dáng điệu của các đường cong traction được cho bởi phương trình vi phân : 2 2 dy a x dx x    , trong đó a là một số thực cụ thể. Đây là một bài toán khá khó. Nếu sử dụng công cụ tính toán kí hiệu trong Maple để lấy tích phân biểu thức này ta sẽ được kết quả dưới dạng biểu thức giải tích: 2 2 2 2 . a x y a arcth a x a     . Hình 1.2 Đồ thị hàm số 2 2 2 2 . a x y a arcth a x a     với a =5. Nói chung, phương trình vi phân mô tả họ đường cong traction có dạng: 2 2 2 2 ( ) y y x a dy dx         . Chúng có thể giải được bằng công cụ giải tích dưới dạng đóng. Lời giải của bài toán sẽ tìm được dưới dạng hàm ẩn là: 2 2 2 2 ( ) . ( ) 0 a y x a arcth a y x x a      [...]... pháp: 1 = 1, 000 , 1 = 0; 13 1 = 0 ,12 5 , 3 = 0; 23 1 = 0,037 , 3 = 1. 1 0-4 ; 3 3 1 = 0, 016 , 4 = 4 .1 0-4 ; 3 4 1 = 0,008 , 5 = 0; 53 1 =0,005 , 6 = 4 .1 0-4 3 6 Cuối cùng ta được: a =0,899 và | a-A|  1 +  2 +  3 + 4 + 5 + 6 = 9 .1 0-4 Vì vậy A = 0,899  9 .1 0-4 Trong các biểu thức trên,  i là sai số qui tròn của phép tính Thí dụ 9 Hãy tính tổng của chuỗi B 1 3 1  1 3 2  1 3   ( 1) n 1 3 với... =   as10 s , trong đó s là một số nguyên và as{0 ,1, 2,3, ,9} s Chẳng hạn nếu: a = -3 ,14 16 = -( 3 .10 0 + 1. 1 0 -1 + 4 .1 0-2 + 1. 10 -3 + 6 .1 0-4 ) thì a0 =3, a -1 = 1, a-2 = 4, a-3 = 1, a-4 = 6 Nếu a  0,5 .10 s thì as là chữ số đáng tin, ngược lại a s là chữ số đáng ngờ Chữ số đáng tin là những chữ số “chắc chắn” của số A, còn những chữ số đáng ngờ có thể do sai số sinh ra Thí dụ 4 Cho a = 2, 718 35 - Nếu a=0,00045... của qui tròn trong quá trình tính toán ta sẽ tính biểu thức với 4 giá trị xấp xỉ khác nhau của quả thu được: Số xấp xỉ của 2 2 và sử dụng hai cách tính trên rồi so sánh kết  10  2 1 3363  2378 2 1, 4 0,00 010 48576 33,8 1, 414 0,00 014 7 912 00060 0,508 1, 414 21 0,00 014 866399378 0,00862 1, 414 213 563 0,00 014 867678222 0,00 014 718 6 Rõ ràng là kết quả của hai cách tính rất khác nhau Cách tính thứ hai đơn giản... số B  Bn . a = 10 s s s a  , trong đó s là một số nguyên và a s {0 ,1, 2,3, ,9}. Chẳng hạn nếu: a = -3 ,14 16 = -( 3 .10 0 + 1. 10 -1 + 4 .10 -2 + 1. 10 -3 + 6 .10 -4 ) thì a 0 =3, a -1 = 1, a -2 =. các Giáo sư, Tiến sỹ và giảng viên Bộ môn Toán, Khoa CNTT Học viện Kỹ thuật Quân sự. Tác giả 8 Chương 1 MỞ ĐẦU VỀ TÍNH TOÁN KHOA HỌC 1. 1 MỞ ĐẦU 1. 1 .1 Khái niệm về Tính toán khoa học. 3 1 1 = 1, 000 ,  1 = 0; 3 4 1 = 0, 016 ,  4 = 4 .10 -4 ; 3 2 1 = 0 ,12 5 ,  3 = 0; 3 5 1 = 0,008 ,  5 = 0; 3 3 1 = 0,037 ,  3 = 1. 10 -4 ; 3 6 1 =0,005 ,  6 = 4 .10 -4 .

Ngày đăng: 11/07/2014, 09:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan