Bài giảng Phương pháp tính và Matlab do giảng viên trường đại học Bách Khoa HN biên soạn. Bài giảng sẽ cung cấp tới cho sinh viên các trường kỹ thuật,, cũng như trường đại học Bách khoa những kiến thức cơ bản, các ví dụ cụ thể dễ hiểuChúc các bạn sinh viên sẽ đạt kết quả tốt môn học này.
MATLAB CƠ BẢN Gv: Đỗ Đức Tâm Ngày 20 tháng năm 2019 / 23 Matlab gì? MATLAB (Matrix Laboratory) phần mềm cung cấp môi trường tính tốn số lập trình, cơng ty MathWorks thiết kế MATLAB cho phép tính tốn số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực thuật toán, tạo giao diện người dùng liên kết với chương trình máy tính viết nhiều ngơn ngữ lập trình khác Ngày 20 tháng năm 2019 / 23 Các thành phần cửa sổ làm việc Matlab Ngày 20 tháng năm 2019 / 23 Các thành phần cửa sổ làm việc Matlab Current Folder ( Thư mục thời) Chứa tập tin mà matlab làm việc Khi muốn thực thi tập tin ".m", người dùng phải chắn tập tin chứa thư mục Command Window ( Cửa sổ dòng lệnh thao tác trực tiếp) Ở chế độ này, sau gõ câu lệnh thực thi ( nhấn enter), kết thị cửa sổ lệnh Nếu không muốn in kết ta thêm dấu ";" vào cuối câu lệnh Editor: Soạn thảo chương trình người dùng lập Workspace: Chứa danh sách biến khai báo sử dụng chương trình Tại đây, ta xem tên, giá trị, kích thước sửa giá trị biến Command History: Chứa tất câu lệnh thực thi Command Window Kích đúp vào câu lệnh để thực thi lại Ngày 20 tháng năm 2019 / 23 Biến thao tác biến 3.1 Biến Matlab Biến dài 31 kí tự phải bắt đầu chữ Matlab phân biệt chữ thường chữ hoa Sử dụng dấu "=" để định nghĩa biến Tên biến trùng với hàm có sẵn, hàm khơng cịn sử dụng đến biến bị xóa Ví dụ Ngày 20 tháng năm 2019 / 23 3.2 Một số hàm liên quan đến biến: clear: Xóa tất biến who:Hiển thị biến Workspace clear name1, name2, : Xóa biến có tên khai báo exist(’item’): Kiểm tra tồn đối tượng ’item’ save (’FILENAME’,’VARIABLES’): lưu biến vào file load: Tải biến vào workspace từ file Ngày 20 tháng năm 2019 / 23 3.3 Một số toán tử +: Phép cộng −: Phép trừ ∗: Phép nhân /: Phép chia thông thường \: Phép chia phải : Chuyển vị ma trận, chuyển vị liên hợp phức (): xác định ưu tiên phép toán Ngày 20 tháng năm 2019 / 23 3.4 Một số hàm cài đặt sẵn Để hiển thị danh sách hàm toán học sơ cấp, nhập vào lệnh: "help elfun", danh sách hàm toán học nâng cao, nhập vào lệnh :"help specfun", danh sách hàm xử lý ma trận, nhập vào lệnh: "help elmat" Ví dụ số hàm thường gặp matlab sqrt(x): bậc x exp(x): hàm mũ số e abs(x): giá trị tuyệt đối x sign(x): hàm dấu (= x > 0; = −1 x < 0; = x = 0) rem(x,y): số dư pháp chia x cho y sum(v): tổng phần tử véc tơ v prod(v): tích phần tử véc tơ v mean(v): giá trị trung bình phần tử véc tơ v sin, cos, tan : hàm lượng giác sin, cos, tan Ngày 20 tháng năm 2019 / 23 Một số kiểu liệu MatLab 4.1 Véc tơ Véc tơ ma trận có hàng cột Để khởi tạo véc tơ hàng chứa giá trọ rời rạc, phần tử véc tơ phải nằm cặp ngoặc vuông "[ ]" ngăn cách với dấu phảy "," khoảng trắng Ví dụ: Ngày 20 tháng năm 2019 / 23 4.1 Véc tơ Để khởi tạo véc tơ hàng chứa giá trị liên tiếp cách giá trị định (bước nhảy), Matlab sử dụng tốn tử ":", giá trị đầu cuối véc tơ không thiết phải đặt dấu ngoặc vng Ví dụ: Ngày 20 tháng năm 2019 10 / 23 Sai số phương pháp Nếu chọn phần tử xn dãy (2) làm xấp xỉ nghiệm thực η phương trình (1) tồn M2 m1 cho |f (x)| ≥ m1 > |f (x)| ≤ M2 Khi ta có |xn − η| ≤ ∀x ∈ [a, b]; ∀x ∈ [a, b] M2 (xn − xn−1 )2 2m1 (3) Nhận xét: Phương pháp tiếp tuyến hội tụ nhanh phương pháp lặp đơn phương pháp chia đôi Ngày 21 tháng năm 2019 / 10 Ví dụ: Tìm nghiệm: x + x − = phương pháp tiếp tuyến Lời giải: - Tách nghiệm: Bằng phương pháp đồ thị tìm phương trình có nghiệm thuộc khoảng (1, 2) - Chính xác hóa nghiệm: f (x) = 3x + ≥ m1 = ∀x ∈ [1, 2]; < f (x) = 6x ≤ M2 = 12 ∀x ∈ (1, 2) Do f (2)f (x) > ∀x ∈ (1, 2) nên chọn x0 = xấp xỉ nghiệm ban đầu Theo định lý ta có dãy xn = xn−1 − f (xn−1 ) f (xn−1 ) hội tụ đến nghiệm phương trình cho Ngày 21 tháng năm 2019 / 10 - Ta có bảng sau n xn 1.6153846 1.5212930 1.51599642 1.51598022 f (xn ) f (xn ) 1.6153846 1.5212930 1.51599642 1.51598022 1.51598022 xn − Chọn x4 = 1.51598022 nghiệm xấp xỉ sai số theo cơng thức (3) |x4 − η| ≤ 12 |x4 − x3 |2 = 0.4.10−10 Suy nghiệm xấp xỉ x4 = 1.51598022 có tất chữ số chữ số tin tưởng Ngày 21 tháng năm 2019 / 10 Thuật toán sơ đồ khối c Thuật toán - Khai báo hàm f (x), f (x), M2 , m1 , ε, x - Nhập x - Lặp y = x; x = x − f (x)/f (x) - Xuất nghiệm: x (hoặc y ) M2 2m1 |x − y | > ε Ngày 21 tháng năm 2019 / 10 Thuật toán sơ đồ khối start f (x), f (x), M2 , m1 , x, ε y := x, x := x − f (x)/f (x) yes M2 2m1 |x − y | > ε no print x finish Ngày 21 tháng năm 2019 10 / 10 GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH f (x) = PHƯƠNG PHÁP DÂY CUNG Gv: Ts Đỗ Đức Tâm Ngày tháng 10 năm 2019 / 10 Nội dung phương pháp dây cung Xét phương trình f (x) = (1) (x0 , x1 ) khoảng phân ly nghiệm Gọi A(x0 , f (x0 )) B(x1 , f (x1 )) Phương pháp dây cung dựa việc thay cung AB đồ thị hàm số đường thẳng AB Nghiệm phương trình (1) xấp xỉ hồnh độ giao điểm đường thẳng AB với trục Ox Ngày tháng 10 năm 2019 / 10 Nội dung phương pháp dây cung Giả sử f (x) f (x) không đổi dấu (x0 , x1 ) đặt d = x0 f (x0 ).f (x) > d = x1 trường hợp ngược lại Để cho xác định giả sử d = x0 Phương trình đường thẳng AB f (x) − f (x1 ) x − x1 = d − x1 f (d) − f (x1 ) Hoành độ giao điểm AB với trục hoành x2 = x1 − d − x1 f (x1 ) f (d) − f (x1 ) lấy làm xấp xỉ nghiệm Khi (x2 ; d) khoảng phân ly nghiệm Lặp lại trình ta nhận công thức truy hồi xn = xn−1 − d − xn−1 f (xn−1 ) f (d) − f (xn−1 ) Ngày tháng 10 năm 2019 (2) / 10 Nội dung phương pháp dây cung Nếu dãy xn xác định cơng thức (2) hội tụ giới hạn α nghiệm phương trình (1) Thực vây, cho n tiến đến +∞ công thức (2) ta nhận d −α f (α) α=α− f (d) − f (α) Từ suy α nghiệm phương trình (1) Do lấy xn làm nghiệm xấp xỉ phương trình (1) với độ xác cho trước Ngày tháng 10 năm 2019 / 10 Điều kiện hội tụ phương pháp dây cung Định lý Giả sử (x0 , x1 ) khoảng phân ly nghiệm phương trình f (x) = Đạo hàm f (x) f (x) liên tục, không đổi dấu, không triệt tiêu [x0 , x1 ] Khi dãy số xây dựng công thức (2) hội tụ đơn điệu đến nghiệm phương trình f (x) = - Nếu f (x) f (x) dấu [a, b] dãy hội tụ tăng đến nghiệm phương trình (1); - Nếu f (x) f (x) khác dấu [a, b] dãy hội tụ giảm đến nghiệm phương trình (1) Ngày tháng 10 năm 2019 / 10 Sai số phương pháp Nếu chọn phần tử xn dãy (2) làm xấp xỉ nghiệm thực α phương trình (1) tồn M1 m1 cho < m1 ≤ |f (x)| ≤ M1 Khi ta có |xn − α| ≤ ∀x ∈ [x0 , x1 ] M1 − m1 |xn − xn−1 | m1 (3) Nhận xét: -Phương pháp dây hội tụ chậm phương tiếp tuyến (hội tụ tuyến tính) -Giả sử f (x) f (x) dấu (x0 , x1 ) phương pháp tiếp tuyến cho dãy xn hội tụ giảm đến nghiệm α phương trình (1) phương pháp dây cung cho dãy yn hội tụ tăng đến nghiệm α phương trình (1) Khi chọn zn = (xn + yn )/2 làm nghiệm xấp xỉ α đạt độ xác cao Phương pháp gọi phương pháp kết hợp Ngày tháng 10 năm 2019 / 10 Ví dụ Tìm nghiệm: x + x − = phương pháp dây cung Lời giải: - Tách nghiệm: Bằng phương pháp đồ thị tìm phương trình có nghiệm thuộc khoảng (1, 2) - Chính xác hóa nghiệm: < ≤ f (x) = 3x + ≤ 13 ∀x ∈ [1, 2]; f (x) = 6x ∀x ∈ [1, 2] Do f (2)f (x) > ∀x ∈ (1, 2) nên chọn d = x1 = Theo định lý điều kiện hội tụ ta có dãy xn = xn−1 − − xn−1 f (xn−1 ) f (2) − f (xn−1 ) hội tụ đến nghiệm phương trình cho Ngày tháng 10 năm 2019 / 10 Ví dụ - Ta có bảng sau xn − n xn 1.375 1.4813614 1.5077361 1.5155206 1.5158718 1.5159548 1.5159742 − xn f (xn ) f (2) − f (xn ) 1.375 1.4813614 1.5077361 1.5140319 1.5158718 1.5159548 1.5159742 – Chọn x8 = 1.5159742 nghiệm xấp xỉ sai số theo cơng thức (3) |x8 − α| ≤ 13 − |x8 − x7 | = 4.365.10−5 Suy nghiệm xấp xỉ x8 = 1.5159742 có chữ số tin tưởng Ngày tháng 10 năm 2019 / 10 Thuật toán sơ đồ khối Thuật toán - Khai báo hàm f (x) - Nhập a, b - Tính x = a − (b − a)f (a)/(f (b) − f (a)) - Nếu f (x).f (a) < Lặp b = x x = a − (b − a)f (a)/(f (b) − f (a)) |x − b| > ε Ngược lại Lặp a = x x = a − (b − a)f (a)/(f (b) − f (a)) |x − a| > ε - Xuất nghiệm: x Ngày tháng 10 năm 2019 / 10 Thuật toán sơ đồ khối Ngày tháng 10 năm 2019 10 / 10 ... toán học sơ cấp, nhập vào lệnh: "help elfun", danh sách hàm toán học nâng cao, nhập vào lệnh :"help specfun", danh sách hàm xử lý ma trận, nhập vào lệnh: "help elmat" Ví dụ số hàm thường gặp matlab. .. x=input(’Nhập vào số tuổi bạn’) %nhập số s=input(’Nhập vào tên bạn’)%nhập vào xâu kí tự -Cách nhập liệu tham số đầu vào hàm m-file thường xuyên sử dụng Matlab Ngày 11 tháng năm 2019 / 17 Nhập, xuất liệu Matlab. .. phím Matlab ta dùng hàm input Ví dụ x=input(’Nhập vào số tuổi bạn’) %nhập số s=input(’Nhập vào tên bạn’)%nhập vào xâu kí tự -Cách nhập liệu tham số đầu vào hàm m-file thường xuyên sử dụng Matlab