Hãy tính dòng trong mạch và điện áp trên từng phần tử . Hãy vào cửa sổ soạn thảo và trong cửa sổ này ta viết chương trình như sau: R=input( nhap gia tri cho R = ) C=input( nhap gia tri cho C = ) L=input( nhap gia tri cho L = ) U=input( nhap gia tri cho U = ) ZL=250piLi
Trang 1Chapter 2: LỆNH CƠ BẢN CỦA MATLAB
1 Một số phím chuyên dụng và lệnh thông dụng
- Hoặc Ctrl + p : Gọi lại các lệnh đã thực hiện trước đó
- Hoặc Ctrl +n : Gọi lại lệnh vừa thực hiện trước đó
- Hoặc Ctrl + f : chuyển con trỏ sang bên phải 1 ký tự
- hoặc Ctrl + b: chuyển con trỏ sang trái một ký tự
- Dấu “;” dùng trong […] để kết thúc một hàng của ma trận
- hoặc kết thúc một biểu thức hoặc câu lệnh mà không hiển thị kết quả ra mà hình
- nhảy xuống dòng dưới
- Ctrl + A hoặc Home : chuyển con trỏ về đầu dòng
- Ctrl + E hoặc End: Chuyển con trỏ đến cuối dòng
- BackSpace: Xoá ký tự bên trái con trỏ
- Esc: xoá dòng lệnh
- Ctrl + K : Xoá từ vị trí con trỏ đến cuối dòng
- Ctrl + C : Dừng chương trình đang thực hiện
- Clc : lệnh xoá màn hình
- Clf: Lệnh xoá màn hình đồ hoạ
- Input: lệnh nhập dữ liệu vào từ bàn phím
- Demo: lệnh cho phép xem các chương trình mẫu
- Help: lệnh cho phép xem phần trợ giúp
- Ctrl – c: Dừng chương trình khi nó bị rơi vào trạng thái lặp không kết thúc
2 Một số biến đã được định nghĩa trước
ans: Answer - tự động gán tên này cho kết quả của một phép
tính mà ta không đặt tên
VD >> [ 1 2]
ans =2
pi = 3.1415926535897
Trang 2realmin: đưa ra giá trị của số nhỏ nhất mà máy tính có thể tính toán được.
i, j: Đơn vị ảo của số phức.
inf: infinity- vô cùng lớn.
clear: xóa tất cả các biến khỏi vùng làm việc
clear name: xóa các biến hay hàm được chỉ ra trong name
clear functions: xóa tất cả các hàm trong bộ nhơ
clear variables: xóa tất cả các biến ra khỏi bộ nhớ
clear mex: xóa tất cả các tập tin mex ra khỏi bộ nhớ
clear: xóa tất cả các biến chung
clear all: xóa tất cả các biến, hàm, và các tập tin mex khỏi bộ nhớ Lệnh này làm cho
Trang 3clear global
clear all
c) Giải thích:
clear: xóa tất cả các biến khỏi vùng làm việc
clear name: xóa các biến hay hàm được chỉ ra trong name
clear functions: xóa tất cả các hàm trong bộ nhơ
clear variables: xóa tất cả các biến ra khỏi bộ nhớ
clear mex: xóa tất cả các tập tin mex ra khỏi bộ nhớ
clear: xóa tất cả các biến chung
clear all: xóa tất cả các biến, hàm, và các tập tin mex khỏi bộ nhớ Lệnh này làm cho
Trang 5tử
Công dụng
+ Cộng ma trận hoặc đại lượng vô hướng (các ma trận phải có cùng kích
thước)
- Trừ ma trận hoặc đại lượng vô hướng (các ma trận phải có cùng kích thước)
* Nhân ma trận hoặc đại lượng vô hướng (ma trận 1 phải có số cột bằng số
hàng của ma trận 2)
.* Nhân từng phần tử của 2 ma trận hoặc 2 đại lượng vô hướng (các ma trận
phải có cùng kích thước)
\ Thực hiện chia ngược ma trận hoặc các đại lượng vô hướng (A\B tương đương với inv (A)*B)
.\ Thực hiện chia ngược từng phần tử của 2 ma trận hoặc 2 đại lượng vô
hướng (các ma trận phải có cùng kích thước)
/ Thực hiện chia thuận 2 ma trận hoặc đại lượng vô hướng (A/B tương đương với A*inv(B))
./ Thực hiện chia thuận từng phần tử của ma trận này cho ma trận kia (các ma
trận phải có cùng kích thước)
^ Lũy thừa ma trận hoặc các đại lượng vô hướng
.^ Lũy thừa từng phần tử ma trận hoặc đại lượng vô hướng (các ma trận phải
có cùng kích thước)
* ví dụ:
1
x 2
3
4
y 5
6
x’ 1 2 3 y’ 4 5 6
5
x + y 6
7
-3
x – y -3
-3
3
x + 2 4
5
-3
x – 2 -3
-3
x * y phép toán sai 4
x * y 10
18
x’* y 32 x’.* y phép toán sai
4 5 6
x * y’ 8 10 12
x * y’ phép toán sai
Trang 62
x * 2 4
6
2
x.* 2 4
6
x \ y 16/7 4
x.\ y 5/2 2
1/2 2 \ x 1
3/2 2
2./ x 1
2/3 0 0 1/6 x / y 0 0 1/3 0 0 1/2 1/4 x./ y 2/5 1/2
1/2 x / 2 1
3/2 1/2 x./ 2 1
3/2 x ^ y phép toán sai 1/2 x.^ y 32
729
x ^ 2 phép toán sai 1
x.^ 2 4
9
2 ^ x phép toán sai 2
2.^ x 4
8
Ví dụ : Giải phương trình bậc hai ax2 +bx +c = 0 Ta biết các
nghiệm của phương trình này có dạng:
x =
2a
vì Matlab là một chương trình tính toán số nên chúng ta phải xác định các giá trị a, b, c
Dấu = được sử dụng để gán giá trị của a, b, c như sau ( gõ phím Enter ở cuối mỗi hàng)
>>a = 2
a =
2
>>b = 5;
b
Trang 7>>c = -3; %Dấu “;” ở cuối dòng thì Matlab sẽ không hiển thị lại giá trị
VD về Script file: Giải bài tập mạch: cho mạch điện như hình vẽ
Hãy tính dòng trong mạch và điện áp trên từng phần tử
Hãy vào cửa sổ soạn thảo và trong cửa sổ này ta viết chương trình như sau:R=input( 'nhap gia tri cho R = ')
C=input( 'nhap gia tri cho C =
') L=input( 'nhap gia tri cho L
= ') U=input( 'nhap gia tri cho
Trang 8C = 0.1000nhap gia tri cho L =0.2
L = 0.2000nhap gia tri cho U =
Trang 10& Thực hiện phép toán logic AND.
Thực hiện phép toán logic OR
~ Thực hiện phép toán logic NOT
a) Giải thích:
Kết quả của phép toán là 1 nếu phép logic là đúng và là 0 nếu phép logic là sai.Phép logic có chế độ ưu tiên thấp nhất so với phép toán số học và phép toán sosánh
[] Khai báo vector hoặc ma trận
() Thực hiện phép toán ưu tiên, khai báo các biến và các chỉ số của vector
Trang 11; Ngăn cách giữa các hàng khi khai báo ma trận.
A(j , k) Chỉ phần tử A(j), A(j+1)…A(k)
A(: , j , k) Chỉ các phần tử A(:, j), A(:, j+1)…A(:, k)
for biến điều khiển = giá trị đầu : giá trị cuối,
thực hiện công việc;
Trang 12Lilama2 chao cac ban
Lilama2 chao cac ban
Lilama2 chao cac ban
Lilama2 chao cac ban
Lilama2 chao cac ban
radian: function rad = change(do)
rad = do*pi/180; % doi do sang radian
Trong Matlab các dòng ghi chú sau dấu % không có tác dụng thực thi,chúng đơn giản là những dòng nhắc để người đọc chương trình dễ hiểu mà thôi.File.m thường lấy tên là tên của hàm, ta đặt tên file hàm vừa lập là change.m Nếumuốn đổi 450 sang radian, chỉ cần gõ:
từ khoá (keyword)
Trang 13tên biến = input (‘promt’)
tên biến = input (‘promt’, ‘s’)
c) Giải thích:
tên biến, là nơi lưu giá trị ngập vào
‘promt’: chuỗi ký tự muốn nhập vào
‘s’: cho biết giá trị nhập vào là nhiều ký tự
d) Ví dụ1:
x = input(‘nhập giá trị của biến x: ’)
nhập giá trị của biến x: 5
x = 5e) Ví dụ2:
trả_lời = input(‘bạn có muốn tiếp tục không ? ’,’s’)
bạn có muốn tiếp tục không ? không
trả_lời = không
10.6.Lệnh if đơn:
Cú pháp: if <biểu thức logic>
Trang 14disp(' hinh thangnguoc') end
y=(a+b)*c/2;
Sau đó ghi (save) vào file có tên là ht.m
Quay lại cửa sổ MatLab command Window, gõ vào dòng lệnh sau:
>> ht(2,4,2)hinh thangnguoc ans =6
Trang 15else end
10.10.Kết hợp cấu trúc elseif và else
a=input(' vao a=')
Trang 16disp (' pt co 2 nghiem phan biet')
thực hiện công việc 1;
elseif biểu thức luận lý 2
thực hiện công việc 2;
a nhỏ hơn b
10.12.Câu điều kiện và lệnh Break
Cú pháp: if< biểu thức logic>
break end
thoát khỏi vòng lặp nếu điều kiện logic đúng Ngược lại sẽ thực hiện lệnh tiếp theo trong vòng lặp
Trang 17pause off: tắt chức năng pause.
pause (n): dừng chương trình tại n giây
Press any key to continue…
Press any key to continue…
Press any key to continue…
Trang 18for chỉ số 2 = biểu thức 2 nhóm lệnh 2
end
nhóm lệnh 1;
end VD:
while biểu thức luận lý
thực hiện công việc;
Trang 19while i <= n
a = a + 1/i
i = i + 1;
enddisp(‘ket qua’);
disp(a);
nhap vao so n 3
ket qua
1.8333
10.16 Các lệnh break, return, error:
Lệnh break: kết thúc sự thự thi vòng lặp for hoặc while
Lệnh return: thường được sử dụng trong các hàm của Matlab Lệnh return sẽ cho phép quay trở về thực thi những lệnh nằm trong tác dụng của lệnh return Lệnh error (‘dòng nhắn’): kết thúc thực thi lệnh và hiển thị dòng nhắn trên mànhình
Ví dụ:
Chọn một số dương bất kỳ Nếu số đó là số chẵn thì chia hết cho hai Nếu số
đó là số lẻ thì nhân với 3 rồi cộng 1 Lặp lại quá trình đó cho đến khi kết quả là 1
Chươngtrình:
while 1n=input ('Nhap vao mot
so : ');
if n<=0breakendwhilen>1
if rem(n,2)== 0% phan du cua n chia cho 2 n=n/2
elsen= 3*n+1
Trang 20end end
Khi chạy chương trình ta sẽ thấy tác dụng của lệnh break (dừng chương trình khinhập số âm hoặc số 0)
B1(BT4a): Viết chương trình nhập vào một số n(n>=0)
với các trường hợp sau:
a) Nếu n<0 thì in thông báo bạn nhập sai
b) Nếu n>0 và lẽ thì tính tổng s1=1+3+5+ +n,n là số lẽ
c) Nếu n>0 và chẵn thì s2=2+4+6+ +n,n chẵn
d) Nếu n=0 dừng chương trình lại
% BT4a: Viet chuong trinh nhap vao mot so n(n>=0)
% voi cac truong hop sau:
% a) Neu n<0 thi in thong bao ban nhap sai
% b) Neu n>0 va le thi tinh tong s1=1+3+5+ +n,n la so le
% c) Neu n>0 va chan thi s2=2+4+6+ +n,n chan
% d) Neu n=0 dung chuong trinh lai
n=input('nhap n= '); %nhap so n
du=rem(n,2); %kiem tra n la le hay chan
%neu n le du=1, n chan du=0
if n<0
fprintf('Ban nhap sai') %xuat ra thong bao
end
if (n>0) & (du==1) %neu n>0 va le
i=1; %gan i=1;
s1=1; %gan tong s1=1
while i<n %thuc hien vong lap
i=i+2; %tang i len 2 sau moi lan lap
s1=s1+i; %tinh tong s1 voi gia tri i moi
end
s1 %in ra ket qua sau khi ket thuc vong lap
Trang 22Chapter 3: CÁC HÀM TOÁN HỌC CƠ BẢN
sinh sinh(x) hàm sin hyperbolic
cosh cosh(x) hàm cos hyperbolic
tanh tanh(x) hàm tang hyperbolic
asinh asinh(x) hàm arcsin hyperbolic
acosh acosh(x) hàm arccos hyperbolic
abs abs (x) Lấy giá trị tuyệt đối hoặc độ lớn của số phứcround round(x) làm tròn đến số nguyên gần nhất
fix fix(x) làm tròn hướng về không
floor floor(x) làm tròn hướng về - ∞
ceil ceil(x) làm tròn hướng về + ∞
rem rem(x) phÇn d sau khi chia
Trang 23gcd gcd(x) ước số trung lớn nhấtlcm lcm(x) Bội số trung nhỏ nhất
log log(x) logarit cơ số e
log2 log2(x) logarit cơ số 2
log10 log10(x) logarit cơ số 10
Trang 27Chapter 4 TẬP LỆNH THAO TÁC TRÊN MA TRẬN
1 Cộng, trừ, nhân, chia từng phần tử của ma trận với hằng số
Trang 29Nếu muốn ii để chỉ số ảo Ta định nghĩa ii= sqrt(-1) Sau đó bạn viết:
>> a=3+ 4*ii
a=
3+ 4*i
>>A=[ 1+2*i , 3+4*i ; 5+6*i, 4+5*i ]
A=[ 1+2*i 3+ 4*i
y: tên của vector
x1, x2: giới hạn giá trị lớn nhất và nhỏ nhất của vector y
n: số phần tử của vector y
Nếu không có giá trị n thì mặc định n = 100
Trang 30d) Ví dụ:
y = linspace(1, 10, 7)
y = 1.0000 2.5000 4.0000 5.5000 7.00008.5000 10.0000
Trang 31y = rand(3,5)
y =
0.2625 0.3282 0.9910 0.9826 0.6515 0.0475 0.6326 0.3653 0.7227 0.0727 0.7361 0.7564 0.2470 0.7534 0.6316
Trang 33Điểm 0 của hàm số là điểm (0,x), đây cũng chính là nghiệm của hàm số Nếu hàm
số có nhiều nghiệm thì sẽ tìm được nghiệm gần giá trị x0
Trang 35m: biến chứa kết qủa.
a: tên vector hay ma trận cần tính giá trị trung bình.Nếu a là ma trận thì tính giá trị trung bình của mỗi cột.d) Ví dụ:
Trang 36p: biến chứa kết quả.
x: tên ma trận hay dãy số
Nếu là ma trận nhân từng phần tử cuả mỗi cột d) Ví dụ:
Trang 37kq: biến chưá kết quả.
i: số thứ tự cuả phần tử trước khi sắp xếp
Nếu x là ma trận thì sắp xếp theo thứ tự tăng dần của từng cột.d) Ví dụ:
Trang 40off: không hiển thị lưới tọa độ.
x,y: vẽ giá trị x theo giá trị y
linetype: kiểu phần tử tạo nên nét vẽ bao gồm 3 thành phần:
-. Đường gạch chấm Đường nét đứt đoạn
- Thành phần thứ ba là các ký tự chỉ loại điểm đánh dấu gồm:., o, x, +, *d) Ví dụ:
Vẽ đồ thị hàm y = sin(x) với đồ thị màu lam, đường liền nét và đánh dấu các điểm được chọn bằng dấu *, trục x thay đổi từ 0 tới 2, mỗi bước thay đổi là /8
Trang 43
6 Lệnh POLAR
a) Công dụng:
Vẽ đồ thị trong hệ trục tọa độ cực.b) Cú pháp:
Trang 44text: tên tiêu đề.
9 Lệnh XLABEL, YLABEL, ZLABEL
Trang 45% Tạo vecter x từ 0 tới10 với bước 0.1.
>> y = sin(x);% Nhập hàm
>> plot (x,y) % Vẽ hàm y theo biến x
>>grid on % Tạo chia ô cho đồ thị
VD 2: vẽ đồ thị y = ax+ bx với a = sin, b =cosx biến thiên từ 0 đến 2*pi
>> x = 0: pi/100: 2*pi;
>> y= sin(x)+cos(x);
>> plot(x,y)
>>grid on
VD 3: Tạo biến từ hàm linspace :
Tên biến = linspace ( Điểm đầu, điểm cuối,
% vẽ y bằng dấu x mầu đen, y1
bằng dấu * mầu xanh thẫm
>> plot(x,y,’xk’,x,y1,’*b’);
% Tên đồ thị
>> title(' Do thi ham cosx & ham cos2x')
>> xlabel(' Truc Hoanh')
Trang 47Chapter 7: SYMBOLIC TOOLBOX 1.Lệnh và hàm trong Symbolic Matlab
>> x = sym(‘x’,’ real’) % x là biến kiểu thực
>> y = sym(‘y’) %y là biến bất kỳ kiểu symbolic
Để xoá đặc tính “real” của các biến x, y ta dùng lệnh sau: syms x y unreal
Để tính đạo hàm của một biểu thức symbolic ta sử dụng hàm diff()
+ diff(S): Đạo hàm biểu thức symbolic S với biến tự do được xác định bởi hàmfindsym(S)
+ diff(S,v) hay diff(S,sym(‘v’)): Đạo hàm biểu thức symbolic S với biến lấyđạo hàm là biến symbolic v nghĩa là thực hiện phép toán dS/dv
+ diff(S,n) : Đạo hàm cấp n biểu thức S, n là số nguyên dương
Trang 48y = 720
>>syms u v
>>y = u^2*v - u*v^3;
>> y2u = diff(y,u,2) %dao ham cap 2 theo
u
y2u = 2*v
>> y3u = diff(y,v,3) %dao ham cap 3 theo
v y3u = -6*u
1.3.Phép tích phân
Để tính tích phân của một biểu thức symbolic ta sử dụng hàm int()
+ int(S) : tích phân không xác định của biểu thức symbolic S với biến mặc địnhxác định bởi findsym
+ int(S, v): Tích phân không xác định của biểu thức symbolic S với biến tíchphân v
+ int(S,a,b): Tích phân không xác định của biểu thức symbolic S với biến tự do
và cận lấy tích phân từ [a,b]
+ int(S,v,a,b): Tích phân không xác định của biểu thức symbolic S với biến tíchphân v và cận lấy tích phân từ [a,b]
Trang 491.4.Tìm giới hạn
Để tìm giới hạn của một biểu thức symbolic ta sử dụng hàm limit()
+ limit(F, x, a) : Tìm giới hạn của biểu thức F khi xa
+ limit(F, a) : Tìm giới hạn của biểu thức F với biến độc lập
+ limit(F) : Tìm giới hạn của biểu thức F khi a = 0
+ limit(F, x, a, ‘right’) hoặc Lim it(F, x, a, ‘left’) : Tìm giới hạn phải hoặc bên Trái
2.Tính tổng của dãy số symbolic
Để tính tổng của một biểu thức symbolic ta sử dụng hàm symsum()
+ symsum(S): Tổng của biểu thức symbolic theo biến symbolic k , k được xác định bằng lệnh findsym từ 0 tới k -1
+ symsum(S,v): Tổng của biểu thức symbolic S theo biến symbolic v,v được xác định
Trang 503.Tách tử số và mẫu số của một biểu thức symbolic
[n,d] = numden(A): biến đổi mỗi phần tử của A thành dạng hữu tỷ trong đó tử số và mẫu số là các đa thức (tương đối) nguyên tố với các hệ số nguyên
4.Biểu diễn biểu thức symbolic dưới dạng toán học
Sử dụng hàm pretty(S) để hiển thị S dưới dạng dễ đọc hơn như trong quy ước toán họcthông thường Ví dụ:
Trang 51>>syms x a
>>s=solve(x^3+a*x+1);
>>pretty(s)
5.Giải phương trình đại số
Sử dụng lệnh solve để giải hệ phương trình đại số
Lệnh solve( ) có các cú pháp như sau:
Hàm dsolve tính toán lời giải symbolic cho các phương trình vi phân thường
Các ký hiệu D2, D3,…, Dn tương ứng với đạo hàm bậc 2, 3,…, n Vì vây, D2y tương đương với d2y/dt2 Trong lời giải dsolve thì biến độc lập mặc định là t Lưu ý rằng tên của biến symbolic không được chứa ký tự D
Nếu điều kiện đầu không được xác định thì lời giải sẽ chứa các hằng số tích phân C1, C2,
Cú pháp của lệnh dsolve: dsolve(‘PT1’, ‘PT2’,…, ‘PTn’)
7.Biến đổi laplace và laplace ngược
+ L = laplace(F): Biến đổi Laplace của hàm F với biến độc lập mặc định là t Kết quả trả về là một hàm của s Nếu F = F(s) thì Laplace trả về một hàm của t: L = L(t) Theo định nghĩa, L(s) = int(F(t)*exp(-s*t),0,inf) và phép tích phân được thực hiện với t+ L = laplace(F,t): L là một hàm của t thay thế biến mặc định s
8.Hệ Phương trình tuyến tính không đồng nhất
Phương trình như sau gọi là phương trình tuyến tính KĐN
a1*x1 + a2*x2 + + an*xn = b