Bài giảng lập trình tính toán thiết kế ( matlab ) có ví dụ , hướng dẫn sử dụng matlab, bài giảng của giảng viên đại học viết, dễ hiểu, có nhiều ví dụ minh họa làm bài. dành cho sinh viên đại học, cao đẳng, ngành xây dựng
Trang 3[1] Fortran Power Station, User Guide, 1998
[2] Steven C Chapra Applied Numerical Methods with MATLAB for Engineers
and Scientists The McGraw-Hill Companies, 2004
[3] Hoàng Kiếm Giải một bài toán như thế nào NXB Giáo dục, 2000
Trang 5Tên biến có phân biệt chữ hoa/ chữ
thường
Iterm, iterm, itErm, ITERM là các biến khác nhau
Tên biến chứa nhiều nhất 31 ký tự Howaboutthisveriablename
Tên biến bắt đầu phải là chữ cái,
Trang 6Tên biến Giá trị
ans Tên biến mặc định dùng để trả về kết quả
eps Số nhỏ nhất epsilon dùng để cộng với 1 để được số nhỏ
nhất lớn hơn 1
NaN hoặc nan Giá trị không xác định 0/0
1 – 2i Ký hiệu số phức
Nargin Số đối số đưa vào hàm sử dụng
narout Số đối số hàm đưa ra
3.1415
Trang 10Kiểu Dữ Liệu Matlab Chỉ dẫn Ví dụ
format short e 5 số với số mũ 5.0333+01
format long e 16 số với số mũ 5.033334567891976+01
long hoặc long e
50.33334567891976
format short g Chính xác hơn
short hoặc short e
50.333
Trang 11Toán Tử Quan Hệ Ý Nghĩa Ví dụ
Trang 12Toán Tử Luận Lý Ý Nghĩa Ví dụ
Trang 14f=[1 2];
for i=3:10 f(i)=f(i-1)+f(i-2); end
While (điều kiện)
Khối các lệnh
end
Cấu trúc lặp có điều kiện
x=10;
while x>1 x=x/2 end
Trang 15Cấu Trúc Điều Kiện Ý Nghĩa Ví Dụ
delta=b^2-4*a*c;
if(delta<0)disp(‘Nghiem phuc’)end
và trường hợp ngược lại
delta=b^2-4*a*c;
if(delta>=0)
if(delta>0)x1=(-b+sqrt(delta))/(2*a)x2=(-b-sqrt(delta))/(2*a)else
x=-b/(2*a)end
end
Trang 16Cấu Trúc Điều Kiện Ý Nghĩa Ví Dụ
else y=x^2;
end
Trang 17Cấu Trúc switch - case Ý Nghĩa Ví Dụ
switch (điều kiện )
Trang 18Khai báo biến hình
Định nghĩa và Khai báo biến hình thức
Phép toán đại số tiêu chuẩn
Trang 19Phép toán đại số tiêu chuẩn
Trang 20Phép tính đạo hàm và tích phân
Phép tính đạo hàm Ý nghĩa
diff(g) Tính đạo hàm cấp 1 của hàm một biến g(x)
diff(g,2), diff(g,n) Tính đạo hàm cấp 2, cấp n của hàm một biến g(x)
diff(g,t) Tính đạo hàm riêng cấp 1 theo biến t của hàm nhiều biến
g(x,y,z,t) diff(g,t,2) Tính đạo hàm riêng cấp 2 theo biến t của hàm nhiều biến
g(x,y,z,t) diff(diff(g,y),x) Tính đạo hàm riêng cấp 1 theo biến x và biến y của hàm
nhiều biến g(x,y,z,t)
Chú ý:
Hạn chế viết diff(diff(diff(g,z),y),x) vì sẽ gây khó khăn khi kiểm tra lại phép tính Hàm diff() cũng có thể thao tác trên mảng , ma trận và tính phép vi phân số học của một vector số và ma trận.
Trang 21Phép tính đạo hàm và tích phân
Phép tính tích phân Ý nghĩa
int(g) Tính tích phân của hàm một biến g(x)
int(g,a,b) Tính tích phân xác định của hàm một biến g(x) với cận từ a
đến b int(g,t,a,b) Tính tích phân xác định theo biến t của hàm nhiều biến
g(x,y,z,t) với cận từ a đến b int(int(g,y),x) Tính tích phân hai lớp
int(int(int(g,z),y),x) Tính tích phân ba lớp
Chú ý:
Hàm int() cũng có thể thao tác trên mảng , ma trận và tính phép tích phân số học của một vector số và ma trận.
Trang 22Hàm hợp – hàm ngược – Ánh xạ - thay thế biến số và chuyển đổi kiểu
dữ liệu
Các hàm công cụ Ý nghĩa
compose(f,g) Định nghĩa hàm hợp f(g(x))
finverse(f) Trả giá trị hàm ngược f -1
subs() Thế giá trị biến độc lập vào hàm hoặc đa thức
double() Chuyển đổi một hằng đặc trưng thành giá trị số kiểu double solve() Giải phương trình f(x) = 0
dsolve() Giải phương trình vi phân
f = @(x) x^2 Định nghĩa ánh xạ hàm một biến số f(x) = x 2
g = @(x,y) x^2+y^2 Định nghĩa ánh xạ hàm hai biến số f(x,y) = x 2 + y 2
Trang 23Các thí dụ minh họa
Trang 24Định dạng và đơn giản hóa biểu thức
Các hàm công cụ Ý nghĩa
collect() Nhóm lại các mục giống nhau
factor() Nhóm đa thức thành tích các đa thức bậc nhất
expand() Khai triển đa thức
simplify() Đơn giản (rút gọn) đa thức
simple() Tìm biểu thức tương đương có chuỗi ký tự ngắn nhất
horner() Hạ bậc đa thức theo quy tắc horner
pretty() Định dạng đa thức theo cách viết hình thức thông thường
trong toán học
Trang 25Các thí dụ minh họa
Trang 26Các thí dụ minh họa
Trang 27Program.m : file chứa chương trình chính
Script m_file: file các chương trình con
Function m_file: các file các hàm chức năng
Trang 28Tạo Script file: File/New/m_file (hoặc Script )
Ý nghĩa: Giúp chúng ta chia nhỏ một chương trình lớn thành nhiều chương trình
con để quản lý và thảo chương Program.m : là Scipt file đặc biệt chứa chương trình chính (duy nhất)
Quy ước đặt tên: lưu tên file trùng với tên hàm Đặt tên file cần phải ngắn gọn gợi
nhớ nội dung của chương trình con
Chú ý:
Khi thảo chương một mặt vừa kế thừa các hàm hoặc các package sẵn có trong MATLAB /FORTRAN/C… mặt khác phải xây dựng các hàm và chương trình con riêng mang tính tổng quát có thể tái sử dụng sau này!
Trang 29Tạo function file: File/New/ function_file
Ý nghĩa: tạo ra các chức năng giải quyết riêng biệt từng vấn đề
Function.m : là Scipt file chứa đựng một chức năng riêng biệt của chương trình Quy luật và thuộc tính:
Lưu tên file trùng với tên hàm Đặt tên file cần phải ngắn gọn gợi
nhớ nội dung chức năng của hàm
Mỗi hàm có một không gian làm việc riêng
Các tham số vào và ra khi một hàm được gọi thì chỉ có tác dụng bên
trong hàm đó
Cú pháp:
function [ delta ] = Delta_function( a,b,c )
Trang 30Script m – File Function m – File
function [ delta ] = Delta_function( a,b,c )
%UNTITLED Summary of this function goes here
% Detailed explanation goes heredelta=b^2-4*a*c;
end
Trang 31Tên Hàm Ý Nghĩa
input(‘…’) Nhập dữ liệu đưa vào
disp(‘…’) Hiển thị văn bản dữ liệu xuất ra
pause Lệnh dừng xem dữ liệu cho đến khi người dùng nhấn một
phím bất kỳ pause(n) Lệnh dừng xem dữ liệu trong n giây
waitforbuttonpress Dừng lại cho đến khi người dùng nhấn chuột hoặc phímCác hàm Nhập/ Xuất và Hiển thị dữ liệu
Trang 32Các hàm toán học sơ cấp
Trigonometric.
sin - Sine
sind - Sine of argument in degrees
sinh - Hyperbolic sine
asin - Inverse sine
asind - Inverse sine, result in degrees
asinh - Inverse hyperbolic sine
cos - Cosine
cosd - Cosine of argument in degrees
cosh - Hyperbolic cosine
acos - Inverse cosine
acosd - Inverse cosine, result in degrees
acosh - Inverse hyperbolic cosine
tan - Tangent
tand - Tangent of argument in degrees
Trang 33Các hàm toán học sơ cấp
tanh - Hyperbolic tangent
atan - Inverse tangent
atand - Inverse tangent, result in degrees
atan2 - Four quadrant inverse tangent
atanh - Inverse hyperbolic tangent
sec - Secant
secd - Secant of argument in degrees
sech - Hyperbolic secant
asec - Inverse secant
asecd - Inverse secant, result in degrees
asech - Inverse hyperbolic secant
csc - Cosecant
cscd - Cosecant of argument in degrees
csch - Hyperbolic cosecant
acsc - Inverse cosecant
acscd - Inverse cosecant, result in degrees
acsch - Inverse hyperbolic cosecant
Trang 34Các hàm toán học sơ cấp
cot - Cotangent
cotd - Cotangent of argument in degrees
coth - Hyperbolic cotangent
acot - Inverse cotangent
acotd - Inverse cotangent, result in degrees
acoth - Inverse hyperbolic cotangent
hypot - Square root of sum of squares
Complex.
abs - Absolute value
angle - Phase angle
complex - Construct complex data from real and imaginary parts.conj - Complex conjugate
imag - Complex imaginary part
real - Complex real part
unwrap - Unwrap phase angle
isreal - True for real array
cplxpair - Sort numbers into complex conjugate pairs
Trang 35Các hàm toán học sơ cấp
Exponential.
exp - Exponential
expm1 - Compute exp(x)-1 accurately
log - Natural logarithm
log1p - Compute log(1+x) accurately
log10 - Common (base 10) logarithm
log2 - Base 2 logarithm and dissect floating point number.pow2 - Base 2 power and scale floating point number
realpow - Power that will error out on complex result
reallog - Natural logarithm of real number
realsqrt - Square root of number greater than or equal to zero.sqrt - Square root
nthroot - Real n-th root of real numbers
nextpow2 - Next higher power of 2
Trang 36Các hàm toán học sơ cấp
Rounding and remainder.
fix - Round towards zero
floor - Round towards minus infinity
ceil - Round towards plus infinity
round - Round towards nearest integer
mod - Modulus (signed remainder after division).rem - Remainder after division
Trang 44Biểu tượng - Màu Biểu tượng – Dấu Biểu tượng – Kiểu nét vẽ
Trang 45Đồ thị lưới, hộp chứa trục, nhãn và lời chú giải
Đồ thị lưới grid on Bật chế độ hiển thị đường lưới
grid off Tắt chế độ hiển thị lưới
Nhãn và chú giải xlabel(‘Truc x’) Đặt nhãn cho trục x
Ylabel(‘Truc y’) Đặt nhãn cho trục y title(‘ Tieu de’) Đặt tiêu đề
text(x,y,’string’) Đặt nhãn vào trực tiếp đồ thị gtext(‘…’) Đặt nhãn vào trực tiếp đồ thị
Trang 46Kiến tạo hệ trục tọa độ
axis([xmin xmax ymin ymax]) Thiết lập giới hạn hệ tọa độ
hình chữ nhật)
bên dưới màn hình
bên trên màn hình
Trang 47Sinh viên tham khảo thêm các lệnh về đồ họa 2D và 3D trong trình HELP
Sử dụng hàm ezplot(f) : Vẽ đồ thị biểu thức đặc trưng (symbolic)
Trang 57Chuyển vị của Tấm chữ nhật Chuyển vị của Tấm tròn
Trang 61Tên Lệnh Ý Nghĩa
load Lệnh tải một file dữ liệu vào chương trình
Trang 62Ký hiệu và biểu tượng của lưu đồ
Block Function Biểu tượng của lưu đồ
Thực hiện tuần
tự
Unconditional Transfer
Input or Output
Prosessing
Phân nhánh Conditional Transfer
Trang 63Ký hiệu và biểu tượng của lưu đồ
Block Function Biểu tượng của lưu đồ
Lặp
Conditional Loop
Counted Loop
Trang 64Lưu đồ thực thi khối lệnh theo tuần tự
Trang 65Lưu đồ phân nhánh bởi 1 điều kiện
Trang 66Lưu đồ phân nhánh bởi nhiều điều kiện
Trang 69Source Code :
Giải thuật theo lưu đồ tuần tự
Trang 70t=input('Be day vo cau t= ');
rho=input('Khoi luong rieng rho= ');
r0=d/2;
r1=d/2-t;
V=(4*pi/3)*(r0^3-r1^3);% Volume W=rho*V;% Weight
Source Code :
Trang 71t=input('Be day vo cau t= ');
rho=input('Khoi luong rieng rho= ');
r0=d/2;
r1=d/2-t;
V=(4*pi/3)*(r0^3-r1^3) % Volume W=rho*V % Weight
i=input('Ban muon dung chuong trinh?(No:1/Yes:0): '); clc;
end
Source Code :
Trang 797.4 THIẾT KẾ KÊNH
7.5 KỸ THUẬT TẠO LƯỚI TÍNH TOÁN