Giao trinh bai tap th no0 matlab(1)

9 243 0
Giao trinh     bai tap th no0 matlab(1)

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài thực hành môn học Mô hình hóa, mô tối ưu hóa trình hóa học BÀI THỰC HÀNH SỐ LÀM QUEN VỚI PHẦN MỀM MATLAB Mục đích thực hành : Giới thiệu tổng quan cho sinh viên phần mềm tính toán số Matlab Thực hành thao tác dùng Matlab để giải toán hóa học đơn giản Giới thiệu : MATLAB phần mềm tính toán số ma trận, sử dụng rộng rãi cho khối ngành kỹ thuật (cơ, điện-điện tử, xây dựng kỹ thuật hóa học…) Matlab tạo thành từ mô-đun tổng quát chứa hàm hộp công cụ riêng (Toolbox)+Simulink Trong thực hành này, phần mềm Matlab cài đặt máy tính với hệ điều hành thông thường (Microsoft Windows XP…) Môi trường làm việc Để xác nhận cấu hình Matlab cài đặt, cần khởi động Matlab cách sau • Nhấp chuột vào biểu tượng • Hoặc từ menu khởi động START Windows Từ cửa sổ làm việc (Command Window) vừa khởi động, nhập vào >> help Các hộp công cụ có sẵn hiển thị hình Tiếp theo chọn mục mà ta cần giúp đở Ngoài ra, Matlab cung cấp trợ giúp trưc tuyến (online) Để truy xuất vào thông tin trợ giúp hàm/lệnh đó, cần nhập vào: >> help TÊN_CỦA_HÀM Để nhận biết thư mục làm việc hành (nơi mà lưu giữ file làm việc tạo ra), cần nhập vào: >> pwd Để thay đổi thư mục làm việc, nhập vào dòng lệnh sau >> cd('directory') thay đổi từ công cụ bên menu (xem hình minh họa bên dưới) Để nhận biết vị trí thư mục hàm đó, nhập vào >> which TÊN_CỦA_HÀM Các hàm sở 3.1 Quản lý liêu Copyright © by Hoàng Ngọc Hà Bài thực hành môn học Mô hình hóa, mô tối ưu hóa trình hóa học Nhìn chung, liệu lưu trữ dạng ma trận Thông thường, tiếp sau khai báo ma trận thực thi hàm, kết hiển thị dấu chấm phẩy “;” cuối câu lệnh Một ma trận khai báo hai dấu ngoặc vuông “[…]”, khoảng trống phân chia cột dấu chấm phẩy “;” phân chia dòng Ví dụ: >> A=[1 3;4 6;7 9]; >> A=[1 3;4 6;7 9] A= Một vector định nghĩa phần tử đầu tiên, bước tăng phần tử cuối Ví dụ: >> v=1:0.5:2.5 v= 1.0000 1.5000 2.0000 2.5000 Chú ý: không rõ bước tăng, Matlab lấy giá trị mặc định Có thể chọn phần ma trận cách hai dấu ngoặc đơn “(…)” tọa độ vị trí phần tử cần lấy Ví dụ: >> matrancon=A(2:3,2:3) matrancon = Lệnh cho phép lưu giữ matrancon ma trận tạo thành từ phần tử vị trí (2,2), (2,3), (3,2) (3,3) ma trận A Các hàm cho tính toán ma trận có sẵn thư viện matfun Ví dụ giá trị riêng ma trận vuông tính cách sử dụng hàm eig(…): >> eig(A) ans = 16.1168 -1.1168 -0.0000 Chúng ta cách tương tự, tính định thức, chuẩn, kernel, vết, vector riêng… ma trận Copyright © by Hoàng Ngọc Hà Bài thực hành môn học Mô hình hóa, mô tối ưu hóa trình hóa học Để nhận biết kích thước ma trận, nhập vào : >> dim=size(A) dim = 3 Lênh size trả kích thước ma trận A lưu giữ kết biến vector dim Để chuyển vị ma trận dùng kí hiệu «’», ví dụ nhập vào : >> transpose=A' transpose = Chú ý : «’» trả ma trận chuyển vị liên hơp phúc trường hợp ma trận chứa hệ số phức Biến vector ans mặc định Matlab ghi nhớ kết tính toán cuối không lưu lại 3.2 Thao tác với đa thức : 3.2.1 Biểu diễn đa thức với Matlab : Một đa thức biểu diễn với Matlab dạng vector Điều có nghĩa kết hớp đa thức cần biểu diễn với vector chứa hệ số theo chiều giảm số mũ Ví dụ có đa thức P(x) sau : P( x) = x + x − x + x + Khai báo P(x) với Matlab đơn giản khai báo vector chứa hệ số P(x) theo chiều giảm số mũ : >> P=[1 -2 7] P= -2 Một cách khác để biểu diễn đa thức định nghĩa từ nghiệm Như vậy, sử dụng hàm poly Ví dụ đa thức Q(x) có nghiệm -1 2, định nghĩa Q( x) = ( x + 1)( x − 2) = x − x − Với Matlab, khai báo : >> Q=poly([-1,2]) Q= Copyright © by Hoàng Ngọc Hà Bài thực hành môn học Mô hình hóa, mô tối ưu hóa trình hóa học -1 -2 Chú ý : đa thức cho Matlab với lệnh poly đa thức mà hệ số số mũ cao đơn vị 3.2.2 Nghiệm đa thức : Nghiệm đa thức nhận nhờ hàm roots Chẳng hạn nghiệm đa thức Q(x) bên tính : >> solutions=roots(Q) solutions = -1 Chú ý : hàm fsolve cho phép tìm nghiệm phương trình phi tuyến 3.2.3 Phép nhân nhân tử hóa đa thức Phép nhân nhân tử hóa đa thức thực hàm conv (convolution) deconv (deconvolution) Nếu muốn nhân hai đa thức P1 ( x) = x + x − 12 P2 ( x) = x − , viết : >> P1=[1 -12]; >> P2=[1 0 -8]; >> P=conv(P1,P2) P= -12 -8 -32 96 Như vây, đa thức kết P( x) = x + x − 12 x − x − 32 x + 96 Một cách tương tự, muốn nhân tử hóa P(x) P1 ( x) , sử dụng lệnh sau : >> P2p=deconv(P,P1); P2p = 0 -8 Rõ ràng P p = P2 ( x) 3.3 Thao tác với ma trận Các hàm xử lý ma trận nằm thư viện matfun Chúng ta đề cập hàm sử dụng phổ biến 3.3.1 Hàm norm, rank, det Copyright © by Hoàng Ngọc Hà Bài thực hành môn học Mô hình hóa, mô tối ưu hóa trình hóa học Các hàm norm, rank, det cho phép cách tương ứng tính chuẩn, hạng định thức ma trận 3.3.2 Hàm inv, pinv, cond Hàm inv (pinv) cho phép nghịch đảo ma trận vuông (các ma trận không vuông) Hàm cond cho phép xác định điều kiện ma trận Số điều kiện phản ánh độ “khó khăn” nghịch đảo ma trận Đó tỉ số “giá trị suy giảm” (singular value) lớn nhỏ 3.3.3 Hàm eig, svd Các hàm cho phép tính giá trị riêng giá trị suy giảm ma trận vuông 3.4 Hiển thị - đồ họa MATLAB có hàm cho phép biểu diễn đồ thị 1D, 2D 3D kết Chúng ta biểu diễn hàm exp theo thời gian 10 giây Chúng ta làm theo bước: B1: Định nghĩa môt vector thời gian >> t=0:0.1:1; Vector thời gian t có 11 thành phần B2: Tính giá trị hàm exp thành phần thời gian t >> y=exp(t); Vector y có 11 thành phần B3: Vẽ hàm y phụ thuộc vào t theo lệnh >> plot(t,y); Khi thực lệnh vẽ, MATLAB tạo khung hình (figure) Để làm việc với khung hình, sử dụng lệnh sau: >> grid; % Tạo lưới >> xlabel(‘thoi gian (s)’); % Tên trục x >> ylabel(‘exp(t)’); % Tên trục y >> title(‘Ham e mu’); % Tên đồ thị Copyright © by Hoàng Ngọc Hà Bài thực hành môn học Mô hình hóa, mô tối ưu hóa trình hóa học Các khung hình đánh số Tuy nhiên chọn lựa khung hình cách nhập vào : >> figure(1); Tương tự, muốn làm việc khung hình mở, phải sử dụng lệnh hold on Lệnh cho phép giữ lại hình ảnh có thực môt lệnh vẽ Ngược lại ta có lệnh hold off Một số hàm sau sử dụng : >> clf; % Xóa khung hình >> close all; % Đóng khung hình >> subplot(221); 3.5 Các lệnh xử lý liệu: 3.5.1 Hàm polyfit Cho phép « xấp xỉ » tập liệu/một hàm theo nghĩa bình phương cực tiểu Ví dụ có tập liêu sau : x y 1 3.5 2.5 4 10.5 12.5 11 15 10 18 Khai báo tập liệu với Matlab : >> x = (1: 1: 10)’; >> y = [1 3.5 2.5 10.5 12.5 11 15 18]’; >> result = polyfit(x,y,1); %tính hệ số a, b đường thẳng xấp xỉ Ví dụ xấp xỉ hàm sin: >> x = (0: 0.1: 2*pi)';% tạo vector x >> y = sin(x); % tính giá trị hàm sin điểm vector x >> p = polyfit(x,y,3); % cho đa thức xấp xỉ bậc y theo nghĩa bình phương cực tiểu >> f = polyval(p,x); % tính giá trị đa thức xấp xỉ điểm x >> plot(x,y,'r',x,f,'b')% biểu diễn đồ thị so sánh Copyright © by Hoàng Ngọc Hà Bài thực hành môn học Mô hình hóa, mô tối ưu hóa trình hóa học 3.5.2 Hàm interp1 Cho phép nội suy giá trị từ tập liệu (xdata,ydata) phương pháp tuyến tính, Spline Giả sử với tập liệu (x,y) đây, làm thề để tính giá trị y x=5.5? >> xi = 5.5; >> yi = interp1(x,y,xi); % phương pháp tuyến tính mặc định chọn >> plot(x,y,'o',xi,yi,'r*') ; 3.6 Hàm giải phương trình vi phân thường Các hàm ode45, ode23,… cho phép giải (hệ) phương trình vi phân thường ODE Xem chi tiết cấu trúc lệnh ví dụ phần help matlab cách nhập vào >> help ode45 3.7 Lập trình với MATLAB Trong phần làm quen với câu lệnh lập trình với MATLAB Chú ý, cho vòng lặp số sử dụng không nên trùng với biến nội định nghĩa trước Matlab: ví dụ biến “i” tương ứng với bậc hai -1 3.7.1 Lệnh if Trong vòng “if” điều kiện kiểm tra Nếu điều kiện (giá trị logic hoạc TRUE), chương trình vào thực thi lệnh vòng “if” Ngược lại không thực Cú pháp chung vòng lệnh “if” là: IF expression statements ELSEIF expression statements ELSE Copyright © by Hoàng Ngọc Hà Bài thực hành môn học Mô hình hóa, mô tối ưu hóa trình hóa học statements END 3.7.2 Vòng lặp for Thực lệnh với số vòng lặp xác định Cú pháp vòng lặp for: for variable = expression statements end 3.7.3 Vòng lặp while Thực lệnh điều kiện Cú pháp vòng lặp while: while expression statements end 3.7.4 Lệnh break, return keyboard Lệnh break cho phép kết thúc vòng lặp while for Lệnh return cho phép thoát từ hàm Khi muốn kiểm tra chương trình (gỡ lỗi), sử dụng hàm keyboard 3.8 Bài tập thực hành Bài tập 1: Giải phương trình tuyến tính/phi tuyến sau với độ xác tương đối 10-4 dùng Matlab (Trang 62, sách Ứng Dụng Tin Học Trong CNHH-Thực Phẩm, Trịnh Văn Dũng): a) x + x − = , x ∈ [0, 1] b) ln(8 x) − x − 0.5 = dy c) = sin(t ) (2 y (t ) t − 1) + 3, y (t = 0) = dt Bài tập 2: (Bài tập 2.5, trang 58, sách Kỹ Thuật Phản Ứng, Tâp 4, Vũ Bá Minh) D.F Smith nghiên cứu phản ứng phân hủy pha khí clorur sulfuryl, SO2Cl2 thành khí Clor SO2 279,2°C: SO2Cl2ÆCl2+SO2 Ở điều kiên thể tích hổn hợp không đổi, theo dõi áp suất tổng cộng theo thời gian phản ứng kết sau: t, ph Pt, mmHg 3,4 15,7 28,1 41,1 54,5 68,3 82,4 96,3 325 335 345 355 365 375 385 395 Dùng Matlab, biểu diễn cặp điểm (t,Pt) đồ thị Quan hệ tuyến tính ? Kết luận bậc phản ứng ? Xác định phương trình vận tốc phản ứng đồ thị? Từ đây, nói độ chuyển hóa thời điểm vô cực Copyright © by Hoàng Ngọc Hà Bài thực hành môn học Mô hình hóa, mô tối ưu hóa trình hóa học Nội suy giá trị Pt t=20 ph, 48 ph 70 ph ? Bài tập 3: Lập trình với Matlab Tạo tập file.m (vào memu, chọn File, chọn New File, chọn File.m) để giải yêu cầu sau dùng Matlab (mỗi yêu cầu tạo file lưu với tên exo1.m, exo2.m ) n Yêu cầu : Viết chương trình tính S = ∑ k với n=5, 20 50; k =0 với n=5, 20 50; (so sánh kết với e1 ) k = k! n Yêu cầu : Viết chương trình tính S = ∑ Yêu cầu : Viết chương trình cho phép hiển thị đồ họa hàm số sau : ⎧− if x < ⎪ f ( x) = sign( x) = ⎨1 if x > ⎪0 if x = ⎩ Bài tập 4: Lập trình giải hệ tuyến tính (Khuyến khích) Áp dụng lệnh giới thiệu thực hành để giải tập sau: • Tạo hàm cho phép tìm nghiệm hệ tuyến tính Ax = b phương pháp Gauss Đầu vào ma trận A b , đầu nghiệm cần tìm Hãy thực chương trình Matlab • So sánh với nghiệm tìm lệnh x=inv(A)*b (giả sử A khả nghịch) Bài tập 5: (Khuyến khích) Sinh viên tự tham khảo tài liệu khác để có tập dùng Matlab để giải Copyright © by Hoàng Ngọc Hà ... t=0:0.1:1; Vector th i gian t có 11 th nh phần B2: Tính giá trị hàm exp th nh phần th i gian t >> y=exp(t); Vector y có 11 th nh phần B3: Vẽ hàm y phụ thuộc vào t theo lệnh >> plot(t,y); Khi th c lệnh... (deconvolution) Nếu muốn nhân hai đa th c P1 ( x) = x + x − 12 P2 ( x) = x − , viết : >> P1=[1 -1 2]; >> P2=[1 0 -8 ]; >> P=conv(P1,P2) P= -1 2 -8 -3 2 96 Như vây, đa th c kết P( x) = x + x − 12 x − x... vuông 3.4 Hiển th - đồ họa MATLAB có hàm cho phép biểu diễn đồ th 1D, 2D 3D kết Chúng ta biểu diễn hàm exp theo th i gian 10 giây Chúng ta làm theo bước: B1: Định nghĩa môt vector th i gian >>

Ngày đăng: 09/12/2016, 07:54

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan