Professional Documents
Culture Documents
I/ Mục đích
1. Làm quen với môi trường làm việc của MATLAB
2. Các lớp dữ liệu trong MATLAB
3. Thực hành về mảng số
4. Thực hành về đồ họa trong MATLAB
-----------------------------------------------------------------------------------------
Ví dụ 1.5: Vẽ đồ thị 1D
-----------------------------------------------------------------------------------------
% + Bang ham plot:
% - plot(<x>,<y>,<frm>,<x1>,<y1>,<frm1>,...)
% - plot(<x>,<y>,<x1>,<y1>,...)
figure(1)
x = 0:0.5:10;
y1 = cos(2*x)./(x+1)+1.2;
y2=0.1*x.*cos(2*x)+1.2;
plot(x,y1,':+b',x,y2,'-*r');
% Them tieu de cho hinh ve, cac truc,cac duong bieu dien va
% ghi chu o cac diem dac biet:
title('Do thi 2 dao dong');
xlabel('t-thoi gian');ylabel('x-li do');
legend('x= cos(2*t)/(t+1)+1.2','x= 0.1*t*cos(2*t)+1.2',2);
text(9.2,2.2,'Cuc dai');gtext('Cuc tieu');
Thực hành Vật lý tính toán 1 Ngôn ngữ lập trình Matlab 2
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
Khoa Vật lý - Bộ môn Tin học Vật lý
P. 408-T5, 334 Nguyễn Trãi, Thanh Xuân, Hà Nội – ĐT: 04. 35584085
Buổi 02: CÂU LỆNH ĐIỀU KHIỂN, HÀM DO NGƯỜI DÙNG LẬP
I/ Mục đích
1. Thực hành về nhập/xuất dữ liệu: input, disp, fprintf, save, load, menu
2. Thực hành về các lệnh điều khiển: if…end, switch…end, for…end, while…end
3. Thực hành về các hàm do người dùng tự lập: function, inline
Thực hành Vật lý tính toán 1 Ngôn ngữ lập trình Matlab 3
Ví dụ 2.5: Vòng lặp với số bước xác định for…end
-----------------------------------------------------------------------------------------
% Vong lap for...end
% Tinh tong rieng khai trien ham y=cos(x) n+1 so hang
clc;close all; clear all;
N=10; % So lan lap
ak=1;fcos=0;
x=pi/4;
for k=1:N
fcos=fcos+ak;
ak=((-1)^k).*(x.^(2*k))./factorial(2*k);
end;
fcos,cos(x)% So sanh
-----------------------------------------------------------------------------------------
Ví dụ 2.6: Vòng lặp với số bước không xác định while…end
-----------------------------------------------------------------------------------------
% Vong lap while...end
%Tinh tong rieng khai trien ham y=cos(x) den sai so tol
clc;close all; clear all;
tol=1e-12; % Sai so
k=1;ak=1;fcos=0;
x=pi/4;
while abs(ak)>tol
fcos=fcos+ak;
ak=((-1)^k).*(x.^(2*k))./factorial(2*k);
k=k+1;
end;
fcos(k),cos(x),k% So sanh
-----------------------------------------------------------------------------------------
Ví dụ 2.7: Hàm do người dùng lập inline/@
-----------------------------------------------------------------------------------------
% Ham do nguoi dung lap: inline
% y=f(x)=x^2-4*x+3
% 1.Khoi tao ham bieu thuc inline truc tiep
f1=inline('x.^2-4.*x+3','x') % f1=@(x) (x.^2-4.*x+3)
% Hoac tu bien sym
syms x, f=x^2-4*x+3;
f2=inline(vectorize(f),'x') % f2= eval ([‘@(x)’,vectorize(f)])
% 2.Goi ham
xx=0:.1:5;
yy1=subs(f1,x,xx); % Cach 1
yy2=f2(xx); % Cach 2
% 3.Ve do thi
figure(1);plot(xx,yy1,'r')
figure(2);plot(xx,yy2,'b')
-----------------------------------------------------------------------------------------
III/ Bài Tập
Bài 2.1: Viết chương trình nhập độ dài 3 cạnh của tam giác, kiểm tra xem có hình thành tam giác
không? Nếu có, hãy tính diện tích của tam đó sử dụng công thức Heron
Bài 2.2: Viết chương trình nhập 1 sô nguyên dương N, kiểm tra xem số đó có là số nguyên tố không?
Bài 2.3: Viết chương trình nhập hai số tự nhiên, tìm ước chung lớn nhất (UCLN), bội chung nhỏ nhất
(BCNN) của 2 số đó?
Bài 2.4: Viết hàm tính giá trị của hàm sin(x), arctan(x), sinh(x), cosh(x), exp(x), ln(1+x),… theo công
thức khai triển Taylor với sai số cho trước tol
Thực hành Vật lý tính toán 1 Ngôn ngữ lập trình Matlab 4
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
Khoa Vật lý - Bộ môn Tin học Vật lý
P. 408-T5, 334 Nguyễn Trãi, Thanh Xuân, Hà Nội – ĐT: 04. 35584085
I/ Mục đích
1. Thực hành các lệnh tính toán về mảng số và ma trận
2. Thực hành các lệnh giải tích cơ bản trong Matlab tính: Giới hạn, đạo hàm
Thực hành Vật lý tính toán 1 Ngôn ngữ lập trình Matlab 5
s3=limit((1+2*t/x)^(3*x),x,inf)
s4=limit(1/x,x,0,'right')
s5=limit(1/x,x,0,'left')
s6=limit((sin(x+h)-sin(x))/h,h,0)
v = [(1 + a/x)^x, exp(-x)];s7=limit(v,x,inf,'left')
-----------------------------------------------------------------------------------------
Ví dụ 3.5: Tính đạo hàm
-----------------------------------------------------------------------------------------
clc;clear all;
% Ham 1 bien
syms x
y=4*x^3-3*x^2+5*x;
dy=diff(y,'x')
d2y=diff(y,'x',2)
% Ham 2 bien
syms u v x y z
f=u*exp(-u^2-v^2),F=[x*y*z; y; x+z]
funf=inline(vectorize(f),'u','v')
% Tinh dao ham
Dfu=diff(f,u), Dfv=diff(f,v)
Dfuu=diff(f,u,2), Dfvv=diff(f,v,2)
Dfuv=diff(Dfu,v), Dfvu=diff(Dfv,u)
% Tinh jacobian*
J=jacobian(F,[x y z])
J1=[diff(F(1),x),diff(F(1),y),diff(F(1),z);
diff(F(2),x),diff(F(2),y),diff(F(2),z);
diff(F(3),x),diff(F(3),y),diff(F(3),z)]
-----------------------------------------------------------------------------------------
2. Bài tập
Bài 3.1:
Cho ma trận magic A (5x5)
a/ Tính vết của ma trận A
b/ Tính tổng của các phần tử trên đường chéo đối lập với đường chéo chính.
c/ Tạo ma trận B từ ma trận A bằng cách thay cột đầu tiên của A bởi véc tơ V1=(4 8 4 4 8), cột thứ 3
bởi véc tơ V2=(2 4 2 2 4). Tính định thức của A, B,
d/ Tính A+B, A*B, A.*B, B/A, A\B, B./A, A.\B
Bài 3.2: Tính các giới hạn sau
( x 2 x 2) 20 x100 2 x 1 x x x
a. lim b. lim c. lim
x 2 ( x 3 12 x 16)10 x 1 x 50 2 x 1 x x 1
x 3 x 4 x sin x sin a
d. lim e. lim f. lim x cos x
x 2x 1 x a xa x 0
Bài 3.3: Tính đạo hàm riêng của các hàm số sau
x3 y 3 x2 y 2 x
a. f ( x, y ) b. f ( x, y ) ln c. f ( x, y) e xy cos x sin y
x2 y 2 x y x
2 2
Thực hành Vật lý tính toán 1 Ngôn ngữ lập trình Matlab 6