1. Trang chủ
  2. » Công Nghệ Thông Tin

giáo trình sử dụng matlab

66 549 0

Đ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

Cấu trúc

  • Slide 1

  • Slide 2

  • Slide 3

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • Slide 20

  • Slide 21

  • Slide 22

  • Slide 23

  • Slide 24

  • Slide 25

  • Slide 26

  • Slide 27

  • Slide 28

  • Slide 29

  • Slide 30

  • Slide 31

  • Slide 32

  • Slide 33

  • Slide 34

  • Slide 35

  • Slide 36

  • Slide 37

  • Slide 38

  • Slide 39

  • Slide 40

  • Slide 41

  • Slide 42

  • Slide 43

  • Slide 44

  • Slide 45

  • Slide 46

  • Slide 47

  • Slide 48

  • Slide 49

  • Slide 50

  • Slide 51

  • Slide 52

  • Slide 53

  • Slide 54

  • Slide 55

  • Slide 56

  • Slide 57

  • Slide 58

  • Slide 59

  • Slide 60

  • Slide 61

  • Slide 62

  • Slide 63

  • Slide 64

  • Slide 65

  • Slide 66

Nội dung

MATLAB TIN HỌC ỨNG DỤNG – HỌC PHẦN II -1- Bài giảng Tin Ứng dụng – Matlab MỤC LỤC CHƯƠNG I: MATLAB CĂN BẢN 1.1 Matlab – ngôn ngữ tính toán kỹ 1.2 thuật 1.3 Khả ứng dụng 1.4 Matlab 1.5 Đặc điểm 1.6 Matlab .6 1.7 Cài đặt khởi động Matlab 7.0 1.8 Quản lý không gian làm việc CHƯƠNG II: TÍNH TOÁN TRONG MATLAB 15 Matlab 2.1 Matlab máy tính cá nhân Ghi & phục hồi liệu 11 2.2 15 Sử dụng Help .12 2.3 Biến Matlab 13 History & Editing 2.4 16 2.5 Các kiểu l iệu - Định dạng kết 2.6 17 2.7 Các kiểu l iệu số & số phức 2.8 18 2.9 Các ký tự, Chuỗi Văn 2.10 19 Các số dựng CHƯƠNG III: VECTƠ 27 sẵn 20 3.1 Giới thiệu Các hàm dựng sẵn 3.2 27 20 3.3 Véctơ hàng 28 Các phép toán quan hệ 23 3.4 Vectơ cột toán 2924 Các phép logic 3.5 Toán tử hai chấm Kết hợp nhiều lệnh dòng; Ẩn kết 3.6 ( : tính 26 ) 29 Làm việc với vectơ & ma trận (mảng) CHƯƠNG IV: MA TRẬN ĐẠI SỐ & TUYẾN TÍNH 30 4.1.34 Đị nh nghĩ a vàvới khởicác tạohàm madựng trận Xử lý liệu sẵn cho vectơ & ma 4.2 34 trận 32 4.3 Một số ma trận đặc biệt 4.4 34 4.5 Các phép toán với phần tử ma trận 4.6 35 4.7 Các phép toán với ma trận 4.8 35 4.9 Giải phương trình đại số 4.10 35 Giải hệ phương trình đại số tuyến tính 35 Tìm nghiệm đa thức -235 Giải phương trình phi tuyến Bài giảng Tin Ứng dụng – Matlab CHƯƠNG V: SCRIPTS VÀ FUNCTIONS (M-FILES) 37 5.1 Giới thiệu M-file 5.2 37 5.3 Biên soạn thực thi M-file 5.4 37 5.5 Chú thích (comments) 38 5.6 Các hàm m-file (function m-files) 39 5.7 Câu lệnh rẽ nhánh (if switch) 41 CHƯƠNG VI:(for ĐỒvà THỊ DẠNG ĐƯỜNG Vòng lặp while) 6.1.44 Biểu 42 diễn đường trình 6.2 44 Đọc liệu từ file ghi file 6.3 Lựa 43 chọn màu vẽ, nét vẽ 6.4 46 6.5 Tạo thích, giải hình vẽ 6.6 48 Xóa đường bi ểu đồ, lưu biểu đồ CHƯƠNG VII: ĐỒ THỊ KHÔNG GIAN 50 7.1.55 Các dạng Đồ thị Logarit 7.2 55 50 7.3 Chỉ vị trí không gian Dãy định biểu đồ 52 7.4 chi ều 58 Mặt cắt địa hình PHẦN 58 BÀI TẬP 61 Bài tậpTrường số 1: 61 Bài tậpvéctơ số 62 59 Bài tập số 62 Bài tập số 4: 63 LỜI GIẢI 63 Bài tập số 1: 63 Bài tập số 2: 64 Bài tập số 3: 64 Bài tập số 4: 64 TÀI LIỆU THAM KHẢO: 66 -3- Bài giảng Tin Ứng dụng – Matlab CHƯƠNG I: MATLAB CĂN BẢN 1.1 Matlab – ngôn ngữ tính toán kỹ thuật - MATLAB ngôn ngữ bậc cao môi trường tương tác cho phép bạn tiến hành nhiệm vụ tính toán có cường độ lớn nhanh với ngôn ngữ lập trình C, C++ Fortran - MATLAB viết tắt cho "Matrix Laboratory" - Phòng thí nghiệm ma trận Ban đầu Matlab thiết kế Cleve Moler vào năm 1970 để sử dụng công cụ dạy học Từ đến phát triển thành phần mềm thương mại thành công - Hiện MATLAB R14 phần mềm cho công việc tính toán ngành kỹ thuật, khoa học lĩnh vực toán học ứng dụng Matlab cho ta ngôn ngữ lập trình mạnh, giao diện đồ họa xuất sắc, phạm vi rộng kiến thức chuyên môn Matlab 1.2.mộtKhả nănghiệu ứng dụngmại củahóa Matlab thương thương tập đoàn MathWorks, Massachusetts, USA (hiện nhà cung cấp hàng đầu thếnhìn giớitừcho - Một tính tuyệt vời Matlab góccác độ phần mềm tính toán kỹ thuật thiết kế dựa mô hình) nhà khoa học tính toán thư viện dựng sẵn to lớn phong phú chu trình tính toán công cụ hiển thị đồ họa - Matlab cho phép người dùng tiến hành nhiều nhiệm vụ thông thường liên quan tới việc giải vấn đề cách số học Nó cho phép dành nhiều thời gian cho việc suy nghĩ, khuyến khích thí nghiệm - Matlab ứng dụng thuật toán trân trọng tin tưởng vào kết thu - Các tính toán mạnh thực với hai câu lệnh - Bạn xây dựng riêng cho hàm toán học cho ứng dụng đặc -4biệt Bài giảng Tin Ứng dụng – Matlab VD: Hãy tham khảo demo Matlab để xem ta làm với một>>vàicolormap(hsv(64)) dòng lệnh đơn giản: >> z = cplxgrid(30); >> cplxmap(z,z^3) >> cplxroot(3) % miền không gian số phức đơn vị z % vẽ đồ thị hàm x = z^3 – hinh1 % vẽ đồ thị hàm y = z^(1/3) – hinh2 Hình 1: Đồ thị hàm x = z3 không gian số phức Hình 2: Đồ thị hàm y  z không gian số phức -5- Bài giảng Tin Ứng dụng – Matlab 1.3 Đặc điểm Matlab Lập trình theo nghĩa thông thường, nhập vào máy câu lệnh rõ ràng, theo thứ tự định cho máy thực theo thứ tự cho ta kết mong muốn Một khái niệm nôm na tương tự thường thấy khóa học lập trình ngôn ngữ C, Pascal Khi khởi đầu với MatLab ta hiểu theo nghĩa rộng hơn: lập trình có bước biểu diễn toán dạng hàm máy tính qua việc thực hàm cho ta kết Phương pháp có mức độ trừu tượng cao so với câu lệnh dẫn đơn Để minh họa điều này, ta xét ví dụ đơn giản: so sánh phép cộng hai véctơ ngôn ngữ lập trình Pascal MatLab - Pascal biểu diễn véctơ dạng mảng (array), chẳng hạn có vec-tơ of integer = (3, 7, 4, 2, 0); A, B, C A + BA: = array[1 5] C: B: array[1 5] of integer = (-2, 4, 8, 5, 1); var C: array[1 5] of integer; i: integer; begin for i := to begin C[i] := A[i] + B[i] end end - Cách làm Atrong = [3MatLab đơn 0]; giản B = [-2 1]; nhiều: C = A + B; - Có đơn giản nói nhờ MatLab xây dựng sẵn khái niệm ma trận Dấu cộng dòng lệnh MatLab biểu thị phép cộng ma trận Pascal không vậy; mảng biểu diễn có thứ tự biến Không có phép cộng ma trận, có phép cộng hai số – chương trình Pascal dài nhiều - Một đặc điểm tất biến chương trình Pascal phải Trong năm gần đây, bên cạnh ngôn ngữ lập trình truyền thống (C /khai C++báo Trong MatLab biến tự động hình thành câu lệnh gán / Fortran), ngôn ngữ văn lệnh (scripting languages) sử dụng phổ biến lĩnh vực nghiên cứu tính toán MatLab ngôn ngữ Là ngôn ngữ bậc cao, dòng lệnh MatLab thường có tác dụng tương đương với khoảng 10 dòng lệnh C / C++ Người lập trình tốn thời gian gõ câu lệnh tập trung vào nội dung chương trình -6- Bài giảng Tin Ứng dụng – Matlab Tuy ngôn ngữ lập trình biên dịch C / Fortran cho phép chương trình tính toán nhanh tốc độ yêu cầu quan trọng chương trình tính lớn Do cách kết hợp thông minh phần lõi tính toán viết ngôn ngữ biên dịch, thao tác nhập xuất, xử lí, hiển thị số liệu viết ngôn ngữ văn lệnh MatLab 1.4 Cài đặt khởi động Matlab 7.0 1.4.1 Cài đặt Matlab 7.0 - Yêu cầu cấu hình máy tính: + Bộ vi xử lý Pentium Pentium Pro + Windows 95 NT (WinXP home, XPprofessional được) + Bộ điều phối đồ họa bit card hình tối thiểu 256 màu + Dung lượng ổ cứng 25Mb 1Gb (tùy thuộc vào cách cấu hình đĩa cứng, phân vùng đĩa, số hợp phần Matlab cài đặt), tới 2,1Gb cài đặt Matlab với Simulink + Bộ nhớ động (RAM) tối thiểu 16Mb (nên có nhớ tối thiểu 128Mb) - Quá trình cài đặt Matlab 7.0 cho WindowsXP (bộ gồm đĩa CD): + Các khuyến nghị khác: Bộ nhớ bổ sung, card đồ họa bổ sung, card âm thanh, in, ổMS-Word hơn, trình biên dịchtựC,động Borlean, + Đưa đĩa máy CD vào đọc Nếu7.0 chương trình SETUP không chạy Mỉcosoft (xây dựng f ile MEX), trình duyệt internet (để chạy Matlab nhấn đúp vào biểu tượng setup.exe để bắt đầu trình cài đặt Helpdesk online) + Accept (chấp nhận) thỏa thuận quyền sau click Next + Nếu bạn cài theo kiểu mặc định (hay gọi Typical setup - kiểu phổ biến), Matlab máy tính bạn có hợp phần để làm việc theo hướng dẫn tài liệu Theo hướng dẫn hình Cho đĩa CD thứ vào yêu cầu + Nếu bạn cài đặt theo kiểu tùy chọn cá nhân (Manual setup) nhấn vào hộp thành phần dấu 'v' bạn muốn có tùy chọn Nhấn tiếp bạn ý định (có thể thêm vào sau muốn) + Trên hình hiển thị 'C:\MATLAB7' thư mục mặc định trình cài đặt Nếu bạn muốn cài đặt vào địa khác, đổi tên thư mục, -7thì bạn lựa chọn 'Browse' Bài giảng Tin Ứng dụng – Matlab + Chi tiết hướng dẫn cài đặt xin xem f ile ‘install_guide.pdf ’ đĩa CD1 (bản tiếng Anh) - Từ HĐH Windows, khởi động Matlab đơn giản 1.4.2 Khởi động Matlab (Hệ điều hành Windows) cách nháy đúp vào biểu tượng MATLAB hình, cách chọn MATLAB từ Menu Start - Quá trình khởi động đưa người dùng đến Cửa sổ lệnh, nơi Đâycác dòng dấu hiệu thấy Matlab chờ bạn đánh (câu) lệnh Khi lệnhcho biểu thị '>>' hoạt động chế >>_độ máy tính cầm tay, tất lệnh Matlab nhập vào dòng lệnh từ bàn phím - Matlab sử dụng theo nhiều chế độ nhiều cách khác nhau; + Như máy tính cầm tay cao cấp chế độ máy tính cầm tay + Như ngôn ngữ lập trình bậc cao + Như chu trình gọi từ chương trình C 1.5 Quản lý không gian làm việc Matlab Trong chúnggian ta sẽlàm nghiên cứuMatlab chi tiết gồm chế có độ đầu - Về tài cơliệu bản,này không việc tiên phần sau: + Cửa sổ trợ giúp (Help window) + Nút Start + Cửa sổ nhập lệnh (Command window) + Cửa sổ không gian làm việc (Workspace window) + Cửa sổ trình lệnh (Command History window - lịch sử) + Cửa sổ biên tập mảng, vectơ, ma trận (Array editor window) + Cửa sổ địa thư mục thời (Current directory window) - Nút ‘x’ góc bên phải cửa sổ dùng để đóng chúng Hiển thị lại cửa sổ cách tích ‘ ’vào tên cửa sổ tương ứng menu -8Desktop Bài giảng Tin Ứng dụng – Matlab Hình 1.1: Giao diện Matlab 7.0 * Nút Start: góc bên trái hình Matlab, cho phép ta chạy ứng dụng mẫu (demos), công cụ cửa sổ chưa hiển thị khởi động Matlab Bằng cách đánh lệnh 'demo' bạn tiếp cận với tập hợp sâu rộng file trình diễn giá trị cao, biểu cho khả Matlab Ví dụ: Thử chạy Start -> Matlab -> Demos chạy ứng dụng mẫu cửa sổ * Cửa sổ lệnh: đề cập mục 1.4.2 (Khởi động Demo(s) Matlab) Ghi chú: Lệnh xóa tất giá trị biến -hiện Các có.diễn giải câu (mệnh đề) Matlab đánh giá bạn gõ vào 'Cửa sổ lệnh', kết tính toán thể Không giống Fortran ngôn ngữ tính toán cần biên dịch khác, Matlab môi trường tương tác – bạn đưa câu lệnh, Matlab cố gắng thực thi trước đòi hỏi lệnh -hoặc Các diễn giải và>> câudiễn sử dụng trong M-file (sẽ trình đơn giản giải bày chi tiết chương V) Chúng thường có cấu trúc: - Các diễn giải thường soạn toán tử, hàm, tên biến, >> biến = diễn giải  hiển thị hình sau ấn Enter Các câu lệnh có dạng ‘tên biến = -9- Bài giảng Tin Ứng dụng – Matlab diễn giải’ diễn giải gán cho biến để sử dụng sau Khi ‘tên biến’ dấu ‘=’ bỏ kết diễn giải tự động gán cho biến có tên ‘ans’ (hay answer – câu trả lời) hiển thị hình - Một câu (lệnh) thông thường kết thúc cuối dòng Tuy nhiên tiếp tục câu ba dấu chấm ‘…’ cuối dòng - Có thể đặt vài câu lệnh hàng, ngăn cách dấu phẩy ‘,’ chấm phẩy ‘ ;’ - Nếu câu lệnh kết thúc dấu chấm phẩy cuối câu kết lệnh không hiển thị, cầu tính  tuy%nhiên (clearyêu command window) >> clc thựcvào (phép tính gán vẫnWindow thực hiện,hiện kết lệnh có menu Edit -> hay Clearphép Command Khi thực này, toàn workspace) thiết việc giá trị củaĐiều biến cóyếu không thay đổiẩn hayđi kết trung gian không mong muốn (VD thực loạt phép tính, hay tính toán với ma trận lớn) *- Bạn Cửa sổ xóa không việc trắnggian toàn làm cửa sổ lệnh (workspace): lệnh Các biến liệu mà bạn nhập vào tính toán Matlab lưu phần gọi 'không gian làm việc' Tất biến, ngoại trừ biến cục thuộc M-file, thể gian liệt làmkê việc - Lệnhtrong 'who' không 'whos' biến có không gian làm việc VD: đánh lệnh 'whos' vào cửa sổ lệnh, bạn thấy danh sách biến có kiểu loại kích cỡ chúng - Để biết giá trị biến, bạn đánh vào tên biến dấu nhắc cửa  >> clear tên_biến sổ lệnh Enter Bản thân lệnh 'clear' xóa tất biến có (tương đương với 'clear all') - Để xóa hàm biến khỏi không gian làm việc, ta sử dụng lệnh 'clear': - 10 - Bài giảng Tin Ứng dụng – Matlab Bieu duong cap phoi hat 100 80 P (% ) 60 40 20 0 10 d (mm) Hình 8: Ví dụ với biểu đồ có trục theo thang logarit Các đồ thị với thang logarit trục y trục thực tương tự với câu lệnh semilogy loglog 6.6 Dãy biểu đồ Bằng lệnh figure ta tạo nhiều hình vẽ độc lập nhiều cửa sổ Tuy vậy, thước so sánh MatLab hỗ đồhệxếp thống subplot (biểu nhiều lúc ta muốnđể có tiện việc dãy (hoặc bảng) biểu nhau, có đồ trợ kích nhỏ) với câu lệnh có dạng chung sau: subplot(m,n,k); Hình 9: Vị trí biểu đồ dãy tạo lệnh subplot - 52 - Bài giảng Tin Ứng dụng – Matlab Sẽ tạo bảng gồm (m × n) biểu đồ nhỏ (m hàng n cột) Tiếp hình thứ k (tính từ xuống dưới, trái qua phải) kích hoạt chuẩn bị vẽ Chẳng hạn, sau thực lệnh subplot(2,3,4); ta kết Hình Gọn ta viết (trong trường hợp m, n, k < 10): subplot 234 Xét ví dụ đơn giản: ta cần vẽ đường trình mực nước (z) vận tốc dòng chảy (v) theo thời gian (t), hai biểu đồ khác Để có đối chiếu thời gian hai biểu đồ ta nên xếp chúng theo cột dọc Như m n = t ==0:5:100; z = [-0.14 -0.08 -0.05 -0.04 0.01 0.07 0.15 0.23 0.25 0.37 0.4 0.45 0.55 0.6 0.66 0.76 0.82 0.91 1.03 1.14]; v = [0.84 0.89 0.91 0.89 0.91 0.88 0.92 0.97 0.97 0.99 0.97 1.02 0.96 1.03 0.98 1.04 1.11 1.04 1.16]; subplot 211 1.04 1.12 plot(t, z); xlabel('t (phut)'); ylabel('z (m)'); title('Duong qua trinh muc nuoc tai diem A1'); subplot 212 plot(t, v, 'g'); xlabel('t (phut)'); ylabel('v (m/s)'); title('Duong qua trinh luu toc tai diem A1'); Kết Hình 7.5 MatLab có lệnh plotyy cho phép hai trục tung với hai đại lượng khác (chẳng hạn z v) biểu đồ - 53 - Bài giảng Tin Ứng dụng – Matlab Duong qua trinh muc nuoc tai diem A1 1.5 z (m) 0.5 -0.5 20 60 80 100 60 80 100 t (s) Duong qua trinh luu toc tai diem A1 1.4 v (m/s) 40 1.2 0.8 20 40 t (s) Hình 10: Hai đường trình hai subplot - 54 - Bài giảng Tin Ứng dụng – Matlab 7 CHƯƠNG VII: ĐỒ THỊ KHÔNG GIAN Trong kỹ thuật cần biểu đồ không gian Thường gặp bình đồ (bản đồ địa hình khu vực nhỏ) Bên cạnh đó, biểu đồ không gian dùng để biểu diễn độ sâu địa hình hay trường không gian nói chung (nhiệt độ, khí áp ) Trong tất trường hợp nói trên, có biến (z) biểu diễn theo hai biến không gian mặt đất (x, y) 7.1 Các dạng Các dạng MatLab hỗ trợ nhiều phương pháp biểu diễn số liệu; tài liệu ta làm quen với số loại bản, là:  Mảng màu (color patch)  Đường đồng mức  (contour) Bề mặt chiều (surface) Hãy bắt đầu với ví dụ đơn giản mô địa hình đáy biển khu vực giả tưởng cho ma trận z Đáy biển có dạng tương tự mặt cắt ngang cân (Dean) theo phương trình: z = - 0.1 y2/3 Với trục x dọc theo bãi biển trục y hướng khơi Ta xét lưới tọa độ mặt bằng, điểm nút lưới có phạm vi < x < 200, < y < 200 Khoảng cách điểm nút lưới theo phương x Δx = 10, theo phương y Δy = Nghĩa 0,0  10,0   200,0  tọa độ tất điểm nút lưới có dạng: 0,4  10,4     x i , y i= 0,200  10,200   [ 200,4   200,200  ] Lệnh meshgrid giúp ta làm điều đó: [x, y] = meshgrid(0:10:200, 0:4:200); (Một lần cần ý dấu ; cuối câu lệnh, không nhiều số in hình!) Lệnh meshgrid lấy hai thông số: thông số vec-tơ thứ tọa độ trục x, thông số vec-tơ thứ hai tọa độ trục y Kết ta ma trận - 55 - Bài giảng Tin Ứng dụng – Matlab điểm vùng hình chữ nhật (51 × 21) có tọa độ tương ứng dựng từ vec-tơ trên6 Sau mảng z tính từ mảng y theo công thức Dean: z = -0.1 * y ^ (2/3); Trong cần ý phép tính lũy thừa cho phần tử Câu lệnh đơn giản để hiển thị mảng màu biểu thị z là: pcolor(x, y, z) Bảng màu mặc định dùng có tên jet.7 Ta thay bảng màu số bảng màu khác, chẳng hạn: colormap(gray); pcolor(x, y, z); Cần tên trục x y theo cách tương tự ta làm với biểu đồ dạng Hình 11: Bảng màu biểu thị địa hình đáy biển với đường: mặt cắt ngang cân theo Dean xlabel('x(m)'); ylabel('y(m)'); Có thể hiển thị thích bên cạnh bảng màu lệnh: colorbar Viết thêm dòng chữ z(m) bên cạnh dẫn màu cách Insert – Text Box Xóa bỏ đường bao hình chữ nhật cách nháy phải chuột – Line Style – None Chú ý đồ địa hình / vẽ mặt bằng, hầu hết trường hợp ta muốn đặt tỷ lệ hai trục x y Khi ta dùng lệnh: axis equal; x y ma trận chiều Do điểm lưới xếp theo hàng nên ta nhận thấy phần tử giống 10  cột x (các điểm có 0tọa độ  x); và0 tương tự y 0 10  x=   10  200 200  200 y=  200 [ ][   200   200 ] Bảng màu jet rực r ỡ không hiệu in trắng đen, thay vào nên dùng bảng màu gray - 56 - Bài giảng Tin Ứng dụng – Matlab Tiếp theo ta có khung đồ thị lại cho vừa với bảng màu 8: axis tight; 160 3 140 -2.5 120 -2.5 -2.5 100 y (m) Bên cạnh cách dùng biểu đồ mảng màu, biểu thị dạng đường đồng Cách mức thường dùng với in lên giấy: [C,h] = contour(x,y,z);9 80 60 -2 -2 -2 -1 -1.5 -1.5 Các đường đồng mức đáy biển xuất -1 -1 -1 20 song song với trục x, cần phải -0.5 -0.5 -0.5 0 50 100 150 200 có x (m) giá trị số đường đồng mức: clabel(C,h); Hình 12: Đường đồng mức biểu diễn địa Và mảng màu, ta hình đáy biển với mặt cắt theo Dean chỉnh trục cách hợp lý: axis equal tight; xlabel('x(m)'); ylabel('y(m)'); Ta biểu diễn địa hình dạng không gian (3 chiều) sử dụng lệnh surf mesh: figure; surf(x, y, z); figure; mesh(x, y, z); Sau côngđó cụ ( sử ) dụng công cụ xoay hình cách ấn nút Rotate 3D 40 Hai lệnh gộp lại thành lệnh axis equal tight Cách viết khác với câu lệnh thông thường, nhiên theo MatLab, lệnh vẽ viết dạng hàm Chẳng hạn, gõ thử lệnh zzz = plot(t, z) Mặt khác, có khác ta gõ lệnh clabel(contour(x,y,z)); ? - 57 - Bài giảng Tin Ứng dụng – Matlab Hình 13: Biểu diễn mặt cắt Dean dạng mặt chiều Hình 14: Biểu diễn mặt cắt Dean dạng lưới chiều 7.2 Chỉ định vị trí không gian chiều Khi thể liệu không gian mảng màu, số trường hợp ta phải vị trí thỏa mãn điều kiện Cách đơn giản đánh dấu chúng riêng Chẳngbằng hạn, chỉđiểm vị trí có z < -3 ví dụ Có hai bước sau:  Tìm số (i,j) ma trận có giá trị thỏa mãn z(i,j) < -3  Chấm điểm xác định x(i,j), y(i,j) lên mảng màu ind = find(z < -3); hold on; plot(x(ind), y(ind), 'k.'); Hình 15: Đánh dấu mảng màu chiều 7.3 Mặt cắt địa hình Trong nhiều trường hợp cần biểu diễn mặt cắt địa hình từ biểu đồ hai chiều Và tổng quát hơn, phân bố độ sâu nước, áp suất, độ mặn, hay biến đặc trưng dọc theo tuyến xác định mặt Số liệu mặt cắt lấy từ cột (hoặc hàng) từ mảng chiều tương ứng Chẳng hạn, mặt cắt có x = 100 m (tương ứng với cột thứ 11 (trong số 21 cột) ma trận z): - 58 - Bài giảng Tin Ứng dụng – Matlab ymc1 = y(11,:); zmc1 = z(11,:); plot(ymc1, zmc1, '*-'); xlabel('y (m)'); ylabel('z (m)'); 7.4 Trường véctơ Trong toán kỹ thuật thủy động lực thường yêu câu mô trường dòng chảy Biểu diễn dòng chảy không gian chiều hỗ trợ tốt MatLab câu lệnh: quiver(x, y, u, v) x, y hai ma trận chứa tọa độ tất điểm theo phương ngang (thường phát sinh lệnh meshgrid); u v hai ma trận chứa thành phần lưu tốc tất điểm (u lưu tốc theo phương x, v lưu tốc theo phương y) Giả sử thư mục thời có file data_u.txt data_v.txt, file chứa ma trận giá trị u v Khi đó, hai ma trận đọc sau: u = dlmread('data_u.txt'); v = dlmread('data_v.txt'); Giả sử u v đọc có kích thước giống = số điểm trục x × số điểm trục y: [sizex, sizey] = size(u); Ta muốn biểu diễn lên hình với, chẳng hạn, Δx = 10 m Δy = m: dx = 10; dy = 5; [x, y] = meshgrid(0:dx:(sizex – 1)*dx, 0:dy:(sizey -1) * dy); figure; quiver(x, y, u, v); xlabel('X(m)'); ylabel('Y(m)'); axis equal tight; - 59 - Bài giảng Tin Ứng dụng – Matlab 50 40 Y (m) 30 20 10 0 20 40 60 80 X(m) Hình 16: Biểu diễn trường vec-tơ - 60 - Bài giảng Tin Ứng dụng – Matlab PHẦN BÀI TẬP Bài tập số 1: Tính toán sóng theo số liệu sau: o o o T = s, H = m, α = 30 •G 塶 trị cho biến T, Ho, •T 塶 h Co gi alpha0 •T 塶 h L o •Mở file disperse.m cách gõ>> edit disperse •Với file mở gõ vào nội dung sau:function [L] = disperse(h, Lo) L = Lo; err = Inf; while err > 0.1; Ltry = Lo * tanh(2*pi*h / L); err = abs(Ltry - L); L = Ltry; end; •Hãy vec-tơ chứa độcác sâugiá khác m, trước 3.2 m, , m •Ta đãthiết thiếtlập lậpmột hàm htính L từ trị hnhau: Lo3cho Tính L độ sâu cho h •T 塶 h C tương ứng với L •Tính sin_alpha theo công thức sinα = sinα * C / Co(chú ý đơn vị độ !) o •T 塶 h alpha (d 塶 g lệnh asin) •T 塶 h Kr = sqrt(cosα / cosα) o •T 塶 h Ksh theo c 塶 g thức Ksh = •Tính H = Ho × Ksh × Kr •Ghi lại c 塶 gi trị H - 61 - Bài giảng Tin Ứng dụng – Matlab •Viết kết f ile ketqua.txt Bài tập số Quan hệ vận chuyển bùn cát S lưu tốc u có quan hệ dạng: S = aub Để xác định hệ số a b người ta tiến hành thí nghiệm thu kết u (m/s) 0.2 0.35 0.57 0.68 0.81 0.96 1.12 sau: 0.0002 0.0018 0.0159 0.0282 0.0609 0.1258 0.2858 S (m3 /s.m) 1) Hãy nhập giá trị u S vào hai vec-tơ, sau tính X Y logarit tương ứng u S 3) Vẽ đồ thị điểm X Y 4) Hai hệ số a b xác định cách dựa vào quan hệ: Sử dụng a log S = loghàm a + polyval b log u, để haytính Y =bbvà X log + log a phương trình sau: p = polyval(X, Y, 1) Phần tử đầu vec-tơ p b; phần tử thứ p log a Hãy tính a 4) Vẽ đồ thị đường thẳng: Y = b X + log a lên hệ trục với điểm câu 2) chấm Bài tập số 1) Một chuỗi số liệu đo đạc vận tốc dòng chảy phát sinh bởi: t = 0:0.5:48; N dãy số ngẫu nhiên có chiều dài length(t) u = 0.4 + 0.12 sin(2π t / 24) + 0.05 N 2) Tính ứng suất tiếp ven bờ, biết C = 60 m0.5 /s τ = ρ g u2 / C2 Thiết lập subplot hàng × cột Hai vùng vẽ hai đồ thị u ~ t, τ ~ t 3) Nếu bờ có thành phần đất sét với ứng suất tiếp tới hạn τ c = 0.65 N/m2, xem có thời điểm xuất τ > τc - 62 - Bài giảng Tin Ứng dụng – Matlab 4) Công thức xói lở đường bờ xác định bởi: Hãy tính khoảng cách xói lở E E = 10 (τ – τc) τ > trường hợp τc= lại Vẽ E ~ t lên vùng đồ thị tạo subplot Bài tập số 4: Cho véctơ X = [10 20 30] Y = [10 40 30] Tính diện tích tam giác tạo đỉnh có tọa độ X(2)Y(2), X(1)Y(1), Tổng quát hơn, tính diện tích đa giác n cạnh (trên mặt phẳng chiều) với X(3)Y(3) tọa độ xi yi đỉnh thứ i cho phần tử thứ i véctơ X Y tương ứng (do X Y véctơ có chiều dài = n) LỜI GIẢI Bài tập số 1: Hướng dẫn: tạo script file có tên baitap1.m, soạn thảo nội dung đây, ghi lại Sau chạy file này, ta thu kết % baitap1 % Inputs: T, H0, alpha0 % Outputs: C0, L0, L % clear all; g=9.81; T=8; H0=2; alpha0=30; % L0=g*T^2/(2*pi) -C0 = L0/T; -h=[3:0.2:4] % n=length(h); % for i = 1:n - 63 - Bài giảng Tin Ứng dụng – Matlab % L(i)=disperse(h(i), L0); % end; L = disperse(h,L0); % Wave length C=L/T sin_alpha=sin(alpha0)/C0*C alpha = asin(sin_alpha) % Wave celerity % arcsin Kr=sqrt(cos(alpha0)./cos(alpha)) % Refraction coefficient k=2*pi./L % Wave number Ksh=sqrt(1./tanh(k.*h)/(1+2*k.*h/sinh(2*k.*h))) % Shoaling coefficient H=H0*Ksh.*Kr % Wave height Bài tập số 2: Hướng dẫn: tạo script file có tên baitap2.m, soạn thảo nội dung đây, ghi lại Sau chạy file này, ta thu kết (Bài làm theo bước lớp: tính log(u), log(S), vẽ lên trục tọa độ thường (không vẽ lên trục loga ta tính giá trị loga rồi), xác định hệ số a, b đường thẳng cách gần đồ thị) Bài tập số 3: Hướng dẫn: tạo script file có tên baitap3.m, soạn thảo nội dung đây, ghi lại Sau chạy file này, ta thu kết clear all; t=0:0.5:48 N=rand(1,length(t)); u=0.4+0.12*sin(2*pi*t/24)+0.05*N plot(N); hold on; plot(u,'+'); C=60; Rho = 1000; g=9.81; To = Rho*g/C^2*u.^2 plot(t,To) hold on grid on * (To Toc) + Bài tập số 4: Hướng dẫn: Lần lượt thực bước sau: Tạo script file có tên baitap4.m, soạn thảo nội dung đây, ghi lại - 64 - Bài giảng Tin Ứng dụng – Matlab function Sdagiac = dientich(x,y); % Tinh dien tich da giac n = length (x); m = length (y); if m ~=n 'Error: vecto X va Y can co chieu dai bang nhau!' else Sdagiac = 0; for i = 1:(n-1) Sdagiac = Sdagiac + 0.5*(y(i)+y(i+1))*(x(i+1)-x(i)); end Sdagiac = Sdagiac + 0.5*(y(n)+y(1))*(x(1)-x(n)); end Vừa ta tạo hàm Matlab, với tên hàm dientich Sử dụng hàm ta dễ dàng tính diện tích đa giác nói chung tam giác nói riêng cách gọi hàm từ cửa sổ nhập lệnh  >> dientich(X,Y) Lưu ý hàm tính diện tích ngầm định véc tơ X, Y chứa số liệu cho trước tọa độ đỉnh đa giác theo quy ước Hơn nữa, nhập tọa độ ta đánh số đỉnh từ đến n theo chiều kim đồng *hồ Để tính diện tích tam giác S với chiều dài cạnh cho trước a, b, c, bạn thử thuật toán khácSnhư sau: a)( p  b)( p   p(p c) với p=(a+b+c)/2 nửa chu vi - 65 - Bài giảng Tin Ứng dụng – Matlab TÀI LIỆU THAM KHẢO: Matlab R14 - Helps & Demos, The Mathworks, Inc., 2004 David F Griffths, An introduction to Matlab, Department of MathematicsThe University of Dundee – Sweden, 1996 John M Stockie, A Whirlwind Tour of MATLAB for Students of CS 3113, Department of Mathematics and Statistics, University of New Brunswick Canada, 2003 Bill Mason, Introduction to Matlab, Northeastern University - College of Computer and Information Science – USA, 2003 Tobin A Driscoll, Crash course in MATLAB, Department of Mathematical Sciences - University of Delaware – USA, 2006 Nguyễn Hoàng Hải & Nguyễn Việt Anh, Lập trình Matlab ứng dụng, NXB Khoa học Kỹ thuật – Hà Nội, 2005 Nguyễn Phùng Quang, Matlab & Simulink dành cho kỹ sư điều khiển tự động, NXB Khoa học & Kỹ thuật – Hà Nội, 2006 10 Knight A., Basics of MatLab® and beyond, CRC Press, 2000 Nguyễn Phương Thảo, Programming in Matlab, handouts, 2007 12 Timothy A Davis & Kermit Sigmon, Matlab® Primer, Chapman & ĐH Thủy Lợi, Matlab version 7.0 bản, Khóa tin học nâng cao cho Hall/CRC cán giảng dạy dự án 95 NN&PTNT, handouts, 2007 14 R J Braun, Beginning Matlab Exercises, Department of Mathematical Sciences – University of Delaware – USA - 66 - [...]... quả: Matlab cho ta một bản tóm tắt hệ tử thống trợkýgiúp.Một vài dòng - (operators) Cácvề toán và các tự đặc biệt đầu tiên của kết quả sẽ như sau: matlab/ lang HELP topics: (Các chủ đề trợ giúp) matlab/ elmat - (language) Ngôn ngữ lập trình matlab/ elfun matlab/ specfun - (elementary) Ma trận căn bản - (elementary functions) Các hàm toán căn bản -một Thông bạn lệnhthường Matlab Do đó bạn có thể sử dụng. .. liên quan tới Logarit Hình 1 : Giao diện cửa sổ Help của Matlab 7.0 1.8 History & Editing - Trong giao diện mặc định của Matlab, cửa sổ 'Command History' (lịch sử các lệnh) nằm ở góc phần tư bên dưới, phía trái Trong cửa sổ này, các lệnh đã sử dụng trong các lần khởi động Matlab gần đây đều được lưu lại Mỗi lần khởi động Matlab, toàn bộ các lệnh sử dụng trong lần đó sẽ được lưu lại dưới dạng một nhóm có... off' vào cửa sổ lệnh sẽ đưa Matlab trở về cách cư xử thông thường, không duyệt từng trang - 12 - - Thông thường bạn có thể không nhớ chính xác tên của một lệnh Matlab, trong trường hợp đó bạn có thể sử dụng lệnh 'lookfor' (tìm kiếm) như một Bài giảng Tin Ứng dụng 2 – Matlab 7 Ví dụ, nếu bạn đánh vào dòng lệnh 'lookfor logarithm', Matlab sẽ liệt kê tất cả các hàm từng biết của Matlab có liên quan tới Logarit... con trỏ trong dòng lệnh tại dấu nhắc của Matlab, như vậy chúng ta có thể sửa dòng lệnh Thêm nữa, có thể dùng chuột cùng với bộ nhớ đệm để cắt, copy, dán và sửa văn bản tại dấu nhắc của dòng lệnh - 14 - Bài giảng Tin Ứng dụng 2 – Matlab 7 2 CHƯƠNG II: TÍNH TOÁN TRONG MATLAB 2.1 Matlab - một máy tính cá nhân * Giới thiệu các toán tử số học: - Các toán tử số học của Matlab hoạt động theo một cú pháp rất... cả hai thường được sử dụng như các chỉ số của vòng lặp Việc gán lại giá trị khác cho các hằng số này là chấp nhận được vì số phức luôn có thể thu được bằng cách sử dụng sqrt(-1) 2.7 Các hàm dựng sẵn - Cũng như những ngôn ngữ bậc cao khác, Matlab thực thi các 'function' (hàm) nhiều hơn 'procedure' (chương trình con) Các hàm này bao gồm căn bậc hai - 20 - Bài giảng Tin Ứng dụng 2 – Matlab 7 (sqrt), lũy... Matlab ^ * Ví dụ: Lũy thừa ma trận >> 2^3-3 ans = 5 >> ans*6 ans = 30 - Kết quả của phép tính thứ nhất được Matlab gán cho biến 'ans', biến này được sử dụng cho phép tính thứ hai, qua đó giá trị của nó đã được thay đổi (được gán lại) - Chúng ta có thể sử dụng tên riêng do ta đặt để lưu các giá trị số >> x = 2^3-3 x = 5 >> y = x*6 y = 30 từ đó 'x' có giá trị bằng 5 và 'y' bằng 30 Chúng có thể được sử. .. haima thuật này đượcm dùng Matlab đôi khi không có một sự phân biệt chính thức nào, thậm chí là giữa một đại lượng vô hướng và một ma trận kích thước 1x1 - Các lệnh có thể được sắp xếp theo sự phân biệt giữa mảng/ma trận, nhưng Matlab thường cho phép bạn sử dụng chúng lẫn lộn một cách thoải mái Ý tưởng ở - 27 - Bài giảng Tin Ứng dụng 2 – Matlab 7 đây (và bất cứ chỗ nào khác) là Matlab muốn giữ cho ngôn... tượng, và kiểu dữ liệu liên quan tới Java - 17 - Bài giảng Tin Ứng dụng 2 – Matlab 7 Hình 2.1 Các kiểu dữ liệu của Matlab * Định dạng kết quả: - Sử dụng lệnh 'format' cùng các định dạng Lệnh này chỉ làm thay đổi cách mà kết quả được hiển thị trên màn hình, không làm thay đổi độ chính xác của số hoặc phép tính Hầu hết các phép tính số học của Matlab được thực hiện với độ chính xác Double, nghĩa là độ chính... Sử dụng Help - Trợ giúp và thông tin về các lệnh của Matlab có thể được tìm thấy theo nhiều cách: + Từ dòng lệnh bằng cách đánh lệnh 'help chủ đề' (xem dưới đây) + Từ cửa sổ Help riêng biệt xuất phát ở Menu Help + Từ helpdesk của Matlab lưu trữ trên đĩa hoặc CD-rom, hoặc + Từ mạng Internet - Từ dòng lệnh, đơn giản nhất và Enter! - Các hãy matlab/ general lệnhđánh với lệnh mục 'help' đích tổng quát matlab/ ops... quả của hai lệnh gán đầu tiên đã được ẩn đi - 26 - Bài giảng Tin Ứng dụng 2 – Matlab 7 3 CHƯƠNG III: VECTƠ 3.1 Giới thiệu - Đại số tuyến tính là trái tim và là phần hồn của Matlab Trong thực tế thì ban đầu Matlab là từ viết tắt của “ matrix laboratory’ Vì vậy hơn bất kỳ ngôn ngữ nào khác, Matlab khuyến khích và trông đợi bạn tận dụng mọi khả năng của các mảng, véctơ và ma trận * Một vài thuật ngữ trong

Ngày đăng: 30/10/2016, 11:59

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN