1. Trang chủ
  2. » Cao đẳng - Đại học

chương 1 nhập môn matlab

195 2,3K 1

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

Nội dung

Chương NHẬP MƠN MATLAB Tính tốn khoa học Nội dung • • • • • • Giới thiệu chung MATLAB Làm việc với MATLAB Lập trình với MATLAB Các phép tính ma trận nâng cao Đồ thị nâng cao Vào liệu Tính tốn khoa học Giới thiệu chung MATLAB • MATLAB (Matrix Laboratory) phần mềm hãng MathWorks Inc • Đối tượng ma trn ã MATLAB tớch hợp ph-ơng pháp tính toán, hiển thị ngôn ng lập trỡnh mạnh để cung cấp cho ng-ời sử dụng môi tr-ờng làm việc thuận tiện để giải vấn đề tính toán khoa häc • CÊu tróc më cđa MATLAB cho phÐp sử dụng MATLAB thành phần để khảo sát d liệu, nghiên cứu thuật toán tạo công cụ tiện ích ng-ời sử dụng Tính tốn khoa học Giới thiệu chung MATLAB (tiếp) • Ngoài Matlab tạo sẵn nhiều cơng cụ tiện ích như: – – – – Khai phá d liệu (Data acquisition) Phân tích khảo sát d liệu (Data analysis and exploration) Hiển thị xử lý ảnh (Visualization and image processing) Dựng mẫu Phát triển thuật toán (Algorithm prototyping and development) Mô hỡnh hóa mô (Modeling and simulation) ã MATLAB công cụ nhà khoa học, kỹ sư sử dụng để phát triển phần mềm giải tốn tính tốn khoa học kỹ thuật • Bản thân MATLAB cung cấp công cụ để giải nhiều tốn khoa học kỹ thuật • MATLAB dùng nhiều trường đại học để hỗ trợ việc giảng dạy giáo trình tốn, đặc biệt giáo trình liên quan đến tính tốn số đại số tuyến tính ứng dụng, giải tích số, tính tốn khoa học, … Tính tốn khoa học Làm việc với MATLAB Tính tốn khoa học Màn hình làm việc Matlab Thư mục thời Current Directory Cửa sổ lệnh Command Window Các lệnh khứ Command history Truy cập chức Tính tốn khoa học Màn hình làm việc Matlab (tiếp) Vùng nhớ làm việc Workspace Cửa sổ lệnh Command Window Các lệnh khứ Command History Tính tốn khoa học Chương trình Matlab • Matlab làm việc siêu máy tính cầm tay cần Matlab thực số lệnh cách đánh trực tiếp sổ lệnh… • Chương trình thực cách nào? • Chương trình Matlab là: – Kịch (Scripts), – Các hàm (Functions) • Scripts: Dãy lệnh Matlab ghi file đưa vào cửa sổ lệnh thực tức • Functions: Các mơđun chương trình tiếp nhận liệu vào trả lại kết (ví dụ hàm sin nhận đầu vào x trả lại giá trị sin(x)) • Chương trình soạn thảo soạn thảo văn (tuy nhiên Matlab cung cấp soạn thảo chương trình riêng mình) Tính tốn khoa học Bộ soạn thảo Matlab (Matlab Editor) Các chức Tự động gán màu chữ dóng hàng Dãy file mở để soạn thảo Tính tốn khoa học Cơ cấu làm việc Matlab • Matlab ngơn ngữ thơng dịch (interpreted language) – Các câu lệnh đánh trực tiếp cửa sổ lệnh thực tức – Các biến phân bố nhớ lần chúng khởi tạo – Muốn thực lại lệnh việc gõ lại lệnh • Tất biến sử dụng cửa sổ lệnh cất giữ vào Vùng nhớ làm việc Base Workspace – – – – – – Có thể gán giá trị cho biến cần thiết Có thể chọn để xoá bỏ số biến khỏi vùng nhớ làm việc Vùng nhớ làm việc cất giữ vào file liệu Phần mở rộng file liệu mat (ví dụ: mydata.mat) File file nhị phân Các file liệu (đi mat ) nạp trở lại vào Vùng nhớ làm việc Tính tốn khoa học Vào với file văn • Lệnh đóng file fclose: Đóng file làm việc ST = fclose(FID) – Lệnh đóng file ứng với biến nhận dạng FID – fclose trả lại biến ST giá trị hồn thành việc đóng file -1 gặp lỗi – Lệnh ST=fclose(‘all’) đóng tất file mở ngoại trừ 0, 1, • Lệnh frewind frewind(FID) đặt trỏ file cua FID vào đầu file Tính tốn khoa học Vào với file văn • Lệnh fscanf: Đọc liệu vào từ file [A, COUNT] = fscanf(FID, FORMAT, SIZE) ě Lệnh đọc liệu từ file tương ứng với FID ě Chuyển đổi liệu khuôn dạng xác định biến xâu FORMAT ě Gán giá trị cho mảng A ě COUNT biến tùy chọn dùng để chứa số lượng phần tử đọc ě SIZE biến tùy chọn giới hạn số phần tử đọc vào từ file, vắng mặt tồn file xét Các giá trị có biến là: ě N : đọc không N phần tử từ file vào vector cột ě Inf : đọc không kết thúc file ě [M, N] : đọc không M*N phần tử đưa vào ma trận kích thước khơng q MxN theo cột, N inf M phải hữu hạn Tính tốn khoa học Vào với file văn • Nếu ma trận A kết việc chuyển khn dạng ký tự biến SIZE khơng có dạng [M, N] vector dịng trả lại • FORMAT biến chứa ký tự chuyển đổi khuôn dạng ngơn ngữ C • Các ký tự định khuôn dạng bao gồm: %, ký hiệu thay thế, độ dài trường, ký tự chuyển đổi khuôn dạng: d, i, o, u, x, e, f, g, s, c […] (liệt kê tập hợp) • Nếu %s sử dụng đọc phần tử dẫn đến phải sử dụng loạt thành phần ma trận, thành phần giữ ký tự • Hãy sử dụng %c để đọc ký tự trắng (space) khuôn dạng %s bỏ qua ký tự trắng Tính tốn khoa học Vào với file văn • Nếu thị định dạng gồm số lẫn ký tự ma trận kết ma trận số ký tự chuyển thành số giá trị mã ASCII • fscanf khác với lệnh C chỗ lệnh vector hóa trả lại đối số ma trận • Biến xâu định dạng sử dụng lặp lại gặp kết thúc file đọc đủ số lượng phần tử SIZE Tính tốn khoa học Vào với file văn • Ví dụ: • Lệnh S = fscanf(fid,'%s') đọc (và trả lại) xâu • Lệnh A = fscanf(fid,'%5d') đọc số ngun có chữ số thập phân Tính tốn khoa học Vào với file văn • Ví dụ: Giả sử có file văn với tên “kq” chứa xâu “Day la ket qua dua ra” Khi ta đọc liệu vào sau: >> fid=fopen('kq','rt') fid = >> x = fscanf(fid,'%s') x = Daylaketquaduara >> frewind(fid) >> x = fscanf(fid,'%s%c') x = Day la ket qua dua Tính tốn khoa học Vào với file văn • Ví dụ: Giả sử file văn Matrix.txt chứa hai dòng 10 • Hãy theo dõi kết làm việc lệnh sau để thấy tác động lệnh fscanf >> fopen('matrix.txt','rt') ans = >> A=fscanf(4,'%i',[2,5]) A = 10 Tính tốn khoa học Vào với file văn >> frewind(4); >> B = fscanf(4,'%i',[5,2]) B = 10 >> frewind(4); >> C = fscanf(4,'%i',6) C = Tính tốn khoa học Vào với file văn • Lệnh fprint : ghi liệu theo khuôn dạng file COUNT = FPRINTF(FID,FORMAT,A, ) • Lệnh định dạng thành phần ma trận A (và biến danh sách) theo khuôn dạng xác định biến xâu format, ghi file tương ứng với biến nhận dạng FID • Biến: – COUNT đếm số byte liệu ghi – FID số nguyên nhận dạng tên file thu từ lệnh fopen Có thể dùng số sử dụng thiết bị chuẩn (màn hình) Nếu lệnh khơng có FID mặc định đưa kết hình – FORMAT biến xâu chứa ký tự mô tả định dạng liệu giống ngôn ngữ C – Các ký tự \n, \r, \t, \b, \f dùng để tạo linefeed, carriage return, tab, backspace, formfeed character tương ứng – Sử dụng \\ để tạo dấu \ %% để tạo ký tự % Tính tốn khoa học Vào với file văn • Ví dụ: x = 0:.1:1; y = [x; exp(x)]; fid = fopen('exp.txt','w'); fprintf(fid,'%6.2f %12.8f\r',y); fclose(fid); Tạo file văn có tên ‘exp.txt’ chứa bảng giá trị hàm mũ 0.00 1.00000000 0.10 0.20 0.30 0.40 0.50 1.10517092 1.22140276 1.34985881 1.49182470 1.64872127 Tính tốn khoa học MỘT SỐ VẤN ĐỀ KHÁC • Giải tốn phi tuyến Matlab – Ngồi hàm cho phép thực phép tính đại số tuyến tính, Matlab cung cấp nhiều hàm cho phép giải nhiều vấn đề tính tốn khác Tính tích phân số, Bài tốn điều kiện đầu phương trình vi phân, Tìm nghiệm, Tối ưu hóa… – Trong “Toolboxes” cịn cung cấp hàng loạt hàm cho mục đích sử dụng khác để xấp xỉ spline, xư lý tín hiệu số (signal processing), tối ưu hóa… • Có thể xem chi tiết lệnh sau nhờ sử dụng lệnh help – quad, quad8 TÝnh tÝch phân số; ode23, ode45 ph-ơng pháp thích nghi giải toán điều kiện đầu ph-ơng trỡnh vi phân th-ờng; fzero Tìm nghiệm ph-ơng trỡnh phi tuyến f(x) = (mét biÕn); – fmin Cùc tiĨu ho¸ hàm biến; fmins Cực tiểu hoá hàm nhiều biến; spline tạo spline nội suy bậc ba cho d÷ liƯu cho tr-íc Tính tốn khoa học MỘT SỐ VẤN ĐỀ KHÁC • Tính thời gian thực – Có thể tính thời gin thực chương trình Matlab sử dụng lệnh tic bắt đầu đồng hồ đếm thời gian toc dừng đồng hồ đếm thời gian hiển thị thời gian đếm tính giây • Ví dụ >> A = rand(900,900); >> tic; B = inv(A); toc; elapsed_time = 4.4260 Tính tốn khoa hc MT S VN KHC ã Một lệnh t-ơng tù cịng cã thĨ sư dơng ®Ĩ tÝnh thêi gian, lệnh cputime Lệnh trả lại thời gian tính giây kể từ lúc Matlab đ-ợc kích hoạt vào sử dụng ã Ví dụ: >> B=rand(900,900); >> t = cputime; C=inv(B); fprintf('Thoi gian tinh: %d seconds',cputime-t) Thoi gian tinh: 4.497000e+000 seconds Tính tốn khoa học MỘT SỐ VẤN ĐỀ KHÁC • Hiệu chương trình viết Matlab – Các hàm người sử dụng tạo Matlab thông dịch không biên dịch Tức m – file thực hiện, lệnh đọc vào thực khơng phải chương trình dịch ngơn ngữ máy Chính điều chương trình Matlab chạy chậm nhiều so với chương trình viết ngơn ngữ lập trình cấp cao khác, chẳng hạn C hay Fortran – Để tận dụng Matlab tốt hơn, cố gắng sử dụng hàm nội trú phép toán Matlab (bởi vì, lúc đoạn mã biên dịch thực thay cho thơng dịch) Tính tốn khoa học MỘT SỐ VẤN ĐỀ KHÁC • Ví dụ hai dãy lệnh sau cho kết >> tic; >> t = (0:.0000001:1)'; >> y=sin(t); >> toc elapsed_time = 0.0400 vµ >> tic >> t = (0:.0000001:1)'; >> for i=1:length(t) y(i) = sin(t(i)); end >> toc elapsed_time = 0.8010 • Tuy nhiên đoạn lệnh địi hỏi thời gian nhiều gấp bội đoạn lệnh Tính toán khoa học ... thức đệ qui f0=0, f1 =1, fn=fn -1 + fn-2, n ≥ • Đưa vào ma trận: ? ?1  F  , ? ?1 0  0 f   ? ?1  • Dễ dàng kiểm tra  fn  F f   f n ? ?1   n >> F= [1 1 ;1 0]; f=[0 ;1] ; F ^10 *f Tớnh toỏn khoa... häc >> c=0:pi/6:2*pi c = Columns through 0.5236 1. 0472 1. 5708 2.0944 2. 618 0 Columns through 12 3 .14 16 3.6652 4 .18 88 4. 712 4 5.2360 5.7596 Column 13 6.2832 Tớnh toỏn khoa hc Khởi tạo biến vectơ... d-ơng thỡ A^m cho ta tích m nhân tử A ã Vớ d: >> A= [1 2; 4]; A^2 ans = 10 15 22 >> pi^2 ans = 10 975 /11 12 >> mu2= 2 ^10 0; >> format long, mu2 mu2 = 1. 267650600228229e+030 Tính tốn khoa học Ví dụ: Tính

Ngày đăng: 22/05/2014, 12:26

TỪ KHÓA LIÊN QUAN

w