Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 84 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
84
Dung lượng
354,66 KB
Nội dung
Chương 1: Matlab Viện Toán ứng dụng Tin học, ĐHBK Hà Nội Hà Nội, tháng năm 2015 (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 / 66 Giới thiệu Matlab Nội dung Giới thiệu Matlab Biểu thức Matlab Biến Số Các toán tử Các hàm Vector Đa thức Ma trận Nhập ma trận Ghép nối Xóa hàng cột Một số lệnh xử lý ma trận Cấu trúc (Structures) Mảng tế bào (Cell Arrays) Vẽ đồ thị Vẽ đồ thị 2-D Vẽ đồ thị 3-D (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 / 66 Giới thiệu Matlab Matlab MatLab (MATrix LABoratory) môi trường phần mềm (problem-solving environment - PSE) tốn học tính tốn MatLab phát triển vào cuối năm 70 Cleve Moler (Stanford) với mục đích giúp sinh viên thực tính tốn số mà khơng cần phải học ngơn ngữ lập trình bậc thấp, ví dụ Fortran Được thiết kế cơng ty MathWorks ngơn ngữ lập trình bậc cao chun sử dụng cho tính tốn kỹ thuật, đặc biệt tốn có dạng ma trận vector MatLab tích hợp tính tốn, đồ họa lập trình mơi trường thân thiện, cho phép thể toán nghiệm dạng ký hiệu toán học quen thuộc MatLab hệ tương tác, có thành phần liệu mảng mà không cần khai báo trước số chiều MatLab trải qua nhiều năm phát triển với đóng góp nhiều chuyên gia Trong trường đại học, cơng cụ chuẩn cho khóa học tốn, kỹ thuật khoa học từ mở đầu đến nâng cao Trong công nghiệp, MatLab cơng cụ hữu ích cho việc nghiên cứu, phát triển phân tích sản phẩm chất lượng cao (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 / 66 Giới thiệu Matlab Matlab MatLab (MATrix LABoratory) môi trường phần mềm (problem-solving environment - PSE) tốn học tính tốn MatLab phát triển vào cuối năm 70 Cleve Moler (Stanford) với mục đích giúp sinh viên thực tính tốn số mà khơng cần phải học ngơn ngữ lập trình bậc thấp, ví dụ Fortran Được thiết kế công ty MathWorks ngôn ngữ lập trình bậc cao chun sử dụng cho tính tốn kỹ thuật, đặc biệt tốn có dạng ma trận vector MatLab tích hợp tính tốn, đồ họa lập trình mơi trường thân thiện, cho phép thể toán nghiệm dạng ký hiệu toán học quen thuộc MatLab hệ tương tác, có thành phần liệu mảng mà không cần khai báo trước số chiều MatLab trải qua nhiều năm phát triển với đóng góp nhiều chuyên gia Trong trường đại học, cơng cụ chuẩn cho khóa học tốn, kỹ thuật khoa học từ mở đầu đến nâng cao Trong công nghiệp, MatLab cơng cụ hữu ích cho việc nghiên cứu, phát triển phân tích sản phẩm chất lượng cao (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 / 66 Giới thiệu Matlab Matlab MatLab (MATrix LABoratory) mơi trường phần mềm (problem-solving environment - PSE) tốn học tính tốn MatLab phát triển vào cuối năm 70 Cleve Moler (Stanford) với mục đích giúp sinh viên thực tính tốn số mà khơng cần phải học ngơn ngữ lập trình bậc thấp, ví dụ Fortran Được thiết kế công ty MathWorks ngôn ngữ lập trình bậc cao chun sử dụng cho tính tốn kỹ thuật, đặc biệt tốn có dạng ma trận vector MatLab tích hợp tính tốn, đồ họa lập trình mơi trường thân thiện, cho phép thể toán nghiệm dạng ký hiệu toán học quen thuộc MatLab hệ tương tác, có thành phần liệu mảng mà không cần khai báo trước số chiều MatLab trải qua nhiều năm phát triển với đóng góp nhiều chuyên gia Trong trường đại học, cơng cụ chuẩn cho khóa học tốn, kỹ thuật khoa học từ mở đầu đến nâng cao Trong công nghiệp, MatLab cơng cụ hữu ích cho việc nghiên cứu, phát triển phân tích sản phẩm chất lượng cao (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 / 66 Giới thiệu Matlab Matlab MatLab (MATrix LABoratory) mơi trường phần mềm (problem-solving environment - PSE) tốn học tính tốn MatLab phát triển vào cuối năm 70 Cleve Moler (Stanford) với mục đích giúp sinh viên thực tính tốn số mà khơng cần phải học ngơn ngữ lập trình bậc thấp, ví dụ Fortran Được thiết kế công ty MathWorks ngôn ngữ lập trình bậc cao chuyên sử dụng cho tính tốn kỹ thuật, đặc biệt tốn có dạng ma trận vector MatLab tích hợp tính tốn, đồ họa lập trình mơi trường thân thiện, cho phép thể toán nghiệm dạng ký hiệu toán học quen thuộc MatLab hệ tương tác, có thành phần liệu mảng mà không cần khai báo trước số chiều MatLab trải qua nhiều năm phát triển với đóng góp nhiều chun gia Trong trường đại học, cơng cụ chuẩn cho khóa học tốn, kỹ thuật khoa học từ mở đầu đến nâng cao Trong cơng nghiệp, MatLab cơng cụ hữu ích cho việc nghiên cứu, phát triển phân tích sản phẩm chất lượng cao (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 / 66 Giới thiệu Matlab Matlab MatLab (MATrix LABoratory) mơi trường phần mềm (problem-solving environment - PSE) tốn học tính toán MatLab phát triển vào cuối năm 70 Cleve Moler (Stanford) với mục đích giúp sinh viên thực tính tốn số mà khơng cần phải học ngơn ngữ lập trình bậc thấp, ví dụ Fortran Được thiết kế công ty MathWorks ngơn ngữ lập trình bậc cao chun sử dụng cho tính tốn kỹ thuật, đặc biệt tốn có dạng ma trận vector MatLab tích hợp tính tốn, đồ họa lập trình môi trường thân thiện, cho phép thể toán nghiệm dạng ký hiệu toán học quen thuộc MatLab hệ tương tác, có thành phần liệu mảng mà không cần khai báo trước số chiều MatLab trải qua nhiều năm phát triển với đóng góp nhiều chuyên gia Trong trường đại học, cơng cụ chuẩn cho khóa học tốn, kỹ thuật khoa học từ mở đầu đến nâng cao Trong cơng nghiệp, MatLab cơng cụ hữu ích cho việc nghiên cứu, phát triển phân tích sản phẩm chất lượng cao (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 / 66 Giới thiệu Matlab Matlab MatLab ứng dụng Tốn học tính tốn Phát triển thuật tốn Thu thập liệu Mơ hình hóa, mơ Phân tích liệu, thăm dị trực quan hóa Đồ họa khoa học kỹ thuật Phát triển ứng dụng, xây dựng giao diện người dùng (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 / 66 Giới thiệu Matlab Matlab MatLab ứng dụng Tốn học tính tốn Phát triển thuật tốn Thu thập liệu Mơ hình hóa, mơ Phân tích liệu, thăm dị trực quan hóa Đồ họa khoa học kỹ thuật Phát triển ứng dụng, xây dựng giao diện người dùng (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 / 66 Giới thiệu Matlab Matlab MatLab ứng dụng Tốn học tính tốn Phát triển thuật tốn Thu thập liệu Mơ hình hóa, mơ Phân tích liệu, thăm dị trực quan hóa Đồ họa khoa học kỹ thuật Phát triển ứng dụng, xây dựng giao diện người dùng (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 / 66 Cấu trúc (Structures) Nội dung Giới thiệu Matlab Biểu thức Matlab Biến Số Các toán tử Các hàm Vector Đa thức Ma trận Nhập ma trận Ghép nối Xóa hàng cột Một số lệnh xử lý ma trận Cấu trúc (Structures) Mảng tế bào (Cell Arrays) Vẽ đồ thị Vẽ đồ thị 2-D Vẽ đồ thị 3-D (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 52 / 66 Cấu trúc (Structures) Cấu trúc Là cách tổ chức liệu liên quan Ví dụ, tạo cấu trúc s với trường x,y name >> s.y=1; >> s.x=[1 1]; >> s.name=’abc’; >> s s = y: x: [1 1] name: ’abc’ đơn giản với từ khóa struct: >> s2=struct(’y’,1,’x’,[1 1],’name’,’abc’) Sử dụng trường biến bình thường (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 53 / 66 Cấu trúc (Structures) Cấu trúc Liệt kê danh sách trường f=fieldnames(s); Tham chiếu động tới trường (dynamic field reference): s.x; s.(’x’) % tham chiếu tĩnh (static field reference) tới s.x % tham chiếu động tới s.x Vòng lặp trường f=fields(s); % tương đương với f=fieldnames(s) for i=1:length(s) doSomething(s.(f{i})); end % for f=fields(s) % doSomething(s.(char(f))); end % gọn structfun(@doSomething,s); (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 54 / 66 Cấu trúc (Structures) Cấu trúc Ta tạo mảng cấu trúc, ví dụ for i=1:10 s(i).y=rand(); s(i).x=[i:i+2]; s(i).name=sprintf(’name %d’,i); end Biến đổi mảng cấu trúc → mảng thông thường for i=1:length(s) X(:,i)=s(i).x; end nhanh X=[s.x]; (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 55 / 66 Mảng tế bào (Cell Arrays) Nội dung Giới thiệu Matlab Biểu thức Matlab Biến Số Các toán tử Các hàm Vector Đa thức Ma trận Nhập ma trận Ghép nối Xóa hàng cột Một số lệnh xử lý ma trận Cấu trúc (Structures) Mảng tế bào (Cell Arrays) Vẽ đồ thị Vẽ đồ thị 2-D Vẽ đồ thị 3-D (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 56 / 66 Mảng tế bào (Cell Arrays) Mảng tế bào Mảng tế bào chứa kiểu liệu >> >> >> >> a=cell(3,2); a{1,1}=1; a{3,1}=’hello’; a{2,2}=randn(100,100); Hữu dụng cho việc xử lý xâu tránh việc dùng squeeze() Sử dụng mảng tế bào với kiểu liệu khác gây rắc rối số với dấu () cho ta thành phần mảng tế bào mà thân chúng tế bào số với dấu {} chuyển thành phần mảng tế bào sang dạng liệu bản, trả dạng danh sách cách dấu phẩy "," có nhiều phần tử (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 57 / 66 Mảng tế bào (Cell Arrays) Mảng tế bào Ví dụ >> a={[1 2],3} a = [1x2 double] [3] >> y=a{1} y = >> ycell=a(1) ycell = [1x2 double] >> x=y+1 x = >> xcell=ycell+1 ??? Undefined function or method ’plus’ for input arguments of type ’cell’ >> onetwothree=[a{1:2}] onetwothree = (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 58 / 66 Vẽ đồ thị Nội dung Giới thiệu Matlab Biểu thức Matlab Biến Số Các toán tử Các hàm Vector Đa thức Ma trận Nhập ma trận Ghép nối Xóa hàng cột Một số lệnh xử lý ma trận Cấu trúc (Structures) Mảng tế bào (Cell Arrays) Vẽ đồ thị Vẽ đồ thị 2-D Vẽ đồ thị 3-D (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 59 / 66 Vẽ đồ thị Vẽ đồ thị 2-D Vẽ đồ thị 2-D Lệnh bản: plot(x,f(x)) Trong đó, x vector chứa miền xác định hàm có biểu thức f (x) Ví dụ Vẽ đồ thị hàm số y = sin(x) với x biến thiên khoảng [0, 2π]: x = 0:pi/100: 2*pi; y = sin(x); plot(x, y); (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 60 / 66 Vẽ đồ thị Vẽ đồ thị 2-D Vẽ đồ thị 2-D Chú thích thêm cho đồ thị text(x, y, ’ ’) gtext(’ ’) title(’ ’) legend(’ ’,’ ’, ) xlabel(’ ’) ylabel(’ ’) \bf \it \rm hold on/off (SAMI-HUST) Đặt thích lên đồ thị tọa độ (x,y) Đặt thích lên đồ thị, vị trí xác định click chuột Tiêu đề đồ thị Thêm giải cho đồ thị Ghi nhãn cho trục Ox Ghi nhãn cho trục Oy Font in đậm Font in nghiêng Font chữ thường Bật/tắt chế độ cho phép vẽ nhiều đồ thị hệ trục tọa độ Matlab Hà Nội, tháng năm 2015 61 / 66 Vẽ đồ thị Vẽ đồ thị 2-D Vẽ đồ thị 2-D Tùy chỉnh nét vẽ, dấu màu sắc Lệnh tổng quát >> plot(x,y,’color_style_marker’) Trong Các màu sắc: ’c’-cyan, ’m’-tím (magenta), ’y’-vàng (yellow), ’r’-đỏ (red), ’g’-xanh (green), ’b’-xanh nước biển (blue), ’w’-trắng (white) ’k’-đen (black) Nét vẽ: ’-’: nét liền, ’ ’: nét đứt, ’:’: chấm chấm, ’-.’: gạch chấm Dấu: ’+’, ’o’, ’*’ ’x’; ’s’: ✷, ’d’: ’p’: ⋆, ’h’: cạnh (SAMI-HUST) , ’^’: Matlab , ’v’: , ’>’: ◮, ’> subplot(m, n, p): tạo ma trận m hàng, n cột chứa m × n đồ thị , p vị trí đồ thị, thứ tự từ xuống (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 64 / 66 Vẽ đồ thị Vẽ đồ thị 3-D Vẽ đồ thị 3-D Lệnh >> plot3(x, y, z) Trong plot3, ta cần xác định vector (x, y, z) Để vẽ mặt z = f (x, y), sử dụng lệnh >> meshgrid(x,y) Ví dụ >> >> >> >> t = 0:0.02*pi:25*pi; x = sin(t); y = cos(t); z = t; plot3(x,y,z); Ví dụ Vẽ mặt z(x, y) = x2 ye−x −y với −4 ≤ x ≤ 4; −4 ≤ y ≤ [x,y]=meshgrid([-4:0.1:4]); z=x.*x.*y.*exp(-x.^ 2-y.^ 2); plot3(x,y,z) (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 65 / 66 Vẽ đồ thị Vẽ đồ thị 3-D Vẽ đồ thị 3-D Một số lệnh khác (đọc help!) contour / contourf / contour3 mesh / meshc / meshz surf / surfc waterfall bar3 / bar3h pie3 / fill3 comet3 / scatter3 / stem3 In xuất đồ thị Dùng lệnh >> print -dtiff -r200 mygraph.tiff print –deps2 mygraph.eps Sử dụng Plotting Tools (SAMI-HUST) Matlab Hà Nội, tháng năm 2015 66 / 66 ... 9]; 1 1 x