You are on page 1of 11

Các dạng hiển thị số và các hàm toán học thông dụng

04 ng i 2010
3:31 CH

1. Giới thiệu các định dạng hiển thị số và lệnh tương ứng. 4. Nhập, xuất giá trị
Chú ý: 2 dạng quan trọng là: + input: nhập giá trị từ bàn phím
+ short (4 số sau dấu phảy với lệnh format short; a) + disp(ans): hiển thị kết quả mà ko hiện tên biến
+ rat (hiển thị dưới dạng phân số với lệnh format rat; a) + str2num: chuyển chữ thành số
+ num2str: chuyển số thành chữ

2. Các hàm toán học thông dụng: chú ý 5. Nhập xuất txt, excel,...
+ sqrt(a): căn bậc 2
+ exp(a): e^a
+ log(x): ln(x)
+ log10(x): lg(x)

3. Số phức:
i = j = √(-1)
a = 2-3i
real(a): xđ phần thực = 2
imag(a): xđ phần ảo = -3
conj(a): số phức liên hợp
angle(a): góc số phức theo rad
abs(a): tính giá trị tuyệt đối
round(a): làm tròn về số nguyên gần nhất

Nội dung Page 1


Vecto, ma trận và các phép toán
04 ng i 2010
3:24 CH

1. Cách tạo 1 vecto, ma trận hàng, cột; nhiều hàng nhiều cột.

2. Tính toán +, -, *, /, \,… với các ma trận.

3. Gọi các phần tử trong 1 ma trận, thay thế bằng phần tử khác, loại bỏ 1 vecto bất
kì thành ma trận mới.

4. Một vài ma trận đặc biệt: ma trận chuyển vị, ones, zeros, eye, pascal.

5. Các phép toán logic:

Nội dung Page 2


Cấu trúc vòng lặp và điều khiển
04 ng i 2010
4:30 CH

1. Vòng lặp for: 2. Vòng lặp while:


- Lặp nhóm lệnh với số vòng lặp xác định - Thực hiện số vòng lặp ko xác định tới khi điều kiện
- Cấu trúc: bị vi phạm thì dừng lại.
○ For biến=biểu thức - Cấu trúc:
4. Lệnh break:
 Nhóm lệnh; ○ While bieuthuc
- Dừng vòng lặp lại nếu biểu thức đúng.
 End  Nhóm lệnh; - Cấu trúc:
○ Quy tắc thực hiện ○ end If <biểu thức>
Vd: Nhóm lệnh;
n=input('Nhap n=')  Break
for k=n end
s=1;
s=s+k
end
3. Lệnh if, if...else và elseif:
if <biểu thức 1>
Nhóm lệnh 1;
elseif <biểu thức 2>
5. Ví dụ: giải phương trình bậc 2: a*x^2+b*x+c=0
Nhóm lệnh 2;
Break;
else <biểu thức n>
Nhóm lệnh n;
end

Nội dung Page 3


Giải hệ phương trình tuyến tính
04 ng i 2010
5:29 CH

1. Số ẩn = số phương trình
- Nhập ma trận aịj và b ij
- det(A) (ko cần thiết)
- tính xij:
+ xij = aij \ bij
+ xij = inv(aij) * bij

2. Số ẩn > số phương trình


Hệ vô số nghiệm nhưng khi tính x = a\b:
- matlab chọn số ẩn = số phương trình
- các ẩn khác tự động được coi = 0 (tính từ x1 đến khi số ẩn = số phương trình)
- Kết quả hiển thị gồm các nghiệm 0 (t/ứng từ x 1) và các nghiệm còn lại được tính

3. Số ẩn < số phương trình


Hệ vô nghiệm nhưng matlab vẫn giải ra
kết quả (với sai số nhỏ nhất) dựa vào
phương pháp bình phương tối thiểu.

Nội dung Page 4


Đồ họa 2D
20 ng i 2010
9:39 SA

1. Hàm Plot - Vẽ điểm, đường trong mặt 2D

+ plot(y) - vẽ đường y(x) với mặc định x là số thứ tự các phần tử trong ma trận hàng của y.
+ plot (x,y) - vẽ đường y(x) với x là trục hoành, y là trục tung.

Chú ý: Nếu y là hàm phức thì:

plot(y) = plot(real(y),imag(y))

Dựng nhiều đường trên 1 đồ thị:

+ plot (x,y,x,z) với y(x) và z(x)


+ plot(x,y)
hold on % giữ lại đường y(x) để vẽ tiếp đường z(x)
plot(x,z)

2. Hiệu chỉnh đồ thị

+ grid on, grid off - bật và tắt lưới trong đồ thị.


+ title('….') - tên đồ thị
+ xlabel('….') - tên trục x
+ ylabel('….') - tên trục y
+ legend('….') - chú thích loại đường. Vd: legen('y=sinx','z=cosx')
+ text(x,y,'...chú thích...') - chú thích tại 1 điểm (x,y) trên đường
+ box on, box off, axis on, axis off, fplot - % tự đọc tài liệu

3. Chú thích đồ thị

+ 'color','màu' % màu ghi rõ tên màu hoặc chữ cái đầu tiên. Vd: đen - black - b, đỏ - red - r,…
+ 'marker','kí hiệu' % cho phép chọn 1 kiểu kí hiệu biểu diễn điểm. Vd: x, o, +, *,…
+ 'markersize',số % chọn 1 số biểu diễn độ lớn của điểm đánh dấu.
+ 'linewidth',số % chọn 1 số biểu diễn độ dày của đường nối các điểm.

→ plot(x,sin(x),'color','r','marker','o','markersize',6,'linewidth',1)

Đơn giản hơn:

plot(x,y,'r--o') % r là màu đỏ, -- là đường nối nét đứt, o là kí hiệu cho điểm đánh dấu.

Nội dung Page 5


Đồ họa 3D
20 ng i 2010
10:54 SA

1. [x,y]=meshgrid(x,y) - Tạo đồ thị mặt lưới từ ma trận với hàng là vecto x, cột là vecto y.

*** Trường hợp xuất hiện số phức hoặc có đại lượng ko phải là số (NaN) thì hàm
Mesh báo lỗi.
2. Mesh(x,y,z) hoặc mesh(z) - nối các điểm trong không gian thành lưới chữ nhật. Khắc phục:
Meshc(x,y,z) hoặc meshc(z) - vẽ đường đồng mức.
Meshz(x,y,z) hoặc meshz(z) - vẽ các đường thẳng đứng viến quanh đồ thị. Cách 1: Thay tất cả phần tử phức trong z thành 0
Waterfall(x,y,z) hoặc waterfall(z) - vẽ mặt với hiệu ứng như thác đổ z = real(z);
mesh(z)
Vd: z = x.e-x2-y2
Cách 2: Thay tất cả phần từ phức trong z thành NaN. Matlab sẽ không vẽ các điểm
đó nữa.
t = find(imag(z)~=0) % tìm chỉ số các vị trí các phần tử có phần ảo khác 0
z(t) = NaN;
mesh(z)
3. Surf(x,y,z) hoặc surf(z) - vẽ mặt trơn.

Vd:

Một vài ví dụ

n=200; f = @(x,y) exp(cos(sqrt(x.^2 + y.^2))); % a function of two variables f = @(x,y) exp(cos(sqrt(x.^2 + y.^2))); % a function of two variables
x=linspace(-2,2,n); d = -2*pi:0.1:2*pi; % domain for both x,y d = -2*pi:0.1:2*pi; % domain for both x,y
y=linspace(-2,2,n); [X,Y] = meshgrid(d,d); % create a grid of points [X,Y] = meshgrid(d,d); % create a grid of points
z=linspace(-2,2,n); Z = f(X,Y); % evaluate f at every point on grid Z = f(X,Y); % evaluate f at every point on grid
[X,Y,Z]=ndgrid(x,y,z); [nrows,ncols] = size(X); % first obtain the size of X [nrows,ncols] = size(X); % first obtain the size of X
%Compute function at every point Z1 = f(X(:),Y(:)); % convert X,Y to column vectors and evaluate f Z1 = f(X(:),Y(:)); % convert X,Y to column vectors and evaluate
in mesh Z1 = reshape(Z1,nrows,ncols); % reshape f
F=X.^2+Y.^2+Z.^2+1000*(X.^2 f4 = figure; % create a new figure Z1 = reshape(Z1,nrows,ncols); % reshape
+Y.^2).*(X.^2+Z.^2).*(Y.^2+Z.^ p9 = surf(X,Y,Z) % plot the surface of the function f7 = figure;
2); shading interp; % interpolate between the points grouped = mat2cell(Z,6*ones(21,1),6*ones(21,1)); % partition matrix
%generate plot material dull; % alter the reflectance into 6-by-6 blocks
isosurface(F,1); camlight(90,0); % add some light - see doc camlight fconv = @(X)mean(X(:)); % create function handle
axis off; alpha(0.8); % make slightly transparent convCell=cellfun(fconv,grouped,...
view([-48 18]); box on; 'UniformOutput',false); % apply that function to every
block
convMat = cell2mat(convCell); % convert back to a,
(smaller) matrix
p12 = bar3(convMat); % display a 3d bar plot of the
aggregated data
colormap jet % change the color map

Nội dung Page 6


Đa thức
04 ng i 2010
5:32 CH

G/s có 2 đa thức:
f(x) = x2 + 3x - 5
g(x) = 2x3 + 7x2 + 12x - 15

>>f=[1 3 -5];
>>g=[2 7 12 -15];

1. Cộng, trừ 2 đa thức 2. Nhân, chia 2 đa thức

>> [0 f] + g hoặc g + [0 f] >> nhan = conv(f,g) = conv(g,f)

>> [0 f] - g hoặc g - [0 f] >> chia = deconv(g,f) % hoặc deconv(f,g) tùy yêu cầu đề bài

Muốn xác định đa thức dư trong phép chia ta sử dụng lệnh:

>> [chia,sodu] = deconv(g,f)

Xem xét vd phần tính giá trị đa thức!

Nội dung Page 7


Pp bình phương tối thiểu
10 ng i 2010
2:02 CH

Hình minh họa bình phương nhỏ nhất tuyến tính.


Trong toán học, phương pháp bình phương tối thiểu, còn gọi là bình phương nhỏ nhất hay bình phương trung bình tối
thiểu, là một phương pháp tối ưu hóa để lựa chọn một đường khớp nhất cho một dải dữ liệu ứng với cực trị của tổng các sai
số thống kê giữa đường khớp và dữ liệu.
Phương pháp này giả định các sai số của phép đo đạc dữ liệu là ngẫu nhiên. Định lý Gauss-Markov chứng minh rằng kết quả
thu được từ phương pháp bình phương tối thiểu không thiên vị và sai số của việc đo đạc dữ liệu không nhất thiết phải tuân
theo, ví dụ, phân bố Gauss. Một phương pháp mở rộng từ phương pháp này là bình phương tối thiểu có trọng số.
Phương pháp bình phương tối thiểu thường được dùng trong khớp đường cong. Nhiều bài toán tối ưu hóa cũng được quy về
việc tìm cực trị của dạng bình phương, ví dụ như tìm cực tiểu của năng lượng hay cực đại của entropy.

Diễn giải
Giả sử dữ liệu gồm các điểm (xi , yi ) với i = 1, 2, ..., n. Chúng ta cần tìm một hàm số f thỏa mãn
f(xi ) ≈ yi
Giả sử hàm f có thể thay đổi hình dạng, phụ thuộc vào một số tham số, p j với j = 1, 2, ..., m.
f(x) = f(p j , x)
Nội dung của phương pháp là tìm giá trị của các tham số p j sao cho biểu thức sau đạt cực tiểu:

Nội dung này giải thích tại sao tên của phương pháp là bình phương tối thiểu.
Đôi khi thay vì tìm giá trị nhỏ nhất của tổng bình phương, người ta có thể tìm giá trị nhỏ nhất của bình phương trung bình:

Điều này dẫn đến tên gọi bình phương trung bình tối thiểu.

Giải quyết
Bài toán thường có lời giải đáng tin cậy khi số lượng các tham số p j nhỏ hơn số lượng các dữ liệu (m < n).
Trong trường hợp, f là hàm tuyến tính của các tham số p j , bài toán trở nên đơn giản hóa rất nhiều, rút gọn thành việc giải
một hệ phương trình tuyến tính. Xem thêm bình phương tối thiểu tuyến tính.
Nếu f không là hàm tuyến tính của các tham số, bài toán trở thành một bài toán tối ưu hóa tổng quát. Bài toán tổng quát này
có thể dùng các phương pháp như phương pháp tối ưu hóa Newton hayphương pháp trượt dốc. Đặc biệt thuật toán Gauss-
Newton hay thuật toán Levenberg-Marquardt là thích hợp nhất cho bài toán bình phương tối thiểu tổng quát này.

Nội dung Page 8


Quản lý văn bản
26 ng i 2010
5:01 CH

- Matlab quản lý văn bản theo bảng mã ASCII


(American Standard Code for Information Interchange - Chuẩn mã trao đổi thông tin Hoa Kì)
vìvậy ko thể sử dụng kí tự Unicode (tức ko thể viết t.V có dấu)

- Để hiện thị văn bản, text phải được đưa vào dấu nháy đơn '…..'

- Khi văn bản được hiển thị, matlab sẽ hiểu đó như 1 ma trận với mỗi kí tự text là 1 phần tử của ma trận
→ làm việc như với 1 ma trận.

Nội dung Page 9


x=a\b=

Thảo luận Page 10


Chuyên cần và tiểu luận
04 ng i 2010
3:25 CH

Stt Họ và tên Tiểu luận Chuyên cần Lên bảng


1 Hoàng Thị Chi
2 Trần Thị Oanh
3 Nguyễn Thị Thu Hằng
4 Lê Thị Hòa
5 Lê Thị Yến
6 Hoàng Thị Mơ
7 Ngô Văn Thịnh
8 Đoàn Trung Dũng
9 Vũ Duy Hùng
10 Phạm Thị Thảo Phương
11 Nguyễn Thanh Mỹ
12 Nguyễn Thị Luyến
13 Nguyễn Thị Hồng
14 Hoàng Tiến Cường
15 Vũ Thị Mỹ Nhị
16 Đặng Tuyết Phương
17 Bùi Hoàng Hải
18 Nguyễn Thị Loan
19 Nguyễn Thị Ngọc Tú
20 Nguyễn Văn Hùng
21 Trần Văn Dưỡng
22 Đỗ Danh Hiếu
23 Cao Thị Thúy

Chuyên cần Page 11

You might also like