Đề cương chi tiết bài giảng Lập trình Matlab tìm hiểu về cơ sở Matlab; lập trình trên Malab; thực hành lập trình trên Malab... Mời các bạn cùng tham khảo đề cương để nắm chi tiết hơn nội dung.
BỘ MƠN DUYỆT Chủ nhiệm mơn Tơ Văn Ban ĐỀ CƢƠNG CHI TIẾT BÀI GIẢNG ( Dùng cho tiết giảng) Thay mặt nhóm mơn học Học phần: Lập trình MATLAB Nhóm mơn học: Bộ mơn: Tốn Khoa : Cơng nghệ thơng tin Nguyễn Trọng Tồn Thơng tin nhóm mơn học: TT Họ tên giáo viên Nguyễn Trọng Toàn Vũ Thanh Hà Vũ Anh Mỹ Học hàm Giảng viên Giảng viên Giảng viên Học vị TS TS ThS Địa điểm làm việc: Bộ mơn Tốn (1301 nhà S4) Điện thoại, email: 069 515 330, bomontoan_hvktqs@yahoo.com Bài giảng 1: Cơ sở MATLAB Chương, mục: Chương 1, mục 1.1 - 1.2 Tiết thứ: 1- Tuần thứ: Mục đích, yêu cầu: Hướng dẫn sử dụng ban đầu MATLAB - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết lớp: tiết Thực hành: tiết Tự học, tự nghiên cứu : tiết - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: Chương CƠ SỞ MATLAB 1.1 LÀM QUEN VỚI MATLAB MATLAB từ viết tắt Matrix Laboratory, công ty MathWorks khai thác phát triển Đối tượng xử lý MATLAB ma trận Xâu xử lí MATLAB, hạn chế 1.1.1 Khởi động thoát khỏi MATLAB Khởi động MATLAB chuột trái vào biểu tượng MATLAB hình Windows Chờ chút ta thấy xuất cửa sổ lệnh Command: Hình 2.1 Cửa sổ lệnh Command Để khỏi MATLAB gõ lệnh quit exit sau dấu mời MATLAB hay dùng chuột chọn File/Exit Đơn giản dùng tổ hợp phím Ctrl-Q 1.1.2 Trợ giúp trực tuyến MATLAB MATLAB có trợ giúp trực tuyến tất lệnh hàm nội trú Hãy gõ lệnh help sau tên lệnh tên hàm mà bạn muốn tìm hiểu Thí dụ Nếu cửa sổ Command bạn gõ lệnh: >> help TANH Hyperbolic tangent TANH(X) is the hyperbolic tangent of the elements of X See also atanh Nếu bạn gõ lệnh help mà không xác định tên lệnh theo xuất menu gồm nhiều chủ đề (topic) để bạn lựa chọn Thí dụ Gõ lệnh: >> help Kết hình là: HELP topics: matlab\general - General purpose commands … For more help on directory/topic, type "help topic" Nói chung, MATLAB phân biệt chữ hoa chữ thường câu lệnh 1.1.3 Sử dụng chế độ trực tiếp hay chế độ M-file MATLAB? Có thể sử dụng MATLAB theo hai chế độ làm việc khác nhau: Gõ lệnh trực tiếp cửa sổ Command lập trình theo giải thuật Trong chế độ trực tiếp, người sử dụng gõ nội dung câu lệnh vào sau dấu mời MATLAB Sau gõ ENTER để kết thúc dòng lệnh, dòng lệnh MATLAB phân tích thực Thí dụ >> x =1; >> 4*atan(x) %% atan tên hàm arctg MATLAB ans = 3.1416 Dấu chấm phảy (;) cuối câu lệnh dùng để thông báo không hiển thị kết câu lệnh Trong thí dụ trên, giá trị biến x không hiển thị, giá trị biểu thức 4*atan(x) lưu trữ biến ans hiển thị hình dạng số thực dấu phảy tĩnh qui tròn với chữ số có nghĩa Hai câu lệnh viết thành chương trình đơn giản file Calpi.m: % MATLAB code to calculate the value of Pi = 3.141592653589793238 % Every line that begins with % is a comment line and will be ignored % by MATLAB x =1; 4* atan(x) Tiếp theo, để thực chương trình ta cần gõ tên M-file: >> Calcpi ans = 3.1416 Chú ý: Mỗi chương trình danh sách dòng lệnh viết liên tiếp Khi gọi tên chương trình, dịng lệnh phân tích thực theo thứ tự danh sách liệt kê 1.1.4 Một số biến gán sẵn hàm nội trú MATLAB Trong MATLAB có số tên hàm biến chuẩn Vì vậy, đặt tên M-file tên biến bạn nên tránh tên để tránh nhầm lẫn thể xảy Sau số tên hàm biến chuẩn hay sử dụng: Danh sách số biến gán sẵn hàm nội trú MATLAB Tên Ý nghĩa Tên biến chứa kết chưa gán kết tính cho biến ans Số epsilon, số thực đủ nhỏ: 2.2204e-016 eps Số pi: =3.1415926 pi Số vô cùng, kết phép chia 1/0 inf Not-a-Number, số vô định, kết phép chia 0/0 NaN i (and) j Đơn vị ảo hay 1 realmin realmax abs(x) acos(x) asin(x) atan(x) atan2(y,x) conj(x) cos(x) exp(x) imag(x) log(x) log2(x), log10(x) Số dương nhỏ biểu diễn MTĐT: 2.2251e-308 Số dương lớn biểu diễn MTĐT: 1.7977e+308 Hàm giá trị tuyệt đối modul số phức x Hàm arccos(x) Hàm arcsin(x) Hàm arctg(x) Hàm arctg(y/x) Hàm tính số liên hợp số phức x Hàm cos(x) Hàm ex Phần ảo số phức x Hàm ln(x) Các hàm log2(x), log(x) real(x) sign(x) sin(x) sqrt(x) tan(x) Hàm lấy phần thực số phức x Hàm dấu số thực x Hàm sin(x) Hàm x Hàm tg(x) 1.1.5 Định dạng liệu hiển thị hình Tất giá trị hiển thị hình theo định dạng khác phụ thuộc vào phương án sử dụng câu lệnh FORMAT Câu lệnh FORMAT Cú pháp: format [ ] Giải thích Lệnh FORMAT dùng để thay đổi qui cách hiển thị liệu - Nếu string1 long : Hiển thị kết tới 16 chữ số có nghĩa; Nếu short (giá trị mặc định): Hiển thị kết với chữ số có nghĩa; Nếu rat: Hiển thị kết dạng phân số (giá trị xấp xỉ) - Nếu string2 e hiển thị kết kiểu số thực dấu phảy động; Nếu g hiển thị kết kiểu số thực dấu phảy tĩnh Thí dụ >> 4*atan(1) ans = 3.1416 >> format long e; ans ans = 3.141592653589793e+00 >> format long g ans ans = 3.14159265358979 >> format rat ; ans ans = 355/113 1.1.6 Tạo vector ma trận Cú pháp lệnh tạo vector cách sau: = [ First : Increment: Last] Lệnh sinh vector hàng với phần tử đầu First, phần tử cuối Last số gia Increment Mặc định số gia Vector gán cho biến Thí dụ >> a = [ 10]; %% Tạo vector hàng >> b = [ ; ; 3; ; ; ; ; ; ; 10]; % % Tạo vector cột >> c = [1:10]; % % Vector hàng giống a >> d = [1:0.5:5.5]'; % % Vector cột >> e = sin(a); % % Vector cỡ với a >> A=[1 ; ; ]; %% Ma trận cỡ 33 >> f = [ 0.5:2:10] f= 0.5000 2.5000 4.5000 6.5000 8.5000 1.1.7 Xử lý phần tử ma trận Các phần tử vector hay ma trận xác định theo nhiều cách Đơn giản viết tên ma trận kèm với số hàng cột của phần tử cần xử lý Thí dụ >> A=[1 ; ; ]; >> C = [A; 10 11 12 ]; >> C(4,2) %% Hiện phần tử hàng cột ma trận C ans = 11 >> A(8) %% Hiện phần tử thứ ma trận A ans = >> A(2,:) %% Hiện hàng thứ A ans= >>A(:,3) %% Hiện cột thứ A Thậm chí bạn rút trích liệu ma trận để “lắp ghép” với để tạo thành ma trận mới: >> B =A([3 1], :) 1.1.8 Các phép toán ma trận Toán tử * Ý nghĩa Phép nhân nói chung: Vơ hướng –Vơ hướng, Vơ hướng -Vector, Vô hướng- Ma trận, Ma trận – Ma trận Phép nhân phần tử với phần tử tương ứng ^ Phép luỹ thừa .^ Phép luỹ thừa phần tử ' Phép chuyển vị ma trận tính số phức liên hợp .' + (-) Phép chuyển vị ma trận Phép cộng (trừ) ma trận-ma trận, ma trận-vô hướng * / Phép chia phải ./ Phép chia phải tương ứng phần tử ma trận Các ma trận phải kích thước Phép chia trái \ \ Phép chia trái tương ứng phần tử ma trận Các ma trận phải kích thước Trong biểu thức, kích thước ma trận phải phù hợp Thí dụ >> d = [10:-1.5:5.5]'; %% Tạo vector cột >> C = [ 3; 6; 9]; >> b = [ 10 11 12]; >> b.*b %% Tương tự b.^2 ans = 100 121 144 >> C*C' ans = 14 32 50 32 77 122 50 122 194 >> C^2 %% Tương tự C*C ans = 30 36 42 66 81 96 102 126 150 >> C*b %% Câu lệnh có lỗi kích thước ??? Error using ==>* Inner matrix dimensions must agree >> d = [ 10; 11; 12]; >> C\d %% Giải hệ phương trình Cx=d ans = 2.2667 1.9333 1.2889 Chú ý: Phép nhân ma trận khơng có tính chất giao hốn Và: + C=A/B nghĩa C=A*B^-1 + C=B\A nghĩa C= B^-1*A 1.1.9 Các hàm kích thƣớc vector ma trận Trong chương trình MATLAB, biến khơng cần khai báo trước Kiểu kích thước biến tùy thuộc vào liệu thực tế mà lưu trữ length(x) Ý nghĩa Trả số phần tử vector x max số hàng số cột ma trận x size(A) Trả vector chiều gồm số hàng số cột ma trận A size(A,p) Kết : số hàng p =1, số cột p=2 , p>2 Hàm Thí dụ >> [ m n ] = size(A) m= n= >> size(A,2) ans = 1.1.10 Một số ma trận chuẩn MATLAB Trong MATLAB có số ma trận xây dựng sẵn, gọi ma trận chuẩn Sau vài ma trận đơn giản: Ma trận ones(m,n) Ý nghĩa Ma trận gồm tồn số 1, cỡ mn zeros(m,n) eye(m,n) Ma trận khơng, cỡ mn Ma trận đơn vị mở rộng, cỡ mn Ma trận rỗng, tương tự ones(0,0), zeros(0,0), eye(0,0) [] Thí dụ >> A =ones(3,4) A= 1 1 1 1 1 1 >> B=eye(size(A)) B= 0 0 0 0 >> A+2 %% Ma trận đơn vị mở rộng %% Cộng phần tử A với Thực hành số câu lệnh MTLAB - Yêu cầu SV chuẩn bị: Cài đặt phần mềm MATLAB máy tính cá nhân - Ghi chú: Đọc tài liệu tham khảo 1,2,3 BỘ MƠN DUYỆT Chủ nhiệm mơn Tơ Văn Ban ĐỀ CƢƠNG CHI TIẾT BÀI GIẢNG ( Dùng cho tiết giảng) Thay mặt nhóm mơn học Học phần: Lập trình MATLAB Nhóm mơn học: Bộ mơn: Tốn Khoa : Cơng nghệ thơng tin Nguyễn Trọng Tồn Thơng tin nhóm mơn học: TT Họ tên giáo viên Nguyễn Trọng Toàn Vũ Thanh Hà Vũ Anh Mỹ Học hàm Giảng viên Giảng viên Giảng viên Học vị TS TS ThS Địa điểm làm việc: Bộ mơn Tốn (1301 nhà S4) Điện thoại, email: 069 515 330, bomontoan_hvktqs@yahoo.com Bài giảng 2: Cơ sở MATLAB Chương, mục: Chương 1, mục 12-1.3 Tiết thứ: 4-6 Tuần thứ: Mục đích, yêu cầu: Hướng dẫn câu lệnh Input & Output tổ chức liệu - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết lớp: tiết Tự học, tự nghiên cứu : tiết Bài tập + Thực hành: tiết - Địa điểm: Giảng đường P2 phân công - Nội dung chính: 1.2 NHỮNG CÂU LỆNH ĐIỀU KHIỂN CHƢƠNG TRÌNH 1.2.1 Các toán tử hàm quan hệ logic Khi so sánh số, kết kết sai Nếu ma trận so sánh với nhau, chúng phải cỡ việc so sánh thực với phần tử tương ứng Danh sách toán tử quan hệ logic Toán tử Ý nghĩa So sánh nhỏ < So sánh nhỏ >= == ~= & || ~ So sánh lớn So sánh So sánh không Toán tử logic Hội Toán tử logic Tuyển Tốn tử logic Phủ định Thí dụ 10 >> 5~=7-2 ans = >> A =[ 3; 1] ; >>A(1,:) > A = [ 3; 6; 0 0]; >> exist('A') ans = >> exíst(' Calpi') ans = >> B=[ 3; NaN; inf 8]; >>is finite(B) ans = 1 1 1 1 0 0 >> any(A') ans = >> all(A) ans = >> C=[ ]; >> isempty(C) ans = 1.2.2 Câu lệnh kiểm tra định Cú pháp: if [ elseif < Commands-2> ] … [ else < Commands-3> ] end Giải thích Câu lệnh IF dùng để kiểm tra rẽ nhánh chương trình dựa vào giá trị biểu thức logic Câu lệnh con: elseif < Commands-2> khơng có có mặt nhiều lần câu lệnh IF Đầu tiên, MATLAB kiểm tra giá trị biểu thức logic : Nếu (hay khác 0) thực nhóm lệnh Ngược lại, =0 MATLAB kiểm tra biểu thức logic dạng , biểu thức logic thực nhóm lệnh tương ứng… thực khơng tìm thấy biểu thức logic cho giá trị Thí dụ 12 Cài đặt chương trình giải phương trình bậc 2: A x2 + Bx + C = 0, với hệ số A,B,C nhập từ bàn phím chạy chương trình Giải Soạn thảo chương trình GFTB2.m có nội dung: % Giai phuong trinh bac : Ax^2+Bx+C =0 a= input(' He so A = '); b= input(' He so B = '); c= input(' He so C = '); delta = b^2-4*a*c; if delta >0 x(1)=(-b+sqrt(delta))/(2*a); x(2)=(-b-sqrt(delta))/(2*a); fprintf('Phuong co nghiem thuc x = %f ',x) elseif delta> t = 0:.01:2*pi; >> polar(t,sin(2*t).*cos(2*t),' r') Hình Vẽ đồ thị hàm số hàm POLAR 3.2 Đồ họa chiều 3.2.1 Hàm CONTOUR Cú pháp: contour(Z) contour(Z,N) contour(Z,V) contour(X,Y,Z) contour(X,Y,Z,n) contour(X,Y,Z,V) contour( ,'linespec') [C,H] = contour( ) Giải thích Hàm CONTOUR vẽ đồ thị đường mức chiều contour(Z): Vẽ đồ thị đường mức ma trận Z, xem độ cao so với mặt phẳng Các giá trị V độ cao đường mức chọn tự động contour(X,Y,Z): X Y xác định toạ độ (x,y) mặt mức Z=F(X,Y) (Như SURF) contour(Z,N) contour(X,Y,Z,N): Vẽ N đường mức lồng với giá trị độ cao chọn tự động contour(Z,V) contour(X,Y,Z,V): Vẽ N = length(V) đường mức với giá trị độ cao xác định vector V [C,H] = contour( ), C = contour( ): Trả ma trận C contourc vector cột h điều khiển đối tượng LINE PATCH (mảnh) Cả hai đối tượng sử dụng làm tham số clabel Màu đường mức màu chuẩn đồ contour( ,'linespec'): Vẽ đối tượng LINE với màu kiểu đường xác định linespec Sử dụng mã R Pawlowicz để quản lý tham số mặt nhãn đường mức Thí dụ >> [C,H] = contour(peaks(20),10); colormap autumn Hình Đồ thị CONTOUR hàm PEAKS 3.2.2 Hàm CONTOUR3 Cú pháp: contour3(Z) contour3(Z,N) contour3(Z,V) contour3(X,Y,Z) contour3(X,Y,Z,n) contour3(X,Y,Z,V) contour3( ,'linespec') [C,H] = contour3( ) Giải thích Hàm CONTOUR3 vẽ đồ thị contour chiều CONTOUR3( ) có tham số giống CONTOUR( ), khác cách vẽ tương ứng với mức Z tương ứng hệ trục 3-D Thí dụ [X,Y] = meshgrid([-2:.25:2]); Z = X.*exp(-X.^2-Y.^2); contour3(X,Y,Z,30); surface(X,Y,Z,'EdgeColor',[.8 8],'FaceColor','none'); grid off; view(-15,25); colormap cool; Hình Đồ thị CONTOUR3 hàm PEAKS 3.2.3 Hàm CLABEL Cú pháp: clabel(cs,h) clabel(cs,h,V) Giải thích Hàm CLABEL gắn nhãn cho đường mức clabel(cs,h): Gắn nhãn độ cao cho đồ thị contour thời Các nhãn xoay chèn vào đường mức cs h ma trận tính tốn từ đói tượng điều khiển CONTOUR, CONTOUR3 hay CONTOURF clabel(cs,h,V): Chỉ gắn nhãn cho đường mức cho vector V Mặc định gắn nhãn cho tất đường mức Vị trí gắn nhãn chọn ngẫu nhiên clabel(cs,h,‟manual‟): Gắn nhãn vị trí nháy (click) chuột Kết thúc phím Enter nháy chuột đồ thị h = clabel( ): Trả giá trị chế độ gắn nhãn dạng text 3.2.4 Hàm PEAKS Cú pháp: Z = peaks : Tạo ma trận vuông Z cấp 49 Z = peaks(N) : Tạo ma trận vuông Z cấp N Z = peaks(V) : Tạo ma trận vuông Z cấp N, với N=length(V) Z = peaks(X,Y) : Tạo ma trận Z tính theo X Y X, Y Z có kích thước Giải thích PEAKS hàm mẫu biến để minh hoạ cho thủ tục vẽ đồ thị Khi gọi peaks, peaks(N), peaks(V) hay peaks(X,Y) khơng có tham số MATLAB vẽ đồ thị dạng SURF từ hàm PEAKS Mặc định V vector cách từ -3 đến có N phần tử Nếu gọi hàm khơng tham số mặc định N 49 Mặc định X, Y [X,Y] = meshgrid(V,V) (Đọc thêm MESHGRID) Thí dụ >> peaks z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) - 1/3*exp(-(x+1).^2 - y.^2) Hình Đồ thị SURF hàm PEAKS 3.2.5 Hàm MESH Hàm MESH dùng để vẽ đồ thị màu dạng lưới 3-D Các phƣơng án sử dụng mesh(X,Y,Z,C): Vẽ đồ thị dạng lưới xác định ma trận X, Y, Z, C Điểm quan sát xác định VIEW Phạm vi trục toạ độ xác định phạm vi X, Y, Z Các ma trận X Y phải có cỡ với Z, nút lưới ba (X(i,j), Y(i,j), Z(i,j)) Thang màu xác định C xác định giá trị hàm CAXIS tại, thị COLORMAP mesh(X,Y,Z): Sử dụng C = Z, nghĩa màu tỉ lệ với chiều cao mesh(x,y,Z) mesh(x,y,Z,C): Nếu x, y vector với length(x) = n, length(y)= m [m,n] = size(Z) Khi nút lưới ba (x(j), y(i), Z(i,j)) Chú ý: x tương ứng với cột ma trận Z , y tương ứng với hàng ma trận Z mesh(Z) mesh(Z,C): sử dụng giá trị mặc định x =1:n y =1:m với [m,n] = size(Z) h = mesh(…) : Trả tham số điều khiển đối tượng SURFACE Chú ý: Các hàm AXIS, CAXIS, COLORMAP, HOLD, HIDDEN VIEW SHADING xác định thuộc tính hình vẽ, trục toạ độ, bề mặt cong, màu sắc cho hàm MESH Thí dụ Vẽ đồ thị mặt cong tham số phương trình trên: % MATLAB code demontrating cropping surfaces clear colormap(aquamarine); n=50; phi=[ 0:2*pi/n:2*pi]; psi=[ 0:2*pi/n:2*pi]; R = ; r = ; a = 0.5 ; for i=1:length(phi) for j =1:length(psi) z(i,j) = (r + a*sin(6*psi(j)))*sin(phi(i)); y(i,j) = R*sin(psi(j)) + (r + a*sin(6*psi(j)))*cos(phi(i))*sin(psi(j)); x(i,j)= R*cos(psi(j)) + (r + a*sin(6*psi(j)))*cos(phi(i))*cos(psi(j)); c(i,j) =0.8; end; end; mesh(x,y,z,c); axis([-7 -7 -7 7]); axis('square'); Hình Đồ thị dạng MESH mặt cong 3.2.6 Hàm SURF Hàm SURF dùng để vẽ đồ thị màu dạng mặt cong 3D Các phƣơng án sử dụng: surf(X,Y,Z,C): Vẽ đồ thị dạng mặt cong xác định ma trận X, Y, Z, C Điểm quan sát xác định VIEW Phạm vi trục toạ độ xác định phạm vi X, Y, Z Các ma trận X Y phải có cỡ với Z Các điểm mặt tương ứng ba (X(i,j),Y(i,j), Z(i,j)) Thang màu xác định C xác định giá trị hàm CAXIS , thị COLORMAP surf(X,Y,Z): Sử dụng mặc định C = Z, nghĩa màu tỉ lệ với chiều cao surf(x,y,Z) SURF(x,y,Z,C): Nếu x, y vector với length(x)=n, length(y)=m [m,n] = size(Z) Khi đỉnh màu ba (x(j), y(i), Z(i,j)) Chú ý x tương ứng với cột ma trận Z , y tương ứng với hàng ma trận Z surf (Z) surf (Z,C): Sử dụng giá trị mặc định x = 1:n y = 1:m, với [m,n] = size(Z) h =surf (…): Trả tham số điều khiển đối tượng SURFACE Chú ý: Các hàm AXIS, CAXIS, COLORMAP, HOLD, HIDDEN VIEW SHADING xác định thuộc tính hình vẽ, trục toạ độ, bề mặt cong, màu sắc cho hàm SURF Thí dụ clear ; colormap(gray); % Xác định thang màu cho đồ thị n=65; theta =pi*[-n:2:n]/n; phi=(pi/2)*[-n:2:n]'/n; R = 5; X= R*cos(phi)*cos(theta); Y=R*cos(phi)*sin(theta); Z=R*sin(phi)*ones(size(theta)); [xd,yd,C]=peaks(n); cmax=max(max(C)); cmin=min(min(C)); C = (C-cmin*ones(size(C)))/(cmax-cmin); surf(X,Y,Z,C); axis([ -11 11 -11 11 -11 11]);axis('square'); phi = [ 0:2*pi/n:2*pi]; psi=phi; R=9; r =1.5; for i=1:length(phi) for j=1: length(psi) z(i,j)= r/10*sin(phi(i)); y(i,j)=R*sin(psi(j))+ r*cos(phi(i))*sin(psi(j)); x(i,j)=R*cos(psi(j))+ r*cos(phi(i))*cos(psi(j)); c(i,j) = 1; end; end; hold on; surf(x,y,z,c); hold off; view([120 25]); grid on; xlabel(' X'); ylabel(' Y');zlabel('Z'); Hình Minh họa đồ thị dạng SURF mặt cong thí dụ 12 Thí dụ clear ; colormap(gray); n=65; theta =pi*[-n:2:n]/n; phi = [ 0:2*pi/n:2*pi]; psi=phi; R = 5; a=1; for i=1:length(phi) for j=1: length(psi) z(i,j)= -a*sin(3+phi(i))*sin(phi(i));; y(i,j)=(R+a*sin(3*phi(i))*cos(phi(i)))*cos(psi(j)); x(i,j)=(R+a*sin(3*phi(i))*cos(phi(i)))*sin(psi(j)); c(i,j) = 0.8; end; end; mesh(x,y,z,c); xoff =R; for i=1:length(phi) for j=1: length(psi) y(i,j)= a*sin(3+phi(i))*sin(phi(i));; z(i,j)=(R+a*sin(3*phi(i))*cos(phi(i)))*cos(psi(j)); x(i,j)=xoff+(R+a*sin(3*phi(i))*cos(phi(i)))*sin(psi(j)); c(i,j) = 0.8; end end; hold on; mesh(x,y,z,c); grid on; axis([ -6 10 -6 10 -6 10]); axis('square'); hold off; view([-20 25]); xlabel(' X'); ylabel(' Y');zlabel('Z'); Hình 10 Minh họa đồ thị dạng SURF mặt cong thí dụ 13 3.3 Hoạt hình 3.3.1 Thủ tục MOVIE Cú pháp: movie(M,N,fps) Giải thích Thủ tục MOVIE trình chiếu khn hình (frame) movie(M): Biểu diễn dãy M lần M phải dãy khn hình thường tạo lệnh GETFRAME movie(M,N): Biểu diễn N lần Nếu N>movie(M,15,10); %% Biểu diễn lặp lại 15 lần với 10 hình/giây Hình 11 Chiếc vịng trịn chuyển động quanh vịng trịn lớn Chƣơng trình (Đồ thị hàm PEAKS chuyển động nhấp nhơ tạo hình sóng) clear ; n=32; for j=1:n mesh(cos(2*pi*j/n)*peaks(30)); axis([0 30 30 -10 10]); axis('square');grid on; M(:,j)=getframe; end (Trình chiếu) - Yêu cầu SV chuẩn bị: Chẩn bị thực hành lập trình trước đến lớp - Ghi chú: Đọc tài liệu tham khảo 1,2,3 BỘ MÔN DUYỆT Chủ nhiệm môn Tô Văn Ban ĐỀ CƢƠNG CHI TIẾT BÀI GIẢNG ( Dùng cho tiết giảng) Học phần: Lập trình MATLAB Nhóm mơn học: Bộ mơn: Tốn Khoa : Cơng nghệ thơng tin Thay mặt nhóm mơn học Nguyễn Trọng Tồn Thơng tin nhóm mơn học: TT Họ tên giáo viên Nguyễn Trọng Toàn Vũ Thanh Hà Vũ Anh Mỹ Học hàm Giảng viên Giảng viên Giảng viên Học vị TS TS ThS Địa điểm làm việc: Bộ mơn Tốn (1301 nhà S4) Điện thoại, email: 069 515 330, bomontoan_hvktqs@yahoo.com Bài giảng 15: Đồ hoạ MATLAB Chương, mục: Chương 2, mục 2.5 Tiết thứ: 34-36 Tuần thứ: 15 Mục đích, yêu cầu: Thực hành sử dụng đồ họa MATLAB - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết lớp: Bài tập + Thực hành: tiết Tự học, tự nghiên cứu : tiết - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: Thực hành: + Đồ hoạ chiều + Đồ họa chiều + Hoạt hình - Yêu cầu SV chuẩn bị: Chẩn bị thực hành lập trình trước đến lớp - Ghi chú: Đọc tài liệu tham khảo 1,2,3 ... thực hành lập trình trước đến lớp - Ghi chú: Đọc tài liệu tham khảo 1,2,3 BỘ MÔN DUYỆT Chủ nhiệm môn Tô Văn Ban ĐỀ CƢƠNG CHI TIẾT BÀI GIẢNG ( Dùng cho tiết giảng) Học phần: Lập trình MATLAB Nhóm... thực hành lập trình trước đến lớp - Ghi chú: Đọc tài liệu tham khảo 1,2,3 BỘ MÔN DUYỆT Chủ nhiệm môn Tô Văn Ban ĐỀ CƢƠNG CHI TIẾT BÀI GIẢNG ( Dùng cho tiết giảng) Học phần: Lập trình MATLAB Nhóm... liệu tham khảo 1,2,3 BỘ MÔN DUYỆT Chủ nhiệm môn Tô Văn Ban ĐỀ CƢƠNG CHI TIẾT BÀI GIẢNG ( Dùng cho tiết giảng) Học phần: Lập trình MATLAB Nhóm mơn học: Bộ mơn: Tốn Khoa : Cơng nghệ thơng tin