1. Trang chủ
  2. » Thể loại khác

Chuong1 CosoveMatLab

47 172 0

Đ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 47
Dung lượng 1,33 MB

Nội dung

Chuong1 CosoveMatLab tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực kinh tế...

Giáo trình MatLab Cơ sở MatLab CHƯƠNG 1: CƠ SỞ VỀ MATLAB Chương giới thiệu cách thức lập trình MatLab, lệnh bản, cách xây dựng thực hàm MatLab cách vẽ đồ thị 2D 3D Tài liệu tham khảo: [1] Nguyễn Chí Ngơn – Thí nghiệm CAD – Đại học Cần Thơ Giới thiệu MATLAB (Matrix laboratory) phần mềm dùng để giải toán kỹ thuật, đặc biệt toán liên quan đến ma trận MATLAB cung cấp toolboxes, tức hàm mở rộng môi trường MATLAB để giải vấn đề đặc biệt xử lý tín hiệu số, hệ thống điều khiển, mạng neuron, fuzzy logic, mô v.v Để khởi động MATLAB ta nhấn đúp vào icon hình Cửa sổ biểu tượng chương trình MatLab: Phạm Hùng Kim Khánh Trang Cơ sở MatLab Giáo trình MatLab Hình 1.1 – Cửa sổ khởi động MatLab Cửa sổ làm việc MatLab: Thư mục hành Workspace: biến nhớ Danh sách file có thư mục hành Cửa sổ lệnh Nút Start: chứa toolbox Các lệnh thực Hình 1.2 – Cửa sổ làm việc MatLab  Cửa sổ lệnh Command window: Là cửa sổ giao tiếp Matlab nơi nhập giá trị biến, hiển thị giá trị, tính tốn giá trị biểu thức, thực thi hàm có sẵn thư viện (builtin function), hàm người dùng lập trình M-files Các lệnh nhập sau dấu nhắc ‘>> ‘và thực thi lệnh phím Enter Gõ lệnh sau: >> A = pi/2; >> B = sin(A) B = Để mở chương trình soạn thảo MatLab, gõ lệnh: >> edit Sau nhập vào đoạn chương trình sau: % Chuong trinh M-file x= 0:pi/6:2*pi; y=sin(x); Phạm Hùng Kim Khánh Trang Giáo trình MatLab Cơ sở MatLab plot(x,y); Lưu chương trình với tên file plot_sin.m Thực thi chương trình cửa sổ Command window dòng lệnh sau >> plot_sin  Cửa sổ Command History: Các dòng nhập cửa sổ Command window (các dòng dòng nhập biến, dòng lệnh) giữ lại cửa sổ Command History cửa sổ cho phép ta sử dụng lại lệnh cách nhấp đúp chuột lên lệnh hay biến  Cửa sổ Workspace: Là cửa sổ thể tên biến bạn sử dụng với kích thước vùng nhớ (số bytes), kiểu liệu (lớp), biến giải phóng sau lần tắt chương trình Cửa sổ Workspace cho phép thay đổi giá trị biến cách nhấn phím chuột phải lên biến chọn Edit  Nút Start:  Cửa sổ Edit: Là cửa sổ dùng để soạn thảo chương trình ứng dụng, khởi động lệnh edit Command Window Chương trình soạn thảo cửa sổ edit có dạng: Phạm Hùng Kim Khánh Trang Cơ sở MatLab Giáo trình MatLab + Dạng Script file : tập hợp câu lệnh viết dạng liệt kê, khơng có biến liệu vào biến + Dạng function: có biến liệu vào biến Các vấn đề 2.1 Các phép toán toán tử Các phép toán: + , - , * , / , \ (chia trái) , ^ (mũ) , ‘ (chuyển vị hay số phức liên hiệp) Các toán tử quan hệ : < , , >= , == , ~= Các toán tử logic : & , | (or) , ~ (not) Các hằng: pi 3.14159265 i số ảo j tương tự i eps sai số 2-52 realmin số thực nhỏ 2-1022 realmax số thực lớn 21023 inf vơ lớn NaN Not a number Ví dụ: Nhập đoạn chương trình giải phương trình bậc 2: >>a= 1; >>b=-2; >>c=1; >>delta= b^2- 4*a*c; % Tinh delta >>x1=(-b+ sqrt(delta) )/(4*a) >>x2=(-b- sqrt(delta) )/(4*a) Chú ý : Phạm Hùng Kim Khánh Trang Giáo trình MatLab Cơ sở MatLab + Các lệnh kết thúc dấu chấm phẩy, Matlab khơng thể kết hình + Các thích đặt phía sau dấu % + Trong trình nhập phần tử hàng dài q ta xuống dòng tốn tử ba chấm ( .) 2.2 Khai báo biến - Phân biệt chữ hoa chữ thường - Không cần phải khai báo kiểu biến - Tên biến phải bắt đầu ký tự khơng có khoảng trắng - Không đặt tên trùng với tên đặc biệt MatLab - Để khai báo biến toàn cục (sử dụng tất chương trình con), phải dùng thêm từ khố global phía trước 2.3 Các lệnh thường dùng >>help tên_hàm % tham khảo help hàm >>lookfor ‘chuỗi’ %Tìm kiếm >>clc % Xố hình >>clear tên_biến % Xoá biến >>clear all %Xoá tất biến >> clf %Xoá figure >>save % >>load % >>who % liệt kê biến nhớ >>whos % liệt kê chi tiết biến nhớ >>which >>what 2.4 Ma trận 2.4.1 Nhập ma trận Ma trận mảng có m hàng n cột Trường hợp ma trận có phần tử (ma trận 1x1) ta có số Ma trận có cột gọi vector Ta nhập ma trận vào MATLAB nhiều cách: Phạm Hùng Kim Khánh Trang Giáo trình MatLab Cơ sở MatLab • Nhập danh sách phần tử từ bàn phím • Nạp ma trận từ file • Tạo ma trận nhờ hàm có sẵn MATLAB • Tạo ma trận nhờ hàm tự tạo Khi nhập ma trận từ bàn phím ta phải tuân theo quy định sau: • Ngăn cách phần tử ma trận dấu “,” hay khoảng trắng • Dùng dấu “;” để kết thúc hàng • Bao phần tử ma trận cặp dấu ngoặc vuông [ ] Ví dụ: Nhập ma trận: >>A = [16 13; 10 11 8;9 12;4 15 14 1]; Thực lệnh: >>sum(A) ans = 34 34 34 34 Khi ta khơng biến chứa kết MATLAB dùng biến mặc định ans, viết tắt answer Muốn lấy tổng hàng ta cần chuyển vị ma trận dùng lệnh: >>A’ ans = 16 10 15 11 14 13 12 2.4.2 Chỉ số Phần tử hàng i cột j ma trận có kí hiệu A(i,j) Tuy nhiên, ta tham chiếu tới phần tử mảng nhờ số, ví dụ A(k) Trong trường hợp này, ma trận xem cột dài tạo từ cột ma trận ban đầu Như viết A(8) có nghĩa tham chiếu phần tử A(4, 2) (nếu ma trận có hàng) Lưu ý số ma trận thường Phạm Hùng Kim Khánh Trang Giáo trình MatLab Cơ sở MatLab 2.4.3 Toán tử “:” Toán tử “:” toán tử quan trọng MATLAB Nó xuất nhiều dạng khác Biểu thức 1:10 vector hàng chứa 10 số nguyên từ đến 10 >>1:10 ans = 10 >>100:‐7:50 %tạo dãy số từ 100 đến 51, cách ans = 100 93 86 79 72 65 58 51 >>0: pi/4: pi %tạo dãy số từ đến , cách /4 ans = 0.7854 1.5708 2.3562 3.1416 Các biểu thức số tham chiếu tới phần ma trận A(1:k,j) xác định k phần tử cột j Ngồi tốn tử “:” tham chiếu tới tất phần tử hàng hay cột >>A(:,3) ans = 11 14 >>A(3, :) ans = 12 >>B = A(:, [1 4]) %tạo ma trận B từ ma trận A cách đổi thứ tự cột từ [1 4] thành [1 4] B = 16 13 11 10 Phạm Hùng Kim Khánh Trang Giáo trình MatLab Cơ sở MatLab 12 14 15 2.4.4 Tạo ma trận hàm có sẵn: MATLAB cung cấp số hàm để tạo ma trận bản: - zeros tạo ma trận mà phần tử >>z = zeros(2, 4) z = 0 0 0 0 - ones tạo ma trận mà phần tử >>x = ones(2, 3) x = 1 1 1 >>y = 5*ones(2, 2) y = 5 5 - rand tạo ma trận mà phần tử ngẫu nhiên phân bố >>d = rand(4, 4) d = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 - randn tạo ma trận mà phần tử ngẫu nhiên phân bố chuẩn >>e = randn(3, 3) e = Phạm Hùng Kim Khánh Trang Giáo trình MatLab Cơ sở MatLab -0.4326 0.2877 1.1892 -1.6656 -1.1465 -0.0376 0.1253 1.1909 0.3273 - magic(n) tạo ma trận cấp n gồm số nguyên từ đến n2 với tổng hàng tổng cột tổng đường chéo (n  3) - pascal(n) tạo tam giác Pascal >>pascal(4) ans = 1 1 10 10 20 - eye(n) tạo ma trận đơn vị >>eye(3) ans = 0 0 - eye(m,n) tạo ma trận đơn vị mở rộng >>eye(3,4) ans = 0 0 0 0 2.4.5 Nối ma trận Ta nối ma trận có sẵn thành ma trận Ví dụ: >>a = ones(3, 3); >>b = 5*ones(3, 3); >>c = [a+2; b] Phạm Hùng Kim Khánh Trang Giáo trình MatLab Cơ sở MatLab c = 3 3 3 3 5 5 5 5 2.4.6 Xoá hàng cột: Ta xố hàng cột từ ma trận dùng dấu [] b = 5 5 5 5 >>b(:, 2) = [] ; %xoá cột thứ b = 5 5 5 >>b(1:2:5) = []; % xoá phần tử đến cách (1,3,5) xếp lại ma trận 2.4.7 Các lệnh xử lý ma trận: Cộng : X = A + B Trừ : X = A - B Nhân : X = A*B X = A.*B nhân phần tử tương ứng với nhau, yêu cầu ma trận A B phải có kích thước Chia : X = A/B lúc X = A * inv(B) X = A\B lúc X = inv(A) * B X=A./B chia phần tử tương ứng với nhau, ma trận A B có kích thước Phạm Hùng Kim Khánh Trang 10 Giáo trình MatLab Cơ sở MatLab e Làm hình chuyển động: Hình chuyển động thực cách: • Tạo lưu nhiều hình khác hiển thị chúng • Vẽ xoá liên tục đối tượng hình, lần vẽ lại có thay đổi Với cách thứ ta thực hình chuyển động qua bước: • dùng hàm moviein để dành nhớ cho ma trận đủ lớn nhằm lưu khung hình • dùng hàm getframes để tạo khung hình • dùng hàm movie để hiển thị khung hình Tạo hàm mv.m sau: axis equal M = moviein(16,gcf); set(gca,ʹNextPlotʹ,ʹreplacechildrenʹ) h = uicontrol(ʹstyleʹ,ʹsliderʹ,ʹpositionʹ,[100 10 500 20],ʹMinʹ,1,ʹMaxʹ,16) for j = 1:16 plot(fft(eye(j + 16))) set(h,ʹValueʹ,j) M(:,j) = getframe(gcf); end clf; axes(ʹPositionʹ,[0 1]); movie(M,30) Bước để tạo hình ảnh chuyển động khởi gán ma trận Tuy nhiên trước gọi hàm moviein, ta cần tạo trục toạ độ có kích thước với kích thước mà ta muốn hiển thị hình Do ví dụ ta hiển thị liệu cách vòng tròn đơn vị nên ta dùng lệnh axis equal để xác định tỉ lệ trục Hàm moviein tạo ma trận đủ lớn để chứa 16 khung hình Phát biểu : set(gca,ʹNextPlotʹ,ʹreplacechildrenʹ) Phạm Hùng Kim Khánh Trang 33 Cơ sở MatLab Giáo trình MatLab ngăn hàm plot đưa tỉ lệ trục axis normal gọi Hàm getframe khơng đối số trả lại điểm ảnh trục hành hình có Mỗi khung hình gồm số liệu vector cột Hàm getframe(gcf) chụp toàn phần cửa sổ hành Sau tạo hình ảnh ta chạy chúng số lần định ví dụ 30 lần nhờ hàm movie(M,30) Một phương pháp để tạo hình chuyển động vẽ xoá, nghĩa vẽ đối tượng đồ hoạ thay đổi vị trí cách thay đổi toạ độ x,y z lượng nhỏ nhờ vòng lặp Ta tạo hiệu ứng khác nhờ cách xố hình khác Chúng gồm: • none MATLAB khơng xố đối tượng di chuyển • background MATLAB xố đối tượng cách vẽ có màu • xor MATLAB xố đối tượng Ví dụ: Ta tạo M-file có tên mv1.m sau : A = [ -8/3 0; -10 10; 28 -1 ]; y = [35 ‐10 ‐7]ʹ; h = 0.01; p = plot3(y(1),y(2),y(3),ʹ.ʹ, ʹEraseModeʹ,ʹnoneʹ,ʹMarkerSizeʹ,5); ve none % dat EraseMode axis([0 50 ‐25 25 ‐25 25]) hold on for i = 1:4000 A(1,3) = y(2); A(3,1) = ‐y(2); ydot = A*y; y = y + h*ydot; set(p,ʹXDataʹ,y(1),ʹYDataʹ,y(2),ʹZDataʹ,y(3)) % thay doi toa drawnow i = i + 1; end Phạm Hùng Kim Khánh Trang 34 Cơ sở MatLab Giáo trình MatLab 2.7.9 Đồ hoạ 3D a Các lệnh Lệnh mesh surf tạo mặt 3D từ ma trận liệu Gọi ma trận liệu z mà phần tử z(i,j) xác định tung độ mặt mesh(z) tạo lưới có màu thể mặt z surf(z) tạo mặt có màu z b Đồ thị hàm hai biến: Bước thứ để thể hàm biến z=f(x,y) tạo ma trận x y chứa toạ độ miền xác định hàm Hàm meshgrid biến đổi vùng xác định vector x y thành ma trận x y Sau ta dùng ma trận để đánh giá hàm >>[x,y] = meshgrid(-8:.5:8); >>r = sqrt(x.^2 + y.^2); Ma trận r chứa khoảng cách từ tâm ma trận Tiếp theo ta dùng hàm mesh để vẽ hàm >>z = sin(r)./r; >>mesh(z) 0.5 -0.5 40 30 40 30 20 20 10 10 0 Hình 1.10 – Vẽ hình 3D hàm biến Phần thực hành 3.1 Ma trận Để tạo ma trận Matlab ta cần liệt phần tử ma trận cặp dấu ngoặc vuông ([…]) Các phần tử hàng phân biệt dấu phẩy (,) Phạm Hùng Kim Khánh Trang 35 Giáo trình MatLab Cơ sở MatLab khoảng trắng (space) Các hàng ma trận, phân cách dấu chấm phẩy (;) Ví dụ, nhập ma trận A có hàng, cột sau: >> A=[16 13; 10 11 8; 12; 15 14 1] >> size(A) Để truy xuất đến phần tử ma trận ta dùng số phần tử tương ứng Ví dụ, phần tử hàng thứ 2, cột thứ A A(2,3) >> A(2,3) 1.1 Cho ma trận A = [2 1; 2; 9], sinh viên dùng lệnh cần thiết để: a Lấy dòng ma trận A b Tạo ma trận B dòng cuối A c Tính tổng phần tử cột A (gợi ý: tính tổng phần tử cột 1: sum(A(:,1))) d Tính tổng phần tử dòng A 1.2 Cho ma trận A = [2 7; 6; 5], sinh viên giải thích kết lệnh sau: a A' b A(:,[1 4]) c A([2 3],[3 1]) d reshape(A,2,6) e A(:) f [A A(end,:)] g A(1:3,:) h [A ; A(1:2,:)] i sum(A) j sum(A') k [ [ A ; sum(A) ] [ sum(A,2) ; sum(A(:)) ] ] 1.3 Giải hệ phương trình sau: 2x1 + 4x2 + 6x3 – 2x4 = x1 + 2x2 + x3 + 2x4 = 2x2 + 4x3 + 2x4 = Phạm Hùng Kim Khánh Trang 36 Giáo trình MatLab Cơ sở MatLab 3x1 - x2 + 10x4 = 10 1.4 Chứng tỏ (A+B)C=AC+BC, với: 3.2 Vector Vector thực chất ma trận có kích thước n x hay x n, nên ta tạo vector cách tạo ma trận Ngồi ra, dùng số cách sau: >>x=0:0.1:1 >>y=linspace(1, 10, 20) % vector 20 phan tu cach deu tu den 10 >>z=rand(10,1) 1.5 Cho vector x = [3 6], giải thích kết lệnh sau: a x(3) b x(1:7) c x(1:end) d x(1:end-1) e x(6:-2:1) f x([1 1]) g sum(x) 1.6 Tạo vector x có 100 phần tử, cho: x(n) = (-1)n+1/(2n+1) 3.3 Đa thức Các đa thức Matlab mô tả vector hàng với phần tử vector hệ số đa thức, xếp theo thứ tự số mũ giảm dần Ví dụ, đa thức m = s4-s3+4s2-5s-1 biểu diễn là: >>m=[1 -1 -1] Để xác định giá trị đa thức, ta dùng lệnh polyval Ví dụ, xác định giá trị đa thức điểm s=2: >>polyval(m,2) Phạm Hùng Kim Khánh Trang 37 Giáo trình MatLab Cơ sở MatLab Để xác định nghiệm đa thức, ta dùng lệnh roots Ví dụ: >>roots(m) 1.7 Cho phương trình x2-4x+5=0, giải phương trình theo cách, cách – tính delta theo phương pháp cổ điển, cách – dùng hàm roots, so sánh kết a Cách1: >>x1=(-b+sqrt(b^2-4*a*c))/(2*a) >>x2=(-b-sqrt(b^2-4*a*c))/(2*a) b Cách 2: >>m=[a b c]; >>x=roots(m) Thay đổi giá trị khác a, b c tương ứng cách giải So sánh kết nhận xét 1.8 Giải phương trình x3- 2x2+4x+5=0 Kiểm chứng kết thu hàm polyval Sinh viên có nhận xét kết kiểm chứng Lặp lại câu 1.6 cho phương trình x7-2=0 3.4 Đồ hoạ 3.4.1 2D Vẽ đồ thị hàm số y1=sinx.cos2x hàm số y2=sinx2 [0-2π], hệ trục tọa độ, ta thực sau: >>x=0:0.01:2*pi; >>y1=sin(x).*cos(2*x); %nhan tuong tung tung phan tu >>plot(x,y1) >>grid on %hien thi luoi Sau thu đồ thị hàm y1, để vẽ y2 đồ thị, ta thực hiện: >>hold on %giu hinh, mac nhien la hold off >>y2=sin(x.^2); %luy thua tung phan tu >>plot(x,y2,’k’) %duong ve co mau den >>axis([0 4*pi –1.25 1.25]) %dinh lai toa hien thi Ta đặt nhãn cho trục tiêu đề cho đồ thị: >>xlabel(‘Time’) Phạm Hùng Kim Khánh Trang 38 Cơ sở MatLab Giáo trình MatLab >>ylabel(‘Amplitude’) >>title(‘y1=sinx.cos2x and y2=sin(x^2)’) >>legend(‘sinx.cos2x’,’sinx^2’) 1.9 Thực dùng hàm semilogx, semilogy, loglog thay cho plot 1.10 Vẽ hàm số y = Vẽ hàm số toạ độ cực: >>theta=0:0.05:2*pi; >>r=sin(5*theta); >>polar(theta,r) 1.11 Vẽ hàm số r = 2sin() + 3cos() 1.12 Vẽ hàm số 2x2 + y2 = 10 dạng toạ độ cực Gợi ý: x = rcos, y = rsin 1.13 Dùng hàm text xuất công thức sau trục toạ độ: ∫ ( ( √ ∑ ̈ )) ( ) [ ] 3.4.2 3D Matlab cung cấp nhiều hàm vẽ đồ thị 3D, chẳng hạn: plot3 - dùng để vẽ đường không gian chiều; mesh surf - dùng để vẽ vật thể 3D Vẽ đồ thị 3D hàm plot3: >>t=0:pi/50:10*pi; >>x=sin(t); >>y=cos(t); >>z=t; >>subplot(121), plot3(x,y,z) Phạm Hùng Kim Khánh Trang 39 Cơ sở MatLab Giáo trình MatLab >>grid on >>subplot(122), plot3(x,y,t.^2) >> grid on Vẽ mặt paraboloid z=x2+y2 không gian chiều: >>close all >>t=-5:0.1:5; >> [x,y]=meshgrid(t); %dinh luoi ve >>z=x.^2+y.^2; >> subplot(2,2,1), mesh(z) >> title('mesh(z)') >> subplot(2,2,2), meshc(z) >> title('meshc(z)') >> subplot(2,2,3), meshz(z) >> title('meshz(z)') >> subplot(2,2,4), waterfall(z) >> title('waterfall(z)') Nhận xét hàm vẽ 1.14 Vẽ mặt 3.5 (√ (√ ) ) dùng hàm surf mesh Hàm script file 3.5.1 Script file Tập hợp dòng lệnh Matlab xếp theo cấu trúc lưu thành file có phần mở rộng *.m gọi script file Ta chạy file từ cửa sổ lệnh giống hệt lệnh Matlab Cấu trúc script file sau: % Phần viết sau dấu ‘%’ dùng cho lệnh help % Thông thường phần mơ tả chức năng, cách sử dụng, % ví dụ minh họa hay lưu ý đặc biệt mà tác giả mong muốn trợ Phạm Hùng Kim Khánh Trang 40 Giáo trình MatLab Cơ sở MatLab % giúp cho người sử dụng [global tênbiến1, tênbiến2,… ] % Khai báo biến tồn cục % (nếu có) % phần trình bày câu lệnh Khởi động Matlab Editor: >>edit Tạo script file có tên bai115.m, với nội dung sau: % Doan script file hien thi loi chao 2s Sau % hien thi logo cua matlab mot cach sinh dong roi thoat close all % - Tao mot cua so hoa -figure('Color',[0 0], 'Name','Welcome to Matlab Experiments', 'NumberTitle','off', 'MenuBar','none'); % - Hien thi loi chao -text( 'String','Welcome to MATLAB', 'Color',[.25 25 25], 'Position',[0.01 501], 'Fontsize',32, 'FontAngle','italic'); text( 'String','Welcome to MATLAB', 'Color','w', 'Position',[0 5], 'Fontsize',32, 'FontAngle','italic'); axis off; Phạm Hùng Kim Khánh Trang 41 Cơ sở MatLab Giáo trình MatLab pause(2); % dung giay % Hien thi logo cua Matlab logospin clear all close % ket thuc script file Sau lưu file này, từ cửa sổ lệnh Matlab, nhập: >>help bai115 Để thi hành script file vừa soạn, nhập: >>bai115 Soạn thảo script file có tên bai116.m để lập biểu đồ với liệu sau: Năm Máy A Máy B 1996 38 48 1997 33 54 1998 36 120 1999 31 92 2000 60 110 2001 70 131 3.5.2 Sử dụng tool xây dựng sẵn Matlab hỗ trợ thư viện hàm phong phú, xây dựng giải thuật nhanh có độ xác cao Ngồi hàm Matlab, tập hợp hàm dùng để giải ứng dụng chuyên biệt gọi Toolbox, ví dụ: Xử lý số tín hiệu (Digital Signal Processing), Điều khiển tự động (Control), mạng neural (Neural networks), … help % chuc nang toolbox >>help control % liet ke ham cua control toolbox Ta tìm kiếm hàm liên quan cách cung cấp cho hàm lookfor Matlab từ khóa: Phạm Hùng Kim Khánh Trang 42 Giáo trình MatLab Cơ sở MatLab lookfor >>lookfor filter % tìm hàm liên quan đến mạch lọc 3.5.3 Xây dựng hàm Xây dựng hàm thực tương tự script file Tuy nhiên, hàm ta cần quan tâm đến tham số truyền cho hàm kết trả sau thực Có điểm cần lưu ý: - Tên hàm phải đặt trùng với tên file lưu trữ - Phải có từ khóa function dòng - Trong hàm xây dựng nhiều hàm (điều khơng có script file) function [out1,out2,…]=tenham(in1,in2,…) % % Hiển thị người sử dụng dùng lệnh help tenham % [global ] %khai báo biến tồn cục (nếu có) out1=kết %kết trả hàm out2=kết … % Các hàm (nếu có) [function [subout1,subout2,…]=tenhamcon(subin1,subin2,…) 1.16 Xây dựng hàm gptb2 để giải phương trình bậc hai ax2+bx+c=0 Nội dung hàm sau: function [x1,x2]=gptb2(a,b,c) % Giai phuong trinh bac hai ax^2+bx+c=0 % [x1,x2]=gptb2(a,b,c) % Trong do: x1,x2 la nghiem Phạm Hùng Kim Khánh Trang 43 Cơ sở MatLab Giáo trình MatLab % a, b, c la he so cua phuong trinh if nargin>help gptb2 >>[x1,x2]=gptb2(1,6,-7) >>[x1,x2]=gptb2(2,7,14) >>[x1,x2]=gptb2(0,4,3) >>[x1,x2]=gptb2(1,6) 1.17 Cho biết ý nghĩa từ khóa nargin? 1.18 Viết lại hàm để kết trả nghiệm số thực 1.19 Xây dựng hàm vdcongdb(a,m,method) để vẽ số đường cong hệ tọa độ cực, với a bán kính m số đường cong vẽ trục tọa độ Trường hợp hàm không trả giá trị Tuỳ theo giá trị tham số ‘method’ mà ta vẽ đồ thị tương ứng: Nếu method = ’Astroit’: Vẽ đường Astroit: | √| Nếu method = ’Becnulli’: Vẽ đường Becnulli: √| | Nếu method = ‘Xoanoc’: Vẽ đường xoắn ốc: r = cosθ +1 Nội dung hàm sau: function vdcongdb(a,m,method) Phạm Hùng Kim Khánh Trang 44 Cơ sở MatLab Giáo trình MatLab % Ve duong vdcongdb(a,m,method) cong toa cuc: % method = 'Becnulli' - Ve duong Lemniscat Becnulli: % r=a*sqrt(abs(2*cos(2*theta))) % 'Astroit' - Ve duong Astroit: % r=a*sqrt(abs(1-sin(3*theta)/4)) % 'Xoanoc' - Ve duong xoan oc: % r=a*cos(theta)+1 % Voi: a-ban kinh; m-so duong cong ve tren cung he truc if nargin>help vdcongdb >>vdcongdb(1,5,’Becnulli’) >>vdcongdb(1,5,’ Astroit’) >>vdcongdb(1,5,’Xoanoc’) >> vdcongdb(1,5,’saikieu’) >> vdcongdb(5,’becnulli’) 1.20 Xây dựng hàm dudoan() để dự đoán kết sau lần tung xúc xắc đồng nhất, mặt Nội dung hàm sau: function dudoan() % Du doan ket qua sau moi lan tung ngau nhien mot xuc xac mat % Chuong trinh lap lai cho den nguoi su dung khong doan tiep % tiep = 'y'; sai=0; dung=0; disp('Chao mung ban den voi chuong trinh du doan xuc xac!') while(lower(tiep)=='y') doan=input('Moi ban du doan ket qua (1-6):'); kqua=tungxx; Phạm Hùng Kim Khánh Trang 46 Cơ sở MatLab Giáo trình MatLab if (doan ~= kqua) disp('Xin loi, ban da doan sai!') sai=sai+1; else disp('Xin chuc mung!') dung=dung+1; end tiep=input('Ban muon choi tiep(''y''/''n''):'); end disp(['Dung ' num2str(dung) num2str(sai+dung) ' lan doan']) ' tong so ' % subfunction -function mat = tungxx() mat=floor(6*rand(1,1))+1; % end Kết luận khác script file hàm khơng có tham số vào Viết chương trình in tam giác Pascal n dòng hình đồ họa với n nhập từ bàn phím Phạm Hùng Kim Khánh Trang 47

Ngày đăng: 21/01/2018, 11:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w