Bài giảng Tin học ứng dụng trong kỹ thuật địa chất & dầu khí - Phần 8 - Đỗ Quang Khánh

M-FILE, or SCRIPT
ƒ Việc nhập lệnh từ dấu nhắc (>>) thì nhanh và hiệu quả, nhưng
khi thực hiện một lúc nhiều lệnh hoặc muốn thay đổi giá trị của
một hoặc nhiều biến và lặp lại một số lệnh thì việc nhập lệnh ở
dấu nhắc sẽ kém hiệu quả.
ƒ M-FILE tiện dụng cho việc giải bài toán lớn, MATLAB cung cấp
thủ tục để tạo hàm riêng cho người sử dụng với hình thức một
text file.
ƒ Giải pháp:
- Tập hợp các lệnh vào một file với phần mở rộng là (*.m)
ƒ Cụ thể:
- Để soạn thảo một M-File thì
- Để hiển thị những lệnh trong M-File khi chúng được thực
thi thì sử dụng lệnh echo on.
- Hiệu chỉnh M
pdf 50 trang thamphan 26/12/2022 1920
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học ứng dụng trong kỹ thuật địa chất & dầu khí - Phần 8 - Đỗ Quang Khánh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_tin_hoc_ung_dung_trong_ky_thuat_dia_chat_dau_khi_p.pdf

