Chương I: Cơ sở Matlab Matlab là một ngôn ngữ lp trnh thực hành bc cao được s dụng để giải các bài toán về kỹ thut. Matlab tch hợp được việc tnh toán, thể hiện kt quả, cho php lp trnh, giao diện làm việc rất d dàng cho người s dụng. Dữ liệu cùng với thư viện được lp trnh sẵn cho php người s dụng có thể có được những ứng dụng sau đây. S dụng các hàm có sẵn trong thư viện, các php tnh toán học thông thường.
Cho php lp trnh to ra những ứng dụng mới. Cho php mô phỏng các mô hnh thực t. Phân tch, khảo sát và hiển thị dữ liệu. Với phần mềm đồ ho cực mnh.
Cho php phát triển, giao tip với một số phần mềm khác như C++, Fortran… 1.Tổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng Matlab là một hệ thống tương giao, các phần t dữ liệu là một mảng ( mảng này không đi hỏi về kch thước). Chúng cho php giải quyt các vấn đề liên quan đn lp trnh bằng máy tnh, đc biệt là các php tnh về ma trn hay vc tor và có s dụng ngôn ngữ C hoc Fortran lp trnh rồi thực hiện ứng dụng lp trnh đó bằng các câu lệnh gọi từ Matlab. Matlab được vit tắt từ chữ matrix laboratory tức là thư viện về matrn, từ đó phần mềm Matlab được vit nhằm cung cấp cho việc truy cp vào mềm ma trn một cách d dàng, phần mềm ma trn này được phát triển bởi các công trnh Linpack và Eispack. Ngày nay Matlab được phát triển bởi Lapack và Artpack to nên một nghệ thut phần mềm cho ma trn.
Dữ liệu Dữ liệu của Matlab thể hiện dưới dng ma trn ( hoc mảng - tổng quát), và có các kiểu dữ liệu được liệt kê sau đây. Kiểu đơn single, kiểu này có lợi về bộ nhớ dữ liệu v nó đi hỏi t byte nhớ hơn, kiểu dữ liệu này không được s dụng trong các php tnh toán học, độ chnh xác km hơn. Kiểu double, kiểu này là kiểu thông dụng nhất của các bin trong Matlab 7 Kiểu Sparse. Kiểu int8, uint8, int16….
Kiểu char, v dụ ‘ Hello’ Kiểu cell Kiểu Structure Trong Matlab kiểu dữ liệu double là kiểu mc định s dụng trong các php tnh số học.Ứng dụng Matlab ứng dụng rất rộng rãi trong nhiều lĩnh vực và nó s dụng rất nhiều các php tnh toán học. Với những đc điểm đó và khả năng thân thiện với người s dụng nên nó d dàng s dụng hơn các ngôn ngữ lp trnh khác như: Basic, Pascal, C. Matlab cung cấp một môi trường phong phú cho biểu din dữ liệu và có khả năng mnh mẽ về đồ họa, bn có thể to các giao diện riêng cho người s dụng (Graphical User Interface - GUIs) để giải quyt những vấn đề cho riêng mình. Thêm vào đó Matlab đưa ra những công cụ để giải quyt những vấn đề đc biệt, gọi là Toolbox (thư viện công cụ).
V dụ Student Edition của Matlab bao gồm cả Toolbox điều khiển tự động, Toolbox x l số liệu, Toolbox tnh toán trên bin hnh thức. Ngoài ra bn cũng có thể to Toolbox cho riêng mnh 1.Toolbox là một công cụ quan trọng của Matlab Công cụ này được Matlab cung cấp cho php bn ứng dụng các kỹ thut để phân tch, thit k, mô phỏng các mô hình. Ta có thể tm thấy toolbox ở trong môi trường làm việc của: Mng nơ ron Logic mờ Simulink 1. Hệ thống Matlab Hệ thống giao diện của Matlab được chia thành 5 phần: Môi trường phát triển.
8 Đây là nơi đt các thanh công cụ, các phương tiện giúp chúng ta s dụng các lệnh và các file, ta có thể liệt kê một số như sau: + Desktop + Command Window + Command History + Browsers for viewingghelp Thư viện, các hàm toán học Bao gồm các cấu trúc như tnh tổng, sin, cosin, actan2, etc…, các phép tính đơn giản đn các php tnh phức tp như tnh ma trn nghịch đảo, trị riêng, chuyển đổi furie, laplace, symbolic library. Ngôn ngữ Matlab Đó là ngôn ngữ cao về ma trn và mảng, với các dng lệnh, các hàm, cấu trúc dữ liệu vào, có thể lp trnh hướng đối tượng. Đồ hoạ trong Matlab 9 Bao gồm các câu lệnh thể hiện đồ ho trong môi trường 2D và 3D, to các hnh ảnh chuyển động, cung cấp các giao diện tương tác giữa người s dụng và máy tnh. Giao tiếp với các ngôn ngữ khác.
Matlab cho php tương tác với các ngôn ngữ khác như C, Fortran 1. Một số lệnh cơ bản trong Matlab 1. Cc php ton cơ bản = Gán giá trị cho bin + - * Các phép toán / ^ ; Xuất hiện ở cuối mỗi giá trị, ngầm định giá trị không cho xuất hiện giá trị trên màn hnh , Ngăn cách giữa các phần t (tương đương dấu cách) Eps Cấp chnh xác tương đối khi s dụng giá trị dấu phẩy động I ,j Toán t ảo Inf Vô cùng NaN Not a Number Pi Hằng số pi=3. Cc bin (khai bo và s dụng) Ch độ mc định kt quả của các bin được gán cho ans.
Nu s dụng dấu = ta có thể định nghĩa một bin và gán giá trị cho bin đó. Khi nhp tên của một bin mà không gán giá trị, ta thu được giá trị hiện ti của bin. Tên của bin có thể chứa tới 32 chữ cái, gch ngang thấp cũng như chữ số. Chữ vit hoa và chữ vit nhỏ đều được phân biệt.
Các giá trị có thể được thực hiện thành một chuỗi lệnh trong cùng một dng, chỉ cách nhau bởi dấu (;), nu dùng dấu (,) để tách các lệnh th giá trị được xuất ra màn hnh. V dụ: >>giatri_1=8; giatri_2=4; >>giatri_1=8 giatri_1= 8 >> x=giatri_1 + giatri_2, X= giatri_1 * giatri_2 x= 10 12 X= 32 1. Cc hàm đc biệt Trong Matlab có sẵn rất nhiều hàm toán, có thể liệt kê các hàm thường dùng trong bảng sau: Một số hàm toán học thông dụng Sqrt Căn bc hai Exp Lũy thừa cơ số e Sin Hàm sin Cos Hàm cos Tan Hàm tang Abs Lấy giá trị tuyệt đối hoc độ lớn của số phức Angle Góc pha của số phức Real Lấy phần thực của số phức Imag Lấy phần ảo của số phức sinh(x) Hàm tnh hyperbolic sine của x cosh(x) Hàm tnh hyperbolic cose của x deconv(a,b) Chia hai đa thức a và b Sum(v) Tổng các phần t vector Min(v) Phần t vector nhỏ nhất Max(v) Phần t vector lớn nhất Tất cả các hàm trong bảng đều có khả năng s dụng tnh toán với vector. Cc cấu trc dữ liệu cơ bản a.Vector và ma trn Để khai báo hoc x lý vector và ma trn thường là nhp trực tip, khi nhp trực tip, các phần t của một hàng được cách nhau bởi dấu phẩy hoc dấu cách trống, cn các hàng được cách bởi dấu; hoc ngắt dng.
>> A=[1 3 4;3 1 2] A= 1 3 4 11 3 1 2 >>B=[1 3 4;6 5 3] B= 1 3 4 6 5 3 Để truy cp từng phần t của vector hoc ma trn được thực hiện bằng cách khai báo chỉ số của phần t. Đc biệt, khi cần xuất mọi phần t của hàng hay cột, có thể s dụng toán t (:). Tnh toán với vector và ma trn Có nhiều php toán có thể áp dụng cho vector và ma trn: Để thực hiện php nhân hai ma trn làm như sau: >> a=[2 1 4;2 4 1;5 1 1]; >> b=[1 2 1;3 2 2;1 1 3]; >> c=a*b c= 9 10 16 15 13 13 9 13 10 >> d=a/b d= -0.7778 12 Nu như một trong các php tnh *, /, ^ cần được thực hiện cho từng phần t của vector hoc ma trn, ta sẽ phải đt thêm vào trước ký hiệu của php tnh đó ký hiệu (. Php tnh đối với các bin vô hướng luôn được thực hiện cho từng phần t một: >> a.3333 Đ tnh ma trn nghch đo dng lnh inv(ma tran) >> inv(a) ans = -0.0952 Lnh det(ma tran) dng đ tnh đnh thc ca ma trn >> det(a) ans = -63 1.Hàm plot Hàm plot cho php vẽ đồ thị trong mt phẳng tọa độ x, y.
V dụ: vẽ đồ thị y = sin x. Cho các giá trị của x từ −π đn π , các giá trị cách nhau 0,05π >> x=[-pi:0.05*pi:pi]; >> y=sin(x); >> plot(x,y); Muốn vẽ thêm đồ thị y1=cos (x) ta dùng lệnh hold on. Lệnh hold on cho php giữ li tất cả những hnh vẽ đã được vẽ trước đó. Lệnh plot k tip sẽ vẽ thêm vào đó.
Nu ta không s dụng lệnh hold on th cụ thể trong trường hợp này, ta sẽ mất đồ thị y= sin x. Khi đã hoàn thành hnh vẽ, ta s dụng lệnh hold off để bỏ hnh cũ khi ta vẽ tip hnh khác. Một vài hàm toán học khác được dùng hỗ trợ trong tnh toán lý thuyt mch: b.Hàm poly 13 Hàm poly cho php xác định đa thức từ tp hợp nghiệm của chúng. V dụ: Xác định đa thức có nghiệm: -1;0;1;2.
>> poly([-1 0 1 2]) ans = 1 -2 -1 2 0 Kt quả là đa thức có dng:x4 2 x3 x2 2 x c.Hàm polyder Hàm polyder cho php thực hiện tnh đo hàm của đa thức mà các hệ số của hàm được thể hiện dưới dng ma trn. V dụ: Thực hiện tnh đo hàm của hàm f ( x) x4 2x 3 x2 2x với ma trn hệ số là: [1 2 1 2 0]. >> polyder([1 -2 -1 2 0]) ans = 4 -6 -2 2 Kt quả là đa thức có dng:4 x 3 6x 2 2 x 2 d. Một vài hàm toán học khác Syms x Khai báo bin hnh thức x diff(f(x)) Tính đo hàm của hàm f(x) conv(a,b) Nhân hai đa thức a và b 1.
Cấu trc lệnh cơ bản a.Cấu trúc if-else-end Cú pháp của cấu trúc: if biểu thức điều kiện khối các lệnh end Khối các lệnh giữa hai trng thái if và end được thực hiện khi tất cả biểu thức điều kiện là đúng.