lập trình matlab cơ bản

41 576 1
lập trình matlab cơ bản

Đ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

5/9/2013 1 BÀI GIẢNG GV:ThS. Võ Thiện Lĩnh Một số vấn đề cần tìm hiểu 1. Giới thiệu Matlab 2. sở về Matlab 3. Function files và Script files. 4. Đồ họa 5. Tạo giao diện trong Matlab. 6. Simulink. 5/9/2013 2 BÀI 1.GIỚI THIỆU  Matlab vừa là một ngôn ngữ lập trình vừa là một phần mềm ứng dụng tính toán rất hiệu quả.  Matlab - Matrix Laboratory  Matlab là một thương hiệu đã được thương mại hóa của tập đoàn MathWorks BÀI 1.GIỚI THIỆU Khả năng và những ứng dụng của Matlab  Thư viện dựng sẵn to lớn rất phong phú nhiều lĩnh vực  Giải quyết các vấn đề một cách số học  Matlab ứng dụng những thuật toán đã kiểm chứng nên kết quả đáng tin cậy.  Lệnh và hàm sử dụng rất đơn giản.  thể xây dựng những hàm riêng cho những ứng dụng đặc biệt.  Cung cấp thư viện hàm đồ họa rất mạnh.  Cung cấp gói ứng dụng Simulink đầy đủ để mô phỏng. 5/9/2013 3 BÀI 1.GIỚI THIỆU Quản lý không gian làm việc của Matlab  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ổ quá trình lệnh (Command History window)  Cửa sổ địa chỉ thư mục hiện thời (Current directory window) BÀI 2: SỞ VỀ MATLAB  Các biến và hằng số  Hàm lập sẵn  Một số ví dụ để làm quen với Matlab  Vector và ma trận  So sánh và phép tính logic  Các lệnh điều khiển chương trình 5/9/2013 4 I. Các biến và hằng số 1.Biến Tên_biến = giá trị hoặc biểu thức + Biến (variable) trong Matlab là 1 kí hiệu được sử dụng để chứa 1 giá trị. Gồm biến toàn cục(global), biến cục bộ(local). + Tên biến (variable name): bắt đầu bằng một chữ cái, tiếp theo là các chữ cái, chữ số hoặc kí tự gạch chân(_) . Tối đa là 31 kí tự, Matlab phân biệt rõ chữ hoa chữ thường. + Ví dụ : >> x = 5 ; >> x = x + 3 ; + Biến kiểu xâu kí tự ( string ) >> ten='Nguyen Van A' ten = Nguyen Van A Tránh đặt tên biến trùng với tên các hàm chuẩn, hoặc các từ khóa của Matlab I. Các biến và hằng số 2. Các hằng 5/9/2013 5 II. Hàm lập sẵn • sqrt(x) : hàm rút căn bậc hai • exp(x) : hàm e ( e = 2,71828…) • log(x) : hàm lôgarit tự nhiên ( số e ) • log10(x): hàm lôgarit số 10 • sin(x)/ cos(x) : hàm sin/ hàm cos • tan(x) / cot(x) : hàm tang/ hàm cotang • >> help LỆNH Một số hàm liên quan đến số phức như sau: • abs(z) : lấy mođun (suất) của số phức. • anglc(z): lấy góc pha của số phức. • real(x): lấy phần thực. • imag(x) : lấy phần ảo. • conj(x) : trả về số phức liên hiệp của số phức z II. Hàm lập sẵn 1. Một số lệnh Lệnh Công dụng clc Xóa (lau) cửa sổ lệnh. Mang tính chất hình thức,giá trị các biến vẫn tồn tại. clear all Giải phóng toàn bộ biến ra khỏi bộ nhớ. Xóa Workspace clear var1 var2 Giải phóng các biến var1 var2 ra khỏi bộ nhớ. quit Thoát khỏi chương trình Matlab who Liệt kê các biến hiện hành trong bộ nhớ. ; Dấu chấm phẩy ; ở cuối dòng lệnh ngăn không cho Matlab hiển thị các kết quả ra cửa sổ lệnh. … Khi dòng lệnh quá dài cần xuống dòng, dấu 3 chấm … ở cuối dòng lệnh báo cho Matlab biết dòng lệnh còn tiếp tục ở dòng tiếp theo. : Dấu 2 chấm : được dùng để phát sinh một mảng các phần tử cách đều nhau. % Dấu phần trăm % Matlab xem những gì sau dấu % là lời bình 5/9/2013 6 II. Hàm lập sẵn 1. Một số lệnh Lưu phiên làm việc với Matlab -Lệnh 'diary' sử dụng cho mục đích này. Thực hiện: >> diary('diary_file_name') >> (các câu lệnh của bạn ở đây) >> diary off II. Hàm lập sẵn 2. Một số ví dụ • >>z = sqrt(25) • >>y=sin(pi/4) • >>round(3.8) = 4, round(3.49) = 3, round(3.5) = 4 • >>y = 3^2+1 • >>x = y/5, z= y\5 • >> rem(10,3) • >>c=clock • >> z = 1 – 2i, abs(z), angle(z)*180/pi,real(z), imag(z) • Giải phương trình bậc 2 trong R : 2x 2 + 5x - 3 = 0 5/9/2013 7 II. Hàm lập sẵn 2.Một số ví dụ(tt) Thành lập biểu thức: >>syms x y; >>S=2*x+3*y; Tính giá trị biểu thức S với: x=2; y=3 >>u=subs(S,{x,y},{2,3}) >>u= subs(S,x,y^2) Khai triển và rút gọn: >>v=x^2+2*x+1 >>a=factor(v),b=expand(a) >>c=factor(x^4-1), d=simplify(c) II. Hàm lập sẵn 2.Một số ví dụ (tt) 1.Giải phương trình bậc 2 trong R : 2x 2 + 5x - 3 = 0 Sử dụng lệnh “solve” >>solve(‘2*x^2+5*x-3=0'); 2.Giải phương trình sau theo ẩn b và c: b 2 +8c+2b=0 >>solve('b^2+8*c+2*b=0','c') >>solve('b^2+8*c+2*b=0',‘b') 3.Giải hệ phương trình sau: >> [x y] = solve('3*x+y+1', '4*y+2*x-1') 4.Giải hệ phương trình sau: 5/9/2013 8 II. Hàm lập sẵn 2.Một số ví dụ (tt) Tính đạo hàm biểu thức sau: x 3 + 2x +5y theo x và y >> syms x y >> diff(x^3+2*x+5*y,x) >> diff(x^3+2*x+5*y,y) Tính đạo hàm bậc 2 của: sin(xy 2 ) theo x và y >> diff(sin(x*y^2),x,2) >> diff(sin(x*y^2),y,2) II. Hàm lập sẵn 2.Một số ví dụ (tt) Tính tích phân sau: >> syms x y n >> int(x^n) >> int(x^n,n) %biến lấy tích phân là n: Tính tích phân sau: >> syms x a b >> int(x^2,a,b) Tính tích phân sau theo y: >>int(x*y^2,y,0,2) n x dx  n x dn  2 b a x dx  2 2 0 xy dy  5/9/2013 9 II. Hàm lập sẵn 2.Một số ví dụ (tt) Giải phương trình vi phân sau: y’(t) + 4y(t) = e -t >> y=dsolve('Dy+4*y=exp(-t)') Giải phương trình vi phân sau: y’(t) + 4y(t) = e -t , y(0)=1 >> y=dsolve('Dy+4*y=exp(-t)','y(0)=1‘) Giải phương trình vi phân sau: y’’(t) + 4y(t) = e -2t , y(0)=1, y(pi)=0 >> y=dsolve('D2y+4*y=exp(-2*t)','y(0)=0','y(pi)=0') II. Hàm lập sẵn 3.Vector & ma trận Mảng:Mảng: là tập hợp số, ký tự được sắp xếp thứ tự • Mảng 1 chiều ( vectơ) -Vectơ hàng (row array) >>x=[2,7,0,-3] %cách nhau dấu ‘ , ’ hoặc khoảng trắng. -Vectơ cột (column array) >>v=[3;5;6;9] %cách nhau bằng dấu ‘ ; ’ • Mảng 2 chiều( ma trận) >> A=[2,4,6 ; 3,5,7 ; 4,6,8] A= 2 4 6 3 5 7 4 6 8 5/9/2013 10 II. Hàm lập sẵn 3.Vector & ma trận Mảng các phần tử cách đều Tên_mảng=[ ptử đầu a : gia số : ptử cuối b ]; Tên_mảng=linspace(a,b,n); n là số phần tử của mảng Tên_mảng=logspace(a,b,n); tăng theo hàm log Ví dụ: >>u= [0:1:10] Hoặc: >>u= linspace(0,10,11) II. Hàm lập sẵn 3.Vector & ma trận Tìm nghiệm của đa thức x 3 + 6x 2 -11x +290 >>a=[1,6,-11,290]; % các hệ số của đa thức. >>x=roots(a) Hoặc >>x=roots([1,6,-11,290]); Đa thức trên 3 nghiệm là: x1= -10 và x2= 2+5i, x3= 2-5i Dùng hàm poly() kiểm tra lại ví dụ trên >>r=[-10,2+5i,2-5i]; % cho trước các nghiệm >>poly( r ) ans= 1 6 -11 290 Đa thức phải tìm là: x 3 + 6x 2 -11x +290. Lưu ý: các hệ số được sắp xếp theo lũy thừa giảm của biến. [...]... dùng cho chương trình phức tạp 17 5/9/2013 I Script file Script file: là M-file đơn giản nhất, không đối số Được dùng khi thi hành một loạt lệnh MATLAB theo một trình tự nhất định Cấu trúc đề nghị của một Script file: 1 Phần chú thích : Viết các dòng chú thích cho chương trình 2 Phần đầu vào: các giá trị đầu vào 3 Phần tính toán 4 Phần trình bày kết quả: Dùng 1 số hàm của Matlab để trình bày kết quả... việc thực thi chương trình Ví dụ: for n=1:10 x=60-n^2; if x>[u,v,w]=find(A) >>[u,v,w]=find(A>2) >>[u,v,w]=find(A>size(A) >>length(A) >>max(A) >>min(A) >>sum(A) >>sort(A) Tương tự thực hiện các hàm với ma trận: III Các phép tính về mảng 12 5/9/2013 III Các phép tính về mảng Giải hệ phương trình 4x1 - 2x2 -10x3 = -10 2x1 +10x2 -12x3 =... vào) II Function file 1 Hàm chỉ đối số vào: function tenham(in1,in2,…) Ví dụ: Giải pt bậc 4: ax4+bx3+cx2+dx+e=0 Chương trình: 1 function ptbac4(a,b,c,d,e) 2 P=[a,b,c,d,e]; 3 X=roots(P); 4 for i=1:length(X) 5 disp(['Nghiem thu',' ',num2str(i),'=',' ',num2str(X(i))]) 6 end Save chương trình với tên là: ptbac4.m 20 5/9/2013 II Function file 2 Hàm chỉ đối số ra: function [out1,out2,…]=tenham Ví dụ: Xắp... i=1:length(X) disp(['Nghiem thu',' ',num2str(i),'=',' ',num2str(X(i))]) end %Save với tên: nghiem_max.m 22 5/9/2013 III Bài tập đề nghị Bài 1 Viết chương trình tính chu vi và diện tích một tam giác theo yêu cầu sau: • Hiện yêu cầu nhập các cạnh a,b,c • Xét điều kiện thành lập một tam giác: −ĐK cần: a,b,c >0 −ĐK đủ: tổng 2 cạnh > cạnh còn lại −Nếu không thỏa đk thì hiện thông báo lỗi • Tính chu vi + diện tích và... waterfall(x,y,z) >> pcolor(x,y,z)%giá trị Z được thể hiện với giá trị màu tương ứng • >> contour(x,y,z) %lấy đường viền trong 2D • • • • • • • Bài 5: SIMULINK • Simulink là một phần mềm mở rộng của MATLAB (Toolbox của Matlab) dùng để mô hình hoá, mô phỏng và phân tích một hệ thống động, thiết kế hệ thống điều khiển, thiết kế DSP, hệ thống thông tin và các ứng dụng mô phỏng khác • Simulink được ghép bởi hai...5/9/2013 II Hàm lập sẵn 3.Vector & ma trận Tìm ma trận chuyển vị: >> A=[2,4,6 ; 3,5,7 ; 4,6,8] A= 2 4 6 3 5 7 4 6 8 Truy xuất 1 phần tử của ma trận >> b=A’ b= 2 4 6 3 5 7 4 6 8 >> A(2,3) % truy xuat ptu dong 2 cot 3 >>... 0:0.1:4; stem(x,exp(x)) xlabeL('Truc x') ylabel('y = stairs(x,sin(x)') grid on 60 50 y = stairs(x,sin(x) 40 30 20 10 0 0 0.5 1 1.5 2 Truc x 2.5 3 3.5 4 Ví dụ 3: Soạn thảo script file tên bai3.m để lập biểu đồ tổng số sinh viên Điện Tử - Tin học tốt nghiệp tại trường X từ năm 1996 đến 2001 với dữ liệu như sau: • • 1 2 3 4 5 6 7 8 % Lap bieu do tong so sinh vien Dien tu – Tin hoc tot nghiep % svdt=[38... trich vecto dong thu 3 >> A(:,2:3) % tao ma tran con gom cot 2,3 cua A >> A(1:2,:) % tao ma tran con gom cac dong 1, 2 cua A >> A([1 3],[2 3]) % tao 1 ma tran con gom cac ptu dong 1,3 va cot 2,3 II Hàm lập sẵn Tên hàm size(A) length(A) 3.Vector & ma trận Ý nghĩa Trả về 1 vectơ dòng [m n] chứa kích thước mảng A m dòng n cột A là 1 ma trận , sẽ trả về số lớn nhất trong 2 số m,n max(A) + Nếu A là vectơ . mảng Giải hệ phương trình 4x 1 - 2x 2 -1 0x 3 = -1 0 2x 1 +10x 2 -1 2x 3 = 32  -4 x 1 - 6x 2 +16x 3 = -1 6 Cách 1: >> A=[4 -2 -1 0;2 10 -1 2 ;-4 -6 16] >> B= [-1 0;32 ;-1 6] >> X=AB. 5/9/2013 1 BÀI GIẢNG GV :ThS. Võ Thiện Lĩnh Một số vấn đề cần tìm hiểu 1. Giới thiệu Matlab 2. Cơ sở về Matlab 3. Function files và Script files. 4. Đồ họa 5. Tạo giao diện trong Matlab. 6. Simulink. 5/9/2013 2 BÀI. Matlab. 6. Simulink. 5/9/2013 2 BÀI 1.GIỚI THIỆU  Matlab vừa là một ngôn ngữ lập trình vừa là một phần mềm ứng dụng tính toán rất hiệu quả.  Matlab - Matrix Laboratory  Matlab là một thương hiệu

Ngày đăng: 30/03/2014, 21:06

Từ khóa liên quan

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

Tài liệu liên quan