Nội dung text: Bài giảng Tin học ứng dụng trong kỹ thuật địa chất & dầu khí - Phần 8 - Đỗ Quang Khánh

  1. ĐỒ HỌA CĂN BẢN (tt) ‰ Thí dụ lệnh fplot trong số phức: >> f='cos(tan(x))-tan(sin(x))'; >> fplot(f,[1 2]) ©Copyright 2007 MATLAB 61
  2. ĐỒ HỌA CĂN BẢN (tt) ‰ Thí dụ: ƒ Lệnh polar(t,r): Vẽ đồ thị góc t (radian) trong tọa độ cực theo bán kính r. ƒ Lệnh polar(t,r,’linestype’): Vẽ góc t với đường vẽ và nét xác định ‘linestype’. >>t = 0:.1:2*pi; >>polar(t,sin(2*t)) >>polar(t,sin(2*t),'m-') ©Copyright 2007 MATLAB 63
  3. ĐỒ HỌA CĂN BẢN (tt) ‰ Thí dụ lệnh loglog(x,y) >> x = logspace(-1,2); >> loglog(x,exp(x)) ©Copyright 2007 MATLAB 65
  4. ĐỒ HỌA CĂN BẢN (tt) Thí dụ : >> t=0:pi/20:6*pi; >> x=sin(t); >> y=sin(t-pi/2); >> z=t; >> subplot(121) >> plotyy(t,x,t,y,'plot') >> grid on >> subplot(122) >> plot3(x,y,z) >> grid on ©Copyright 2007 MATLAB 67
  5. Thí dụ-Lệnh quiver ‰ Giả sử ta có một trường vector như sau trong không gian R2: ‰ P(x,y) =x , Q(x,y) = y , thử vẽ hình ảnh của trường trong phạm vi x thuộc [1,5] và y thuộc [1,5]. ‰ Trước hết ta viết một sript file (lưu file này với tên Quiver.m) như sau: ©Copyright 2007 MATLAB 69
  6. ĐỒ HỌA CĂN BẢN (tt) ‰ Các lệnh thao tác và điều khiển Hiển thị cửa sổ đồ họa hiện hành figure(gef) figure Tạo ra cửa sổ đồ họa figure(‘propertyname’,’propertyvalue’, ) Chuyển từ trạng thái hold là on sang off và ngược hold lại hold on Giữ lại tất cả màn hình đã vẽ Xóa các màn hình đã vẽ chỉ thể hiện màn hình hiện hold off hành mới (Chế độ mặc định) axis Cân chỉnh trục tọa độ và hình dạng của nó grid Grid On/ grid off/ grid: Tạo/ tắt lưới cho đồ thị shg Hiển thị đồ thị trên màn hình clg Xóa đồ thị trên màn hình zoom Co vào hoặc dãn ra của đồ thị ©Copyright 2007 MATLAB 71
  7. ĐỒ HỌA CĂN BẢN (tt) ‰ ĐỌC DỮ LIỆU TỪ MÀN HÌNH ĐỒ HỌA ƒ Lấy tọa độ diểm trên đồ thị, khi một đồ thị được vẽ xong, nếu muốn lấy tọa độ của một số điểm trên đường này, ta sẽ dùng lệnh [x,y] = ginput(n); n là số điểm cần lấy tọa độ. ƒ Khi đồ thị hiện ra, ta nhấn phím trái chuột vào các vị trí mong muốn lấy tọa độ trên đồ thị, các hoành độ sẽ được chứa trong vector và tung độ trong vector y. ƒ Nếu quan hệ giữa hai đại lượng x, y cần được vẽ bằng các điểm rời rạc, thay vì là đường nối các điểm (x,y) như vẽ hàm, hàm plot sẽ dùng các điểm được đánh dấu (data makers) ©Copyright 2007 MATLAB 73
  8. ĐỒ HỌA CĂN BẢN (tt) ‰ Thí dụ: Nếu muốn nối liền các điểm được đánh dấu này bằng các đoạn thẳng, chúng ta có thể vẽ 2 lần. >>plot(x,y,'r o',x,y) ©Copyright 2007 MATLAB 75
  9. ĐỒ HỌA CĂN BẢN (tt) - Điền tiêu đề cho đồ thị, ta sử dụng lệnh: title(‘text’). - Tạo lưới cho đồ thị: grid on ‰ Thí dụ: <<title(‘do thi roi rac dung data marker o’) ©Copyright 2007 MATLAB 77
  10. ĐỒ HỌA CĂN BẢN (tt) Lệnh Mô tả Sử dụng hệ tọa độ ma trận, trong đó góc tọa độ ở Axis ij đỉnh góc trái, trục đứng tăng từ đỉnh xuống, trục ngang từ trái qua phải. Thiết lập đồ thị hiện tại là hình vuông, so với mặc Axissquare định là hình chữ nhật. Axisequal Thiết lập thang chia giống nhau cho cả hai hệ trục Tương tự như axisequal nhưng hộp đồ thị vừa đủ Axis tightequal đối với dữ liệu Axis normal Tắt đi chế độ axis, equal, tight và vis3d Tắt bỏ chế độ nền trục, nhãn, lưới, và hộp, dấu. Axis off Thoát khỏi chế độ lệnh title và bất cứ lệnh label nào và thay đổi bởi lệnh text và gtext. ©AxisCopyright on 2007 Ngược lại với axis off nếu chúng có thể MATLAB 79
  11. ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU ‰ Các lệnh vẽ trong tọa độ Đềcac ba chiều plot3: Vẽ đường thẳng và điểm trong không gian 3 chiều Thí dụ: Vẽ đường cong tham số: x =e-0.05tsint y =e-0.05tcost z = t ∈[0,10π] ©Copyright 2007 MATLAB 81
  12. ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) ‰ CÁC LỆNH VẼ BIÊN DẠNG (contour) contour: Vẽ các đường đồng mức clabel: Nhãn ©Copyright 2007 MATLAB 83
  13. ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) ‰ Tạo một lưới các điểm trong mặt phẳng xy ƒ Cú pháp: [X,Y] = meshgrid(x,y) Trong đó: x = [xmin,Δx,xmax] y = [ymin,Δy,ymax] ƒ Chức năng: − Hàm meshgrid sẽ phát sinh các tọa độ của một lưới chữ nhật có m.n điểm với một góc (xmin,ymin) còn góc kia là (xmax,ymax). − Ma trận X có kích thước m.n gồm n cột giống nhau là vector x’ và ma trận Y cũng có kích thước m.n hàng giống nhau là vector y. ©Copyright 2007 − Mỗi ô lưới sẽ có kích thước Δx, và Δy. MATLAB 85
  14. ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) ‰ CÁC LỆNH VẼ MẶT LƯỚI TRONG 3D ƒ Mesh − MESH returns a handle to a surface plot object. ƒ Meshz: Vẽ bề mặt với các đường thẳng đứng viền quanh đồ thị. ƒ Waterfall: Vẽ bề mặt với các đường lưới theo một hướng như thác đổ. ƒ WATERFALL( ) is the same as MESH( ) except that the column lines of the mesh are not drawn - thus producing a "waterfall" plot. For column-oriented data analysis, use WATERFALL(Z') or WATERFALL(X',Y',Z'). ©Copyright 2007 MATLAB 87
  15. Thí dụ lệnh MESHZ >> meshz(X,Y,Z) ©Copyright 2007 MATLAB 89
  16. Thí dụ lệnh WATERFALL >> waterfall(X,Y,Z) ©Copyright 2007 MATLAB 91
  17. Thí dụ lệnh SURFC >> surfc(X,Y,Z) ©Copyright 2007 MATLAB 93
  18. Thí dụ lệnh CONTOUR >> contour(X,Y,Z) ©Copyright 2007 MATLAB 95
  19. ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) ‰ Lệnh view view([α,β]) Trong đó: α: Là góc phương vị tính bằng độ ngược chiều kim đồng hồ từ phía trên của trục ngang (mặc định α = -37.5o) β: Góc nhìn tính bằng độ xuống mặt phẳng xy (mặc định β = 30o) Thí dụ: view([0,90]) : Vẽ 2D là một trường hợp đặc biệt của phép vẽ 3D. -Hiển thị đồ thị 3D đã tạo ra dưới dạng 2D theo góc phương vị và góc nhìn. ©Copyright 2007 MATLAB 97
  20. ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) ‰ Lệnh rot90 ROT90 Rotate matrix 90 degrees. ROT90(A) is the 90 degree counterclockwise rotation of matrix A ROT90(A,K) is the K*90 degree rotation of A, K = +-1,+- 2, Example: A = [1 2 3 B = rot90(A) = [ 3 6 4 5 6 ] 2 5 1 4 ] ©Copyright 2007 MATLAB 99
  21. ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) Thí dụ về lệnh Colormap và colorbar >> [x,y] = meshgrid(-2:.2:2); >> z = x.^(-x.^2-y.^2); >> [C,h] = contour(x,y,z); >> Clabel(C,h); %Nhãn biểu đồ contour >> Surf(peaks(30)) >> Colormap cool; %Chọn biểu đồ màu >> Colorbar % Hiển thị thanh biểu đồ màu ©Copyright 2007 MATLAB 101
  22. ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) ‰ Các lệnh đồ họa khác trong đồ họa 3D 1. fill3: Tô đa giác 3 mặt trong không gian 3D. Cú pháp: fill3(x,y,z,c): Tô đa giác 3D được định nghĩa bởi 3 vector x, y, z với màu tô được xác định bởi c. fill3(x1,y1,z1,c1,x2,y2,z2,c2, ): Tô đa giác 3D xác định nhiều vùng tô. 2. comet3(z) 3. comet3(x,y,z) 4. comet3(x,y,z,p) 5. comet3 Các lệnh vẽ đườn viền 3 chiều trong 3D 6. contour3(z): Vẽ đường viền 3D cho tới mức z 7. contour3(z,n): Vẽ đường n viền 3D 8. contour3(x,y,z): Tương tự như trên, nhưng ma trận x,y để giới hạn trục x,y. ©Copyright 2007 MATLAB 103
  23. M-FILE, or SCRIPT ƒ Việc nhập lệnh từ dấu nhắc (>>) thì nhanh và hiệu quả, nhưng khi thực hiện một lúc nhiều lệnh hoặc muốn thay đổi giá trị của một hoặc nhiều biến và lặp lại một số lệnh thì việc nhập lệnh ở dấu nhắc sẽ kém hiệu quả. ƒ M-FILE tiện dụng cho việc giải bài toán lớn, MATLAB cung cấp thủ tục để tạo hàm riêng cho người sử dụng với hình thức một text file. ƒ Giải pháp: − Tập hợp các lệnh vào một file với phần mở rộng là (*.m) ƒ Cụ thể: − Để soạn thảo một M-File thì − Để hiển thị những lệnh trong M-File khi chúng được thực thi thì sử dụng lệnh echo on. ©Copyright 2007 − Hiệu chỉnh M-FILE: MATLAB 105
  24. M-FILE, or SCRIPT (tt) ‰ CẤU TRÚC MỘT CHƯƠNG TRÌNH 1. function[các biến đầu ra] = filename(các đối số) function filename(các đối số) function[các biến đầu ra] = filename 2. % là lời chú thích của chương trình 3. global ten_bien1 ten_bien2 4. Chương trình (các câu lệnh) ©Copyright 2007 MATLAB 107
  25. M-FILE, or SCRIPT (tt) a. Chương trình có tên ptb2_a.m function x = ptb2(a,b,c) % Giải phương trình bậc hai khi biết hệ số p = [a b c]; roots(p); x0 = -b/(2*a); x = (x0 -10):.1:(x0+10); y = a*x.2 + b*x + 10; plot(x,y), title(‘Do thi bac hai’); Trong cửa sổ lệnh: >> x = ptb2(1,2,1) x = 0 -1 -1 ©Copyright 2007 MATLAB 109