1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình phần mềm tính toán matlab

74 4,3K 14

Đ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

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 902,5 KB

Nội dung

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG GIÁO TRÌNH: PHẦN MỀM HỖ TRỢ TÍNH TOÁN MATLAB Số tin chỉ: 3 Hệ đào tạo: Chính quy Ngành: Công nghệ thông tin Khoa Công nghệ thông tin Họ tên giảng viên: Trần Hải Thanh Đơn vị công tác: Bộ môn Khoa học máy tính 1 MỤC LỤC MỤC LỤC 2 CHƯƠNG 1 3 NHẬP MÔN MATLAB 3 1.1 Giới thiệu Matlab 3 1.2 Hệ thống Matlab 4 1.3 Câu lệnh và các biến trong Matlab 5 1.3.1 Đặc điểm biến trong Matlab 5 1.3.2 Một số lệnh đối với biến 5 1.3.3 Một số biến đã được định nghĩa trước 6 1.3.4 Biến toàn cục (Global variable) 7 1.4 Script file(M_File) 7 1.5 Hàm M_File 9 1.6 Vẽ các hàm 12 CHƯƠNG 2 14 MA TRẬN VÀ CÁC PHÉP TOÁN TRÊN MA TRẬN 14 2.1 Các phép toán số học và logic trong Matlab 14 2.1.1 Phép toán số học 14 2.1.2 Các phép toán quan hệ 15 2.1.3 Các phép toán logic và các hàm logic 15 2.1.4 Số phức và các phép toán về số phức 16 2.1.5 Các hàm toán học 17 2.2 Ma trận 17 2.3 Xử lý trong ma trận và vector 20 2.4 Các ma trận đặc biệt 21 2.5 Các phép toán vector 22 2.6 Các phép toán về ma trận 23 2.7 Các hàm logic trên ma trận và vector 26 CHƯƠNG 3 27 LẬP TRÌNH TRONG MATLAB 27 3.1 Cấu trúc if-else-end 27 3.2 Cấu trúc switch-case 28 3.3 Cấu trúc lặp 29 CHƯƠNG 4 32 CÁC HÀM TOÁN HỌC TRONG ĐẠI SỐ VÀ GIẢI TÍCH SỐ 32 4.1 Các phép tính đối với đa thức và tối ưu hoá 32 4.1.1 Các phép tính đối với đa thức 32 4.1.2 Hàm eval tính giá trị của hàm một biến 37 4.1.3 Tìm cực trị của hàm 38 4.1.4 Tìm giá trị không 39 4.2 Phép lấy tích phân 41 4.3 Phép lấy vi phân 43 CHƯƠNG 5 46 ĐỒ HOẠ HAI CHIỀU 46 5.1 Sử dụng lệnh plot 46 5.2 Kiểu đường, dấu và màu 49 5.3 Kiểu đồ thị 51 5.4 Đồ thị lưới, hộp chứa trục, nhãn và lới chú giải 52 5.5 Kiến trúc hệ trục toạ độ 55 2 5.6 In hình 56 5.7 Thao tác với đồ thị 56 CHƯƠNG 6 59 ĐỒ HOẠ TRONG KHÔNG GIAN BA CHIỀU 59 6.1 Đồ thị đường thẳng 59 6.2 Đồ thị bề mặt và lưới 60 6.3 Thao tác với đồ thị 63 6.4 Các đặc điểm khác của đồ thị trong không gian ba chiều 66 6.5 Bảng màu 67 6.6 Sử dụng bảng màu 68 6.7 Sử dụng màu để thêm thông tin 69 6.8 Hiển thị bảng màu 70 6.9 Thiết lập và thay đổi bảng màu 72 CHƯƠNG 1 NHẬP MÔN MATLAB 1.1 Giới thiệu Matlab MatLab là một phần mềm chuyên dụng chạy trong môi trường Windows do hãng MathWork sản xuất và cung cấp. Có thể coi MatLab là một ngôn ngữ tính toán, kỹ thuật. Nó tích hợp các công cụ rất mạnh phục vụ tính toán, lập trình, thiết kế, mô phỏng,… trong một môi trường rất dễ sử dụng trong đó các bài toán và các lời giải được biểu diễn theo các ký hiệu toán học quen thuộc. Các ứng dụng điển hình: - Toán học tính toán - Phát triển thuật toán - Tạo mô hình, mô phỏng - Khảo sát, phân tích số liệu - Đồ hoạ khoa học kỹ thuật - Phát triển ứng dụng, gồm cả xây dựng giao diện người dùng đồ hoạ GUI Matlab là một hệ thống tương tác mà phần tử dữ liệu cơ bản là một mảng mà không cần khai báo kích thước. Điều này cho phép giải nhiều bài toán kỹ thuật , đặc biệt là các bài toán liên quan đến ma trận và vector. Matlab (Matrix Laboratory). 3 Ban đầu Malab được viết chỉ để phục vụ cho việc tính toán ma trận. Trải qua thời gian dài, nó đã được phát triển thành một công cụ hữu ích, một ngôn ngữ của tính toán kỹ thuật. Trong môi trường đại học, nó là một công cụ chuẩn cho các khoá học mở đầu và cao cấp về toán học, khoa học và kỹ thuật. Trong công nghiệp, nó là công cụ được lựa chọn cho việc phân tích, phát triển và nghiên cứu hiệu suất cao. Malab cung cấp một họ các giải pháp theo hướng chuyên dụng hoá được gọi là các Toolbox. Các toolbox cho phép người sử dụng học và áp dụng các kỹ thuật chuyên dụng cho cho một lĩnh vực nào đó. Toolbox là một tập hợp toàn diện các hàm của Matlab (M-File) cho phép mở rộng môi trường Matlab để giải các lớp bài toán cụ thể. Các lĩnh vực trong đó có sẵn các toolbox bao gồm: xử lý tín hiệu, hệ thống điều khiển, logic mờ, mô phỏng,… 1.2 Hệ thống Matlab Hệ thống Matlab gồm 5 thành phần chính: - Ngôn ngữ Matlab: là một ngôn ngữ ma trận, mảng cấp cao với các câu lệnh, hàm, cấu trúc dữ liệu, vào/ ra, các tính năng lập trình hướng đối tượng. Nó cho phép lập trình các ứng dụng từ nhỏ đến các ứng dụng lớn và phức tạp. - Môi trường làm việc Matlab: Đây là một bộ các công cụ và phương tiện mà ta sử dụng hoặc lập trình. Nó bao gồm các phương tiện cho việc quản lý các biến trong không gian làm việc Workspace cũng như xuất nhập dữ liệu, gỡ rối,… - Xử lý đồ họa: Đây là hệ thống đồ hoạ của Matlab. Nó bao gồm các lệnh cao cấp cho trực quan hoá dữ liệu hai chiều và ba chiều, xử lý ảnh, ảnh động,… Nó cung cấp các lệnh cấp thấp cho phép ta tuỳ biến giao diện đồ họa cũng như xây dựng một giao diện đồ hoạ mạnh và hoàn chỉnh các ứng dụng của Matab. - Thư viện toán học Matlab: Đây là tập hợp khổng lồ các thuật toán tính toán từ các hàm cơ bản như sin, cos,… tới các hàm cấp cao như nghịch đảo ma trận, tìm trị riêng ma trận,… 4 - Giao diện chương trình ứng dụng Matlab API (Application program Interface): Đây là thư viện cho phép viết các chương trình C và Fortran tương thích với Matlab, Simulink, một chương trình đi kèm với Matlab, là một hệ thống tương tác với việc mô phỏng các hệ động học phi tuyến. Nó là một chương trình đồ hoạ sử dụng chuột để thao tác cho phép mô hình hoá một hệ thống bằng cách vẽ một sơ đồ khối trên màn hình. Nó có thể làm việc với các hệ thống tuyến tính, hệ thống phi tuyến, hệ thống liên tục theo thời gian, hệ gián đoạn theo thời gian,… 1.3 Câu lệnh và các biến trong Matlab 1.3.1 Đặc điểm biến trong Matlab - Không cần khai báo biến và kiểu của biến. Tuy nhiên trước khi gán một biến bởi một biến khác thì cần đảm bảo rằng biến ở bên phải phép gán có một giá trị xác định. - Bất kỳ một phép toán nào gán một giá trị vào một biến sẽ tạo ra biến đó nếu cần (biến đó chưa xác định) hoặc ghi đè lên giá trị hiện tại nếu nó đã tồn tại trong workspace - Tên biến bao gồm một dãy các chữ cái, chữ số và dấu gạch dưới và một số ký tự đặc biệt (bắt đầu bằng chữ cái), MatLab phân biệt chữ in hoa và in thường, độ dài tối đa là 31 ký tự: Bình thường Matlab có sự phân biệt các biến tạo bởi chữ cái thường và chữ cái in hoa. Các lệnh của Matlab nói chung thường sử dụng chữ cái thường. Việc phân biệt đó có thể được bỏ qua nếu ta thực hiện lệnh: casensen off 1.3.2 Một số lệnh đối với biến Clear: lệnh xoá tất cả các biến đã được định nghĩa trước trong chương trình. Lệnh gán(=): dùng để gán giá trị cho biến Ví dụ: >> h=3+5 ↵ h = 8 >> k=h+2 5 k = 10 Lời giải thích(%): Các ký hiệu sau dấu % đều bị bỏ qua. Clear biến 1, biến 2…: Xoá các biến đã được liệt kê trong câu lệnh. Who: Hiển thị các biến đã được định nghĩa trong chương trình. Whos: hiển thị các biến đã được định nghĩa trong chương trình cùng với các thông số của biến. Size(Tên biến đã được định nghĩa): Cho biết kích cỡ của biến dưới dạng ma trận với phần tử thứ nhất là số hàng của ma trận, phần tử thứ 2 là số cột của ma trận. Save: Lưu giữ các biến vào một File có tên là Matlab.mat Load: Tải các biến đã được lưu giữ trong một File đưa vào vùng làm việc X= input(dòng thông báo): Lệnh vào dữ liệu cho biến x từ bàn phím. Disp(Biểu thức): Lệnh hiển thị dữ liệu lên màn hình. 1.3.3 Một số biến đã được định nghĩa trước Ans: tự động gán tên này cho kết quả của một phép tính mà ta không đặt tên Realmax: đưa ra giá trị của số lớn nhất mà máy tính có thể tính toán được. Ví dụ: >> realmax ↵ ans = 1.7977e+308 Realmin: Đưa ra giá trị của số nhỏ nhất mà máy tính có thể tính toán được. Ví dụ: >> realmin ↵ ans = 2.2251e-308 i, j: đơn vị ảo của số phức. inf: infinity - Vô cùng lớn Nan: Not a number - biểu diễn dạng 0/0, ∞/∞ Eps: độ sai số nhỏ nhất. Nếu cộng với một được một số nhỏ nhất lớn hơn một. Ví dụ: 6 >> eps ↵ ans = 2.2204e-016 >> 1+eps ans = 1.0000 1.3.4 Biến toàn cục (Global variable) Matlab cho phép sử dụng cùng một biến cho các hàm hoặc giữa các hàm và chương trình chính của Matlab, điều này được thông qua việc khai báo biến toàn cục. Global biến 1 biến 2 … (Lưu ý các biến cách nhau bằng dấu khoản trống, không sử dụng dấu phẩy) Việc khai báo biến toàn cục phải được thực hiện ở chương trình chính hoặc ở File lệnh (scrìptile) hoặc ở file hàm (Function) có sử dụng các biến. Biến toàn cục có tác dụng cho đến khi kết thúc quá trình tính toán hoặc khi toàn bộ Workspace được xoá. Không được đưa tên biến toàn cục vào danh sách các đối số của hàm. Khi sử dụng biến toàn cục các lệnh sau tỏ ra rất cần thiết. Để loại bỏ các biến toàn cục ta sử dụng lệnh Clear global Để kiểm tra xem một biến có là biến toàn cục hay không ta dùng lệnh isglobal(Tên biến), nếu là biến toàn cục thì trả về giá trị là 1, ngược lại trả về giá trị 0. 1.4 Script file(M_File) Trong Matlab, yêu cầu tại dấu nhắc của Matlab trong cửa sổ lệnh là nhanh và hiệu quả. Tuy nhiên vì số lệnh tăng lên, hoặc khi muốn thay đổi giá trị của một hoặc nhiều biến và thực hiện lại một số lệnh với giá trị mới, nếu cứ lặp đi lặp lại tại dấu nhắc thì sẽ trở nên buồn tẻ, do vậy Matlab cung cấp một giải pháp cho vấn đề này là: Cho phép thay thế các lệnh của Matlab bằng một file văn bản đơn giản, và yêu cầu Matlab mở file thực hiện lệnh chính xác như là tại dấu nhắc của Matlab tại cửa sổ lệnh, những file này gọi là Script file hay còn gọi là M_file. Danh từ Script để chỉ rằng thực tế Matlab đọc từ file kịch 7 bản tìm thấy trong file. Danh từ M_file để chỉ rằng tên script file đó phải kết thúc bằng phần mở rộng là ‘.m’. Tên của file phải bắt đầu bằng một ký tự. Các bước thực hiện như sau: Bước 1: File/ New/ M-file, môi trường soạn thảo Editor/ Debugger xuất hiện B ước 2: Trên màn hình soạn thảo gõ vào các lệnh sau: %tinh gia tri bieu thuc x=input('Nhap x='); y=x+3; z=y+4; y z disp(y); disp(z); Bước 3: Ghi lại nội dung tập tin với tên vidu.m rồi trở về cửa sổ lệnh. Bước 4: Tại cửa sổ lệnh gõ tên tệp tin, ta được kết quả sau: >> vidu ↵ Nhap x=3 ↵ y = 6 z = 10 8 6 10 1.5 Hàm M_File Khi sử dụng các hàm của Matlab như hàm sin, cos,… Matlab nhận giá trị truyền vào, sau đó hàm trả về kết quả tính toán. Các lệnh tính toán bằng hàm cũng như các biến trung gian được tạo ra bởi các lệnh này ta đều không nhìn thấy, tất cả những gì thấy được chỉ là giá trị nhập vào và các giá trị đưa ra, vì vậy có thể coi một hàm như một hộp đen. Các thuộc tính này làm cho hàm trở lên hữu dụng đối với các lệnh tính toán mà phải dùng đến các hàm toán học phức tạp thường xuất hiện khi ta giải quyết vấn đề lớn. Dựa vào ưu điểm này, Matlab cung cấp một cấu trúc để ta có thể tự tạo một hàm cho mình dưới dạng M_file. Cú pháp khai báo hàm M_file: Funtion [tên kết quả] = tên hàm[(danh sách các biến)] Phần thân của chương trình hàm là các lệnh của Matlab thực hiện việc tính toan giá trị của đại lượng được nêu trong phần tên kết quả theo các biến được nêu trong phần danh sách các biến. Các biến chỉ có tác dụng nội trong hàm khai bào, các biến trong danh sách được phân cách nhau bởi dấu phẩy “,” Các quy luật và thuộc tính của hàm M_file Hàm M_file phải tuân theo những quy luật và thuộc tính nhất định, ngoài ra chúng còn có một số tính chất sau: (1) Tên hàm phải trùng tên file (tên hàm không có phần mở rộng ‘.m’) (2) Khi Matlab thực hiện lần đầu hàm M_file, nó sẽ mở file văn bản tương ứng và dịch dòng lệnh của file đó ra một dạng mã lưu trong bộ nhớ nhằm mục đích tăng tốc độ thực hiện các lời gọi hàm tiếp theo. Nếu trong hàm có chứa lời gọi hàm M_file khác thì các hàm đó cũng được dịch vào trong bộ nhớ. (3) Các dòng chú thích cho tới dòng đầu tiên không phải là chú thích trong hàm M_file là những dòng văn bản, nó sẽ hiện ra khi sử dụng lệnh Help. 9 Ví dụ: >> help vidu ↵ tinh gia tri bieu thuc (4) Mỗi hàm có một không gian làm việc riêng tách biệt so với môi trường Matlab, mối quan hệ duy nhất giữa các biến trong hàm với môi trường Matlab là các biến vào ra của hàm đó. Nếu bản thân hàm giá trị bị thay đổi thì sự thay đổi này chỉ tác động bên trong của hàm đó mà không làm ảnh hưởng đến các biến của môi trường Matlab. Các biến được tạo ra bên trong một hàm thì chỉ nằm trong không gian làm việc của hàm đó và được giải phóng khi hàm kết thúc, vì vậy không thể sử dụng thông tin của lần gọi trước cho lần gọi sau. (5) Số các tham số vào và ra khi một hàm được gọi thì chỉ có tác dụng bên trong hàm đó. Biến nargin chứa các tham số đưa vào. Biến nargout chứa các giá trị đưa ra. Trong thực tế thì các biến này thường được sử dụng để xác định giá trị ra dựa vào số lượng các đối số đưa vào. (6) Việc thi hành hàm M_file sẽ kết thúc khi gặp dòng cuối cùng của file đó hoặc gặp dòng lệnh Return giúp ta kết thúc một hàm mà không cần phải thi hành hết các lệnh của hàm đó. Ví dụ: Tính giá trị tổng bình phương hai số được nhập từ bàn phím Bước 1: Tạo hàm M_file: % ham M_file function y=fvidu(x1,x2) y=x1*x1+x2*x2; vao=nargin ra=nargout Sau đó ghi tên file: fvidu.m Bước 2: Tạo script file %Scip file 10 [...]... tuyến tính Phép toán mảng được thực hiện tương ứng từng phần tử, chẳng hạn phép nhân mảng hai ma trận A{a(i,j)} và B{b(i,j) } được thực hiện bằng cách nhân tương ứng từng phần tử của A và B c(i,j)=a(i,j)*b(i,j) Để phân biệt giữa phép toán ma trận và phép toán mảng người ta đưa thêm vào trước các toán tử một dấu chấm “.” Phép toán ma trận theo luật Phép toán mảng không theo đại số tuyến tính Phép toán Toán... Lập chương trình nhập vào từ bàn phím ba số thực a,b,c Sau đó vẽ đồ thị của hàm số y=ax2+bx+c (sử dụng file hàm và script file) 13 CHƯƠNG 2 MA TRẬN VÀ CÁC PHÉP TOÁN TRÊN MA TRẬN 2.1 Các phép toán số học và logic trong Matlab 2.1.1 Phép toán số học Matlab có hai kiểu phép toán số học, đó là phép toán ma trận (matrix arithmatic operation) và phép toán mảng (array arithmatic operation) Phép toán ma trận... hồ Tính định thức ma trận: det(A) Tính hạng của ma trận A: rank(A) 2.7 Các hàm logic trên ma trận và vector Trong phần trước ta đã biết một số các phép toán logic, thì ở phần này ta đề cập đến một số các hàm logic sau: Tên hàm any(x) all(x) isequal(A,B Chú thích Trả lại 1 nếu tồn tại một phần tử khác 0 trong x, trả lại 1 cho mỗi cột trong ma trận x mà có các phần tử khác 0 Trả lại 1 nếu tất cả các phần. .. thích Tạo vector hàng x chứa các phần tử đặc biệt Ví dụ >> x=[1 4 2] x= 1 4 2 Tạo vector hàng x bắt đầu tại first và kết thúc là phần >> x=1:4.3 2 X=first:last tử có giá trị nhỏ hơn hoặc x = 1 bằng last, phần tử sau bằng 2 3 4 phần tử trước cộng 1 Tạo vector x bắt đầu tại first, phần tử sau bằng phần >> x=1:2:6 3 X=first:inc:last tử trước cộng inc, kết thúc là x = 1 phần tử có giá trị nhỏ hơn 3 5 hoặc... or, xor, not 2.1.4 Số phức và các phép toán về số phức Biểu diễn số phức: Tên biến = Phần thực + Phần ảo i hoặc Tên biến = Phần thực + Phần ảo j Ví dụ: a= 2+3i Các phép toán đối với số phức: Cộng(+), trừ(-), nhân(*), chia(/) Các hàm đặc biệt trên số phức: x=a+bi real(x): Trả về phần thực của số phức x image(x): Trả về phần ảo của số phức x conj(x): Trả về số phức liên hợp của số phức x Ví dụ: >> x=1+1i... cho mỗi cột trong ma trận x mà tất cả các phần tử khác 0 Hàm trả lại 1 nếu A và B giống nhau ) isnumeric(x) 1 khi đối số là mảng số Bài tập Nhập vào ma trận An,n và vetor bn Hãy giải phương trình Ax=b 26 CHƯƠNG 3 LẬP TRÌNH TRONG MATLAB Các ngôn ngữ lập trình và máy tính có khả năng đều cho phép điều khiển vòng lặp của câu lệnh dựa trên những cấu trúc của nó Matlab đưa ra các dạng vòng lặp có điều khiển:... từng phần tử Sau đó tính định thức của ma trận A Nếu định thức khác không thì cho biết ma trận nghich đảo của A và giải hệ phương trình Ax = b, trong đó b là một vector gồm n phần tử được nhập từ bàn phím Còn ngược lại thì thông báo định thức bằng không Hiển thị kết quả ra màn hình 31 CHƯƠNG 4 CÁC HÀM TOÁN HỌC TRONG ĐẠI SỐ VÀ GIẢI TÍCH SỐ 4.1 Các phép tính đối với đa thức và tối ưu hoá 4.1.1 Các phép tính. .. một bài toán thường gặp trong thực tế Matlab có thể giải quyết những bài toán này và đồng thời cung cấp những công cụ để tính toán đa thức Trong Matlab một đa thức được biểu diễn bằng một vector hàng các hệ số với bậc giảm dần Ví dụ: đa thức x6+ x4 -7x3+ 20x+116 được nhập vào như sau: >> p=[1 0 1 -7 20 116]↵ p= 1 0 1 -7 20 116 Lưu ý: Mục dành cho hệ số 0 cũng phải được nhập vào, nếu không Matlab sẽ... không theo đại số tuyến tính Phép toán Toán tử Cộng + luật đại số tuyến tính Phép toán Toán tử Cộng + Trừ - Trừ - Nhân * Nhân .* Chia phải / Chia phải / 14 Chia trái \ Chia trái \ Luỹ thừa ^ Luỹ thừa .^ Phép gán = Phép gán = Thứ tự ưu tiên các phép toán Ngoặc đơn Luỹ thừa Nhân, chia Cộng, trừ 2.1.2 Các phép toán quan hệ Các phép toán quan hệ bao gồm - Nhỏ hơn: < - Nhỏ hơn hoặc bằng: ... last Tạo vector hàng x bắt đầu 4 X=linspace(first, last, n) tại first, kết thúc là last, vector có n phần tử >> x=linspace(2,8,4) x= 2 4 6 Truy nhập tới các phần tử của ma trận Matlab cho phép ta xử lý đến từng phần tử của ma trận Để truy nhập tới phần tử của ma trận ta sử dụng tới chỉ số của từng phần tử: Cú pháp: Tên ma trận(chỉ số hàng, chỉ số cột) Ví dụ: >> a=[1 3; 2 1] ↵ a= 1 3 2 1 >> a(1,2) ans . LỤC MỤC LỤC 2 CHƯƠNG 1 3 NHẬP MÔN MATLAB 3 1.1 Giới thiệu Matlab 3 1.2 Hệ thống Matlab 4 1.3 Câu lệnh và các biến trong Matlab 5 1.3.1 Đặc điểm biến trong Matlab 5 1.3.2 Một số lệnh đối với. trình ứng dụng Matlab API (Application program Interface): Đây là thư viện cho phép viết các chương trình C và Fortran tương thích với Matlab, Simulink, một chương trình đi kèm với Matlab, là một. Hệ thống Matlab Hệ thống Matlab gồm 5 thành phần chính: - Ngôn ngữ Matlab: là một ngôn ngữ ma trận, mảng cấp cao với các câu lệnh, hàm, cấu trúc dữ liệu, vào/ ra, các tính năng lập trình hướng

Ngày đăng: 10/09/2014, 23:58

TỪ KHÓA LIÊN QUAN

w