Professional Documents
Culture Documents
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
1. Cách tạo 1 vecto, ma trận hàng, cột; nhiều hàng nhiều cột.
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.
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
+ 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.
plot(y) = plot(real(y),imag(y))
+ '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)
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.
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
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];
>> [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
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.
- Để 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.