Tải bản đầy đủ (.doc) (29 trang)

CHƯƠNG 11 ỨNG DỤNG MATLAB ĐÊ PHÂN TÍCH MẠCH ĐIỆN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (411.69 KB, 29 trang )

Lại Khắc Lãi
CHƯƠNG 11
ỨNG DỤNG MATLAB ĐỂ PHÂN TÍCH MẠCH ĐIỆN
11.1. TỔNG QUAN VỀ MATLAB (xem phụ lục)
11.2. PHÂN TÍCH MẠCH TUYẾN TÍNH Ở CHẾ ĐỘ XÁC LẬP
11.2.1. Bài toán:
 Các dữ liệu cho trước bao gồm:
- Sơ đồ mạch
- Các thông số của các phần tử (Điện trở, điện cảm, điện dung, hỗ cảm)
- Các thông số của nguồn áp và nguồn dòng (nếu có)
 Các thông số cần tính:
- Dòng điện các nhánh
- điện áp trên các phần tử
- Công suất tác dụng và công suất phản kháng
11.2.2. Xây dựng thuật toán phân tích mạch
Để xây dựng thuật toán giải bài toán mạch này, ta chuyển phương trình mạch sang số phức,
khi đó hệ phương trình vi phân mô tả mạch sẽ trở thành hệ phương trình đại số và dễ dàng giải được
bằng bất kỳ ngôn ngữ lập trình nào như Pascal, C
Xét mạch điện tổng quát gồm m nhánh, n nút. Ta sẽ lập được hệ gồm m phương trình vi phân
như sau:
=




 
+ + =

 ÷

 




∑ ∑

k
k
Nót
k k k k k
Vßng Vßng
k
i (t) 0
di
1
R .i L i dt e
dt C
(11.1)
Chuyển hệ phương trình911.1) sang số phức ta có:

=



 

+ ω + =
 ÷
ω

 



∑ ∑
&
& & & &
k
nót
k k k k k k
vßng vßng
k
I 0
1
R I j L I I E
j C
(11.2)

=



 
 

+ ω − =
 
 ÷
ω

 
 



∑ ∑
&
& &
k
nót
k k k k
vßng vßng
k
I 0

1
R j L I E
C
(11.3)
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
177
Lại Khắc Lãi

=


=



∑ ∑
&
& &
k

nót
k k k
vßng vßng
I 0
Z I E
(11.4)
Trong đó:
k
Z
=
k k
k
1
R j L
C
 
+ ω −
 ÷
ω
 
là tổng trở phức của nhánh k.
Hệ phương trình (11.4) là hệ phương trình đại số tuyến tính, ta dễ dàng giải được bằng cách
lập trình trên Matlab. Lưu đồ thuật toán tổng quát để giải bài toán lý thuyết mạch ở chế độ xác lập
được chỉ ra trên hình 2.1. Trong trường hợp mạch có hỗ cảm, ta cần nhập thêm các hệ số hỗ cảm M,
đồng thời trong phần tính toán cần tính thêm các tổng trở hỗ cảm Z
M
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
178
Hình 11.1: Lưu đồ thuật toán phân tích mạch
điện tuyến tính

Kết thúc
Tính công suất P, Q, S
Tính điện áp trên
các phần tử
C = 0
X
C
= 0
X
C
=
Z = R
k
+ j(X
L
- X
C
)
Bắt đầu
Nhập giá trị
R, L, C, M(nếu có), E,
Tính X
L
(X
M
)
Sai
Đúng
Tính dòng điện các
nhánh

Tính ma trận A,B
Lại Khắc Lãi
11.3. MỘT SỐ VÍ DỤ
11.3.1. ví dụ 1: Xét mạch điện có ba nhánh hai nút như hình 11.2. Hãy lập chương trình tính dòng
điện các nhánh, điện áp trên các phần tử, công suất thu và công suất phát của mạch.

Giải
Theo phương pháp dòng điện các nhánh, với giả thiết chiều dòng điện các nhánh như hình 11.2,
ta viết được hệ ba phương trình dưới dạng số phức:
( )
1 2 3
1 1 3 3 1
2 2 3 3 2
I I I 0
Z I Z I E
Z I Z I E

+ − =


+ =


− = −


& & &
& & &
& & &
(11.5)

Trong đó: Z
1
, Z
2
, Z
3
là tổng trở phức các nhánh. Từ hệ phương trình ta lập được các ma trận:

1
1 3 1
2 3 2
1 1 1 0
A Z 0 Z ; B E ; C A
0 Z Z E


   
   
= = =
 
 
   
− −
 
 
&
&
(11.6)
Ma trận dòng điện các nhánh là:
I = C*B (11.7)

I là ma trận cột, mỗi dòng của ma trận là dòng điện của nhánh tương ứng. Từ dòng điện ta tìm
được các thông số trạng thái khác của mạch. Chương trình được viết trên Matlab như sau:
% Chuong trinh phan tich mach o che do xac lap
disp('Hay nhap cac thong so cua mach dien, neu thong so nao khong co thi nhap bang khong')
disp(' Don vi R(om) L(mH) C(10^-6F)' TS(rad/S))
disp(' ')

disp('Nhanh so 1')
R1=input('nhap gia tri Dien tro R1= ');
L1=input('nhap gia tri Dien cam L1= ');
C1=input('nhap gia tri Dien dung C1= ');
E1=input('nhap gia tri E1 = ');
anpha1=input('nhap gia tri goc pha cua E1(don vi: do) anpha = ');
anpha1=anpha1*pi/180; % Doi tu do sang radian

disp('Nhanh so 2')
R2=input('nhap gia tri Dien tro R2= ');
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
179
2
I
&
3
I
&
L
1
C
1
R

1
L
1
L
2
C
2
R
1
L
3
C
3
R
2
R
3
1
I
&
1
E
&
3
E
&
Hình 11.2
Lại Khắc Lãi
L2=input('nhap gia tri Dien tro L2= ');
C2=input('nhap gia tri Dien tro C2= ');

E2=input('nhap gia tri E2 = ');
anpha2=input('nhap gia tri goc pha cua E2 (don vi: do) anpha = ');
anpha2=anpha2*pi/180;% Doi tu do sang radian

R3=input('nhap gia tri Dien tro R3= ');
L3=input('nhap gia tri Dien tro L3= ');
C3=input('nhap gia tri Dien tro C3= ');
E3=input('nhap gia tri E3 = ');
anpha3=input('nhap gia tri goc pha cua E3 (don vi do) anpha = ');
anpha3=anpha3*pi/180;;% Doi tu do sang radian

disp('Tan so goc')
TS=input('nhap gia tri tan so goc TS= ');
%Tinh toan cac thong so
XL1=314*L1*10^-3
XL2=314*L2*10^-3
XL3=314*L3*10^-3
% chu y neu co truong hop ci=0 se xay ra loi chia cho 0
if (C1~=0)
XC1=1/(314*C1*10^-6)
else
XC1=0
end
%%%%%%%%
if (C2~=0)
XC2=1/(314*C2*10^-6)
else
XC2=0
end
%%%%%%%

if C3~=0
XC3=1/(314*C3*10^-6)
else
XC3=0
end

% Tinh toan
% Phai sua doi cach tinh tuy thuoc vao quan he
% dien tro // hay noi tiep voi tu va dien cam
Z1=R1+(XL1-XC1)*i
Z2=R2+(XL2-XC2)*i
Z3=R3+(XL3-XC3)*i
E1=E1*cos(anpha1)+i*E1*sin(anpha1)
E2=E2*cos(anpha2)+i*E2*sin(anpha2)
E3=E3*cos(anpha3)+i*E3*sin(anpha3)

% Thuat toan phai sua doi dau cho phu hop voi chieu dong dien va E1,E2,E3
A=[1 1 -1;Z1 0 Z3;0 Z2 Z3]; % Lap ma tran A
C=inv(A); % Ma tran nghich dao cua A
B=[0;E1;E2]; % Lap ma tran B
I=C*B % Ma tran dong dien
disp('dong dien I1')
I1=I(1,1)
disp('dong dien I2')
I2=I(2,1)
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
180
Lại Khắc Lãi
disp('dong dien I3')
I3=I(3,1)


disp (' Diep ap roi tren cac phan tu ')
UR1=I1*R1
UL1= i*XL1*I1
UC1=-i*XC1*I1

UR2=I2*R2
UL2= i*XL2*I2
UC2=-i*XC2*I2

UR3=I3*R3
UL3= i*XL3*I3
UC3=-i*XC3*I3

% Tinh toan cong suat
disp(' Cong suat phat ')
Sphat=E1*I1+E2*I2;
P=real(Sphat)
Q=imag(Sphat)
disp(' Cong suat thu ')
Sthu=Z1*I1^2+Z2*I2^2+Z3*I3^2
Pthu=real(Sthu)
Qthu=imag(Sthu)
11.3.2. Ví dụ 2:
Cho mạch điện như hình 11.3a, biết:
R
1
= 10(Ω); C
1
= 1000(µF); R

2
= 20(Ω); L
2
= 200(mH);
R
3
= 20(Ω); L3 = 200(mH); R
4
= 10(Ω); L
4
= 100(mH);
ω = 100(rad/s);
e
1
= 20
2
sin(ω+50
0
); e
2
= 15
2
sin(ω+30
0
)
Tính dòng điện qua nhánh 4 bằng phương pháp máy phát
điện tương đương; công suất tác dụng và phản kháng của mạch.
Giải
Tách riêng nhánh 4, biến đổi phần còn lại thành máy phát điện tương đương (hình 11.3b), tính
thông số của máy phát điện tương đương sau đó tính dòng điện nhánh 4 và công suất của mạch.

Chương trình được viết trên Matlab như sau:
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
181
Hình 11.3a,b
R
2
e
1
C
1
L
2
R
1
R
3
L
4
L
3
R
4
e
3
L
4


Z
0

L
4
Z
4
a)
b)
4
I
&
Lại Khắc Lãi
%Vi du 2: May phat dien tuong duong
% Nhap cac thong so:
R1=10; L1=0; C1=1000; E1=20; anpha1=50;
R2=20; L2=200; C2=0; E2=0; anpha2=0;
R3=20; L3=200; C3=0; E3=15; anpha3=30;
R4=10; L4=100; C4=0;Ts=100;
%Tinh Toan:
anpha1=anpha1*pi/180; anpha3=anpha3*pi/180;
XL1=Ts*L1*10^-3;XL2=Ts*L2*10^-3;XL3=Ts*L3*10^-3;XL4=Ts*L4*10^-3;
% chu y neu co truong hop ci=0 se xay ra loi chia cho 0
if (C1~=0); XC1=1/(Ts*C1*10^-6); else XC1=0; end
%%%%%%%%
if (C2~=0); XC2=1/(Ts*C2*10^-6); else XC2=0; end
%%%%%%%
if C3~=0; XC3=1/(Ts*C3*10^-6); else XC3=0; end
%%%%%%%
if C4~=0; XC4=1/(Ts*C3*10^-6); else XC4=0; end

% Tong tro cac nhanh
Z1=R1+(XL1-XC1)*i

Z2=R2+(XL2-XC2)*i
Z3=R3+(XL3-XC3)*i
Z4=R4+(XL4-XC4)*i
% Doi nguon sang dang dai so:
E1=E1*cos(anpha1)+i*E1*sin(anpha1);
E3=E3*cos(anpha3)+i*E3*sin(anpha3);

disp('Dien ap ho mach Uho')
Uho=(E1/Z1+E3/Z3)/(1/Z1+1/Z2+1/Z3)

disp('Tong tro vao Zv')
Zv=1/(1/Z1+1/Z2+1/Z3)

disp('Dong dien I4')
I4=Uho/(Zv+Z4)

disp('Cong suat mach tieu thu')
I4=real(I4)-imag(I4)*i; %Lay lien hop cua dong dien I4
S=Uho*I4
P=real(S)
Q=imag(S)
Sau khi chạy chương trình ta thu được kết quả như sau:
Z1 = 10.0000 -10.0000i
Z2 = 20.0000 +20.0000i
Z3 = 20.0000 +20.0000i
Z4 = 10.0000 +10.0000i
Dien ap ho mach Uho
Uho = 3.8900 +12.7157i
Tong tro vao Zv
Zv = 10

Dong dien I4
I4 = 0.4099 + 0.4308i
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
182
Lại Khắc Lãi
Cong suat mach tieu thu
S = 7.0729 + 3.5364i
P = 7.0729
Q = 3.5364
11.3.3. Ví dụ 3: Cho mạng 4 cực với các tham số như hình 11.4. Hãy xác định các tham số của ma
trận [A] của mạng; Tìm sơ đồ thay thế tương đương hình T và hình ∏ của mạng.
Coi mạng 4 cực trên gồm 2 mạng 4 cực nối xâu chuỗi nhau: Mạng thứ nhất là mạng hình ∏ có
các thông số là: Zd = j100(Ω); Zn1 = Zn2 = j150(Ω); mạng thứ 2 là mạng hình T có các thông số:
Zd1 = -j120(Ω); Zd2 = -j100(Ω); Zn = j150(Ω).
Giải
Chương trình được viết trên Matlab như sau:
%Vi du 3: Mang 4 cưc
% Cac thong so da cho
%Mang thu nhat
Zd=-j*100; Zn1=j*150;Zn2=Zn1;
% Mang thu 2
Zd1=-j*120; Zd2=-j*100; Zn=j*150;
%Ma tran A cua mang thu nhat
A1=[1+Zd/Zn2 Zd;(Zd+Zn1+Zn2)/(Zn1*Zn2) 1+Zd/Zn1]
%Ma tran A cua mang thu hai
A2= [1+Zd1/Zn (Zd1+Zd2+Zd1*Zd2/Zn);1/Zn 1+Zd2/Zn]
%Ma tran A cua mang
A=A1*A2
% Thong so cua so do tuong duong h?nh T
Zd1=(A(1,1)-1)/A(2,1)

Zd2=(A(2,2)-1)/A(2,1)
Zn=1/A(2,1)
% Thong so cua so do tuong duong h?nh Pi
Zd=A(1,2)
Zn1=A(1,2)/(A(2,2)-1)
Zn2=A(1,2)/(A(1,1)-1)
Sau khi chạy chương trình ta thu được:
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
183
Hình 11.4
2
100Ω
150Ω
120Ω
100Ω
150Ω
150Ω
Lại Khắc Lãi
- Ma trận A của mạng thứ nhất:
A1 =
1.0e+002 *
0.0033 0 - 1.0000i
0 - 0.0001i 0.0033
- Ma trận A của mạng thứ 2:
A2 =
1.0e+002 *
0.0020 0 - 1.4000i
0 - 0.0001i 0.0033
- Ma trận A của mạng 4 cực
A =

-0.6000 0 -80.0000i
0 - 0.0040i -1.1333
- Thông số của sơ đồ tương đương hình T
Zd1 = 0 -4.0000e+002i
Zd2 = 0 -5.3333e+002i
Zn = 0 +2.5000e+002i
- Thông số của sơ đồ tương đương hình Π
Zd = 0 -80.0000i
Zn1 = 0 +37.5000i
Zn2 = 0 +50.0000i
11.3.4. Ví dụ 4: Viết chương trình vẽ các đặc tính tần điện áp trên các phần tử của nhánh R-L-C nối
tiếp, biết R = 10(Ω); L = 100(mH); C = 1000(µF)
Giải
Lập chương trình trên Matlab:
%ví du 4: ve dac tinh tan cua nhanh R-L-C noi tiep
% cac thong so da cho
R=10; L=.1; C=10^-3;
%Dat bien tan so là t
t = [1:10:10^4];
% Tong tro cua mach
Z = sqrt(R^2+(t.*L-1./(t*C)).^2);
plot(t,Z)% ve dac tinh tan tong tro
hold on
I=100./Z;
plot(t,I)%ve dac tinh tan dong dien
hold on
Ur=R*I
plot(t,Ur)%Ve dac tinh tan dien ap tren dien tro
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
184

Lại Khắc Lãi
hold on
UL=L.*t.*I
plot(t,UL)%Ve dac tinh tan dien ap tren dien cam
hold on
UC=I.*(1./(C.*t))
plot(t,UC)%Ve dac tinh tan dien ap tren dien dung
Cho chạy chương trình ta thu được các đặc tính tần như hình 11.5
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
185
0 100 200 300 400 500
0
20
40
60
80
100
120
0 100 200 300 400 500
0
10
20
30
40
Hình 11.5
a) b)
I(ω)
z(ω)
U
R

(ω)
U
C
(ω)
U
L
(ω)
Lại Khắc Lãi
PHỤ LỤC
MỘT SỐ KIẾN THỨC CƠ BẢN VỀ MATLAB
Phần 1. TỔNG QUAN VỀ MATLAB
1.1. Giới thiệu chung
MATLAB là 1 phần mềm ứng dụng chạy trong môi trường Windows do hãng MathWorks sản xuất và
cung cấp, nó tích hợp các công cụ rất mạnh phục vụ tính toán, lập trình, thiết kế, mô phỏng, V.V trong một
môi trường rất dễ sử dụng trong đó các bài toán và các lời giải được biểu diễn theo các ký hiệu toán học
quen thuộc. Có thể nói Matlab là ngôn ngữ của kỹ thuật, đang được rất nhiều các nhà khoa học, các cán bộ
kỹ thuật, giảng viên và sinh viên các trường đại học kỹ thuật ưa dùng. Các ứng dụng điển hình là:
- Toán học và tính toán.
- Phát triển thuật toán.
- Tạo mô hình, mô phỏng và tạo giao thức.
- Khảo sát, phân tích số liệu.
- Đồ hoạ khoa học kỹ thuật.
- Phát triển ứng dụng, gồm cả xây dựng giao diện người dùng đồ hoạ GUI.
- Thiết kế các hệ thống điều khiển trong thời gian thực
Matlab cung cấp một họ các phương pháp theo hướng chuyên dụng hóa được gọi là các Toolbox
(hộp công cụ). Các Toolbox cho phép người sử dụng học và áp dụng các kỹ thuật chuyên dụng cho một lĩnh
vực nào đó. Toolbox là một tập hợp toàn diện các hàm của Matlab (M-file) cho phép mở rộng môi trường
Matlab để giải các lớp bài toán cụ thể. Các lĩnh vực trong đó có sẵn các Toolbox bao gồm: Xử lý tín hiệu, hệ
thống điều khiển, logic mờ, mạng nơron, mô phỏng
Hệ thống Matlab gồm có 5 phần chính:

- Ngôn ngữ Matlab: Là một ngôn ngữ ma trận, mảng cấp cao với các câu lệnh, hàm, cấu trúc dữ liệu
vào / ra, các tính năng lập trình hướng đối tượng. Nó cho phép lập trình các ứng dụng từ nhỏ đến các ứng
dụng lớn, từ các ứng dụng đơn giản đến các ứng dụng phức tạp.
- Môi trường làm việc của Matlab: Đây là một bộ các công cụ và phương tiện mà bạn sử dụng với tư
cách là người dùng hoặc người lập trình Matlab. Nó bao gồm các phương tiện cho việc quản lý các biến
trong không gian làm việc Workspace cũng như xuất nhập khẩu dữ liệu. Nó cũng bao gồm các công cụ để
phát triển, quản lý, gỡ rối và định hình M-file, ứng dụng của Matlab.
- Xử lý đồ họa: Đây là một hệ thống đồ họa của Matlab. Nó bao gồm các lệnh cao cấp cho trực quan
hóa dữ liệu hai chiều và ba chiều, xử lý ảnh, ảnh động, Nó cũng cung cấp các lệnh cấp thấp cho phép bạn
tùy biến giao diện đồ họa cũng như đi xây dựng một giao diện đồ họa hoàn chỉnh cho ứng dụng Matlab của
mình.
- Thư viện toán học Matlab: Đây là một tập hợp khổng lồ các thuật toán tính toán từ các hàm cơ bản
như: cộng, trừ, nhân, chia, sin, cos, tang, số học phức tới các hàm phức tạp hơn như: nghịch đảo, ma trận,
tìm trị riêng của ma trận, phép biến đổi Fourier nhanh.
- Giao diện chương trình ứng dụng Matlab API (Application Program Interface): Đây là một thư viện
cho phép bạn viết các chương trình C và Fortran tương thích với Matlab.
Simulink là một chương trình đi kèm với Matlab, là một hệ thống tương tác với việc mô phỏng các
hệ thống động học phi tuyến. Nó là một chương trình đồ họa sử dụng chuột để thao tác cho phép mô hình
hóa một hệ thống bằng cách vẽ một sơ đồ khối trên màn hình. Nó có thể làm việc với các hệ thống tuyến
tính, phi tuyến, hệ thống liên tục theo thời gian, hệ thống gián đoạn theo thời gian, hệ thống đa biến
1.2. Không gian làm việc của Matlab (Matlab Workspace)
Không gian làm việc của Matlab chứa một tập các biến (các mảng được đặt tên) mà bạn có thể thao
tác từ dòng lệnh của Matlab. Có thể sử dụng lệnh Who và whos để xem nội dung của workspace.
Để xóa tất cả các biến đang tồn tại trongWorkpace, gõ >>clear
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
186
Lại Khắc Lãi
Matlab có các lệnh cho phép người sử dụng lưu lại nội dung của Workpace ở bất kỳ thời điểm
nào trong phiên làm việc và sau đó có thể nạp dữ liệu trở lại Matlab trong phiên làm việc đó hoặc trong
phiên làm việc sau đó. Lưu và nạp dữ liệu cũng có thể xuất nhập các file dữ liệu kiểu text.

1.2.1. Lưu không gian làm việc (Saving the Workpace)
Để lưu Workpace, chọn lệnh Save Workpace as từ menu File hoặc gõ lệnh trực tiếp từ cửa sổ lệnh.
Lệnh dữ liệu sẽ lưu nội dung của Workpace thành một file nhị phân có phần mở rộng là .mat. Ví dụ:
>>save data
lưu toàn bộ nội dung Workpace vào file data.mat. Nếu muốn có thể lưu một số biến nhất định bằng
cách đưa thêm tên các biến vào sau tên file:
>>save data x, y, z
chỉ lưu các bién x,y,z,vào file data.mat.
1.2.2. Xuất không gian làm việc (loading the Workpace)
Lệnh nạp sẽ nạp một MAT-file đã được tạo ra trước đó bằng lệnh save. Ví dụ:
>>load data
nạp nội dung file data.matvào không gian làm việc. Nếu file data.mat chứa các biến a ,b, c, thì các biến
này sẽ được đưa trở lại vào Workpace. Nếu các biến này đã tồn tại trong Workpace thì chúng sẽ bị ghi đè.
Trong windows, nạp lại Workpace có thể thực hiện bằng cách chọn lệnh:
Load Workpace từ menu File.
Phần 2. MA TRẬN VÀ CÁC PHÉP TOÁN VỀ MA TRẬN TRONG MATLAB
2.1 Khái niệm
Các dữ liệu đưa vào xử lý trong MATLAB đều dưới dạng ma trận. Ma trận A có n hàng, m cột được
gọi là ma trận cỡ n × m. Được ký hiệu A
n
×
m
, phần tử a
ij
của ma trận A
n
×
m

là phần tử nằm ở hàng thứ i, cột j.

Ta chú ý một số ma trận sau:
- Ma trận đơn ( số đơn lẻ ) là ma trận 1 hàng 1 cột.
- Ma trận hàng ( 1 × m ) số liệu được bố trí trên một hàng.
- Ma trận cột ( n × 1) số liệu được bố trí trên 1 cột.
2.1.1 Qui định để định nghĩa một ma trận trong Matlab
Tên ma trận (có thể đến 31 ký tự), bắt đầu phải bằng chữ cái sau đó có thể là số, chữ cái, các ký tự đặc
biệt Tên đặt bên trái dấu bằng, bên phải dấu bằng là các phần tử của ma trận, các phần tử của ma trận
được đóng bằng dấu ngoặc vuông ([]), các phần tử trong trong cùng một hàng được cách nhau bởi ký tự
trống hoặc dấu phẩy (, ), các phần tử thuộc các hàng khác nhau cách nhau bởi dấu (;).
2.1.2 Các phương pháp nhập một ma trận
+ Liệt kê trực tiếp, ví dụ lệnh:
>> A =[1 2 3; 4 5 6 ; 7 8 9]
Kết quả cho ra một ma trận có 3 hàng, 3 cột
+ Nhập thông qua lệnh input, ví dụ lệnh:
>> input('Nhap gia tri cho ma tran A = ') ↵
Nhap gia tri cho ma tran A = [1 23;4 5 6;7 8 9] ↵
ans =
1 2 3
4 5 6
7 8 9
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
187
Lại Khắc Lãi
 Chú ý:
+ Kết thúc một câu lệnh ta có thể dùng dấu (;) hoặc không dùng dấu (;), nếu dùng dấu (;) câu lệnh
được thực hiện nhưng kết quả không hiện ra màn hình; nếu không dùng dấu (;) câu lệnh được thực hiện và
kết quả được hiện ra màn hình. Trong cả 2 trường hợp sau khi câu lệnh được thực hiện, kết quả đều được lưu
vào bộ nhớ và có thể sử dụng cho các câu lệnh tiếp theo.
+ Các phần tử trong ma trận có thể là các số phức, ví dụ lệnh:
>> B = [1+2i 2+2i;3-i 1+2i] sẽ cho ma trận

B =
1.0000 + 2.0000i 2.0000 + 2.0000i
3.0000 - 1.0000i 1.0000 + 2.0000i
+ Các phần tử trong ma trận có thể là các ký tự, để làm được điều này trước tiên ta phải khai báo các
phần tử bằng lệnh syms, ví dụ:
>> syms sinx cosx a ↵
>> C = [ sinx cosx; a cosx] ↵ cho ta ma trận:
C =
[ sinx, cosx]
[ a, cosx]
2.1.3 Hiển thị lại ma trận
Để hiển thị lại ma trận ta gõ tên ma trận sau ấn ↵, ví dụ
>> A ↵ sẽ cho ta ma trận A
A =
1 2 3
4 5 6
7 8 9
2.2. Xử lý trong ma trận
2.2.1. Tạo ma trận véctơ : việc tạo ma trận véc tơ được thực hiện theo công thức sau:
Biến = giới hạn đầu : bước chạy : gới hạn cuối
Trong đó: Giới hạn đầu, giới hạn cuối, bước chạy: là các số thực, bước chạy có thể dương hoặc âm.
Ví dụ 1: Tạo 1 vectơ t chạy từ 0 đến 0.6 với bước chạy tiến là 0.1
>> t=0: 0.1:0.6 ↵
t =
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
Ví dụ 2: Tạo 1 vectơ t chạy từ 0.6 đến 0 với bước chạy lùi là 0.1
>>t = 0.6:-0.1:0 ↵
t =
0.6000 0.5000 0.4000 0.3000 0.2000 0.1000 0
Chú ý : Trong trường hợp giới hạn trên, gới hạn dưới đều là các số nguyên và bước chạy bằng 1 thì ta

không cần đưa bước chạy vào trong biểu thức, ví dụ:
>> C = 1:5 ↵ ta được kết quả:
C =
1 2 3 4 5
2.2.2 Gọi các phần tử trong ma trận.
MATLAB cho phép ta xử lý đến từng phần tử của ma trận, để truy cập đến từng phần tử của
ma trận ta gọi chúng thông qua chỉ số của từng phần tử với các nội dung: Tên của ma trận (Chỉ số
hàng, chỉ số cột), ví dụ:
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
188
Lại Khắc Lãi
>> A = [1:3; 4:6; 7:9] ↵ (Tạo ma trận A có kích thước 3X3)
A =
1 2 3
4 5 6
7 8 9
>> B = A(1,1) ↵ (Xuất phần tử ở hàng 1, cột 1)
B =
1
Chú ý: Trong trường hợp ta muốn gọi tất cả các phần tử trong một hàng hoặc tất cả các phần tử trong
một cột ta dùng toán tử hai chấm (:), ví dụ:
>> C = A(2,:) ↵ (xuất các phần tử thuộc dòng 2 của ma trận A)
C =
4 5 6
>> D = A(:,2) ↵ (xuất các phần tử thuộc cột 2 của ma trận A)
D =
2
5
8
2.2.3. Gọi ma trận con từ một ma trận lớn.

Ví dụ:
>> A = [1:3; 4:6; 7:9] ↵ (tạo ma trận A
3X3
)
A =
1 2 3
4 5 6
7 8 9
>> B = A ( 2:3,1:2 ) ↵ (gọi phần tử 2, 3 của hàng 2 và phần tử 1, 2 của hàng 3)
B =
4 5
7 8
2.3 Các ma trận đặc biệt
4.3.1 Ma trận không (zeros): Tất cả các phần tử trong ma trận đều bằng 0.
>> C = zeros (2,3) ↵ (tạo ma trận zêro có 2 hàng, 3 cột)
C =
0 0 0
0 0 0
4.3.2 Ma trận đơn vị (ones): Tất cả các phần tử trong ma trận đều bằng 1
>> C = ones (2,3)↵ (tạo ma trận đơn vị có 2 hàng, 3 cột)
C =
1 1 1
1 1 1
4.3.3 Ma trận ma phương Magic: Ma trận này có tổng giá trị các phần tử trên hàng = tổng giá trị các phần
tử trên cột = tổng tất cả giá trị các phần tử trên đường chéo của ma trận, ví dụ:
>> A = Magic (3) ↵
A =
8 1 6
3 5 7
4 9 2

Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
189
Lại Khắc Lãi
2.3.4 Ma trận eye: có tất cả các phần tử trên đường chéo chính bằng 1, các phần tử khác có giá trị 0, ví dụ:
>> B = eye (3)
B =
1 0 0
0 1 0
0 0 1
2.4 CÁC PHÉP TOÁN VECTOR
Phép toán Công thức Matlab
Cộng, trừ A+B, A-B A+B, A-B
Nhân mảng A.B = C A.*B
Chia trái mảng B\A B.\A
Chia phải mảng A/B A./B
Luỹ thừa mảng A
B
A.^B
2.4.1 Các phần tử là các số thực:
>>A = [1 1 2;2 1 1] ↵
A =
1 1 2
2 1 1
>> B = [1 2 2; 1 1 1] ↵
B =
1 2 2
1 1 1
>> C = A.*B ↵
C =
1 2 4

2 1 1
>> D = A./B ↵
D =
1.0000 0.5000 1.0000
2.0000 1.0000 1.0000
>> E = A.\B ↵
E =
1.0000 2.0000 1.0000
0.5000 1.0000 1.0000
>> F = A.^B ↵
F =
1 1 4
2 1 1
2.4.2 Các phần tử là số phức.
>>A = [1+i 2+3i;3-4i 1+3i] ↵
A =
1.0000 + 1.0000i 2.0000 + 3.0000i
3.0000 - 4.0000i 1.0000 + 3.0000i
>> B = [2+i 2+2i;1-4i 3+3i] ↵
B =
2.0000 + 1.0000i 2.0000 + 2.0000i
1.0000 - 4.0000i 3.0000 + 3.0000i
>> C = A.*B ↵
C =
1.0000 + 3.0000i -2.0000 +10.0000i
-13.0000 -16.0000i -6.0000 +12.0000i
2.4.3 Các phần tử là các tham số:
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
190
Lại Khắc Lãi

>> syms a b c d ↵
>>A=[a b; c d] ↵
A =
[ a, b]
[ c, d]
>> B = A ↵
B =
[ a, b]
[ b, c]
>> C=A.*B ↵
C =
[ a^2, b^2]
[ c^2, d^2]
2.5 CÁC PHÉP TOÁN VỀ MA TRẬN
2.5.1 Phép chuyển vị: Chuyển đổi hàng thành cột và ngược lại. Thực hiện phép chuyển vị bằng toán tử dấu
nháy đơn ( ' ), ví dụ:
>> A = [1:3; 4:6; 7:9] ↵
A =
1 2 3
4 5 6
7 8 9
>> B = A

↵ (Ma trận chuyển vị của ma trận A)
B =
1 4 7
2 5 8
3 6 9
2.5.2 Tổng, hiệu 2 ma trận: Phép cộng và trừ ma trận được thực hiện với các ma trận có cùng kích thước,
các phần tử tương ứng của 2 ma trận được cộng (hoặc trừ) với nhau theo công thức: C

ij
= A
ij
± B
ij
, ví dụ:
>> A = [1:3; 4:6; 7:9] ↵
A =
1 2 3
4 5 6
7 8 9
>> B = A

↵ (Ma trận B là chuyển vị của ma trận A)
B =
1 4 7
2 5 8
3 6 9
>> C = A + B ↵ (Tổng 2 ma trận)
C =
2 6 10
6 10 14
10 14 18
2.5.3 phép nghịch đảo ma trận: được thực hiện bởi hàm inv, ví dụ:
>> A = [1 2;4 5] ↵
A =
1 2
4 5
>> B=inv(A) ↵
B =

-1.6667 0.6667
1.3333 -0.3333
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
191
Lại Khắc Lãi
>> C = A*B
C =
1.0000 0
0.0000 1.0000
2.5.4 Phép nhân: C = A*B. Để thực hiện được phép nhân hai ma trận thì số cột của ma trận A phải bằng số
hàng của ma trận B, ví dụ:
>> A = [1 2 1; 1 0 1] ↵
A =
1 2 1
1 0 1
>> B = [1 0 2; 2 1 1; 1 1 1] ↵
B =
1 0 2
2 1 1
1 1 1
>> C = A * B ↵
C =
6 3 5
2 1 3
2.5.5 Phép chia: Phép chia ma trận thực chất là phép nhân với ma trận nghịch đảo, ví dụ:
>> A = [1 2 1; 1 0 1] ↵
A =
1 2 1
1 0 1
>> B = [1 0 2; 2 1 1; 1 1 1] ↵

B =
1 0 2
2 1 1
1 1 1
>> C = inv(B) ↵
C =
0 1.0000 -1.000
-0.5000 -0.5000 1.5000
0.500 -0.5000 0.5000
>> D = A*C ↵
D =
- 0.5000 -0.5000 2.5000
0.5000 0.5000 -0.5000
2.5.6 Phép quay ma trận: Thực hiện quay ma trận B đi 1 góc 90 độ theo ngược chiều kim đồng hồ, ví dụ:
>> A = [1 2 3;4 5 6;7 8 9] ↵
A =
1 2 3
4 5 6
7 8 9
>> B = rot90(A) ↵
B =
3 6 9
2 5 8
1 4 7
4.5.7 Phép đảo ma trận: Đảo các phần tử của ma trận từ trái sang phải, ví dụ:
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
192
Lại Khắc Lãi
>> C = fliplr(B) ↵
C =

9 6 3
8 5 2
7 4 1
Phần 3. MỘT SỐ ỨNG DỤNG CƠ BẢN CỦA MATLAB
3.1 Nhân 2 đa thức: Để nhân 2 đa thức, ta dùng lệnh conv, ví dụ cho 2 đa thức:
y
1
= a
n
x
n
+ a
n-1
x
n-1
+ + a
0
y
2
= b
n
x
n
+ b
n-1
x
n-1
+ + b
0
Để nhân 2 đa thức trên, ta thực hiện theo các bước sau:

+ Lập 2 ma trận hàng với tên là y1và y2 có các phần tử là các hệ số từ a
n
đến a
0
và b
n
đến b
0
giảm dần
theo bậc của phương trình, hệ số nào không có thì ghi 0;
+ Nhân 2 đa thức bằng lệnh conv: y
3
= conv(y
1
y
2
), ví dụ cho 2 đa thức: y
1
= x
2
+ 3x + 5; y
2
= 3x
2
+ 4x
ta thao tác theo các lệnh sau:
>> y1 = [1 3 5]; ↵
>> y2 = [3 4 0]; ↵
>> y3 = conv(y1,y2) ↵
y3 = 3 13 27 20 0

Vậy, y
3
= 3x
4
+ 13x
3
+ 27x
2
+ 20x
3.2 Giải phương trình bậc cao: (Lệnh Roots)
a
n
x
n
+ a
n-1
x
n-1
+ +a
0
= 0
+ Lập ma trận hàng với tên là y có các phần tử là các hệ số từ a
n
đến a
0
giảm dần theo bậc của phương
trình, hệ số nào không có thì ghi 0;
+ Dùng lệnh Roots để tìm nghiệm.
 Ví dụ: giải phương trình sau: x
5

- 2x
4
+ 5x
2
- 1= 0, ta thao tác theo các lệnh sau:
>> y = [ 1 -2 0 5 0 -1] ↵
y =
1 -2 0 5 0 -1
>> KQ = roots(y) ↵
KQ =
1.5862 + 1.1870i
1.5862 - 1.1870i
-1.1606
-0.4744
0.4627
3.3 Biết nghiệm tìm lại phương trình: ( lệnh poly )
 Ví dụ: Tìm phương trình biết các nghiệm của nó là 1 và -5, ta thao tác theo các lệnh sau:
>>A = [1 – 5 ]; ↵
>> poly(A) ↵
ans =
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
193
% Giai he phuong trinh dai so tuyen tinh
% Nhap ma tran A
A = [2 3 4;3 6 -4;1 2 3];
% Nhap ma tran B
B = [9;19;2];
% lay ma tran A nghich dao
C = inv(A);
% Nghiem

X = C*B
Lại Khắc Lãi
1 4 -5
3.4 Chuyển từ phương trình hệ số sang phương trình có chứa cả tham số: (poly2sym)
 Ví dụ: chuyển phương trình có các hệ số: a
4
= 1; a
3
= 3; a
2
= 0; a
1
= -5 sang phương trình chứa tham
số:
>> poly2sym([1 3 0 -5])
ans =
x^3 + 3*x - 5
3.5 Giải hệ phương trình đại số tuyến tính:
 Ví dụ: giải hệ phương trình tuyến tính sau:
1 2 3
1 2 3
1 2 3
2x 3x 3x 8
3x 6x 4x 19
x 2x x 2
+ + =


+ − =



+ + =

Thực chất hệ phương trình trên có thể đưa về phép toán ma trận sau:
1
2
3
2 3 3 x 9
3 6 4 x 19
1 2 3 x 2
− × =
A.X = B
Như vậy việc giải hệ PT tuyến tính thực chất là thực hiện phép toán về ma trận, ta có:
1
1
X .B A .B
A

= =
Để giải hệ phương trình này ta cần thực hiện qua các bước sau:
- Lập ma trận A, B;
- Lấy ma trận nghịch đảo A
-1
- Nghiệm
1
X A .B

=
Chương trình giải hệ phương trình đại số được viết:
Lưu chương trình và cho chạy, ta thu được các nghiệm:

X =
11.0000
-3.0000
-1.0000
3.6 Giải hệ phương trình đại số phi tuyến:( Lệnh solve)
Để giải hệ phương trình đại số phi tuyến, ta dùng lệnh solve với cú pháp:
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
194
Lại Khắc Lãi
[biến 1, biến 2, …] = solve('phương trình 1', 'phương trình 2'…)
 Ví dụ 1: Giải hệ phương trình
2
2
x xy y 3
x 4x 3 0

+ + =


− + =



Gõ lệnh: >> [x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')↵ ta thu được các cặp nghiệm
x =
[ 1]
[ 3]
y =
[ 1]
[ -3/2]

 Ví dụ 2: Giải hệ phương trình:

2
3
sin x y logz 7
3x 2y z 4
x y x 2

+ + =

+ + =


+ + =

>> [x,y,z]=solve('sin(x)+y^2+log(z)=7','3*x+2^y+z^3=4','x+y+z=2')↵
Các nghiệm là:
x = -2.3495756224572032187410536400368
y = 2.6835269194785219427270239079010
z = 1.666048702978681276014029732135
3.7 Giải hệ phương trình tham số: Để giải hệ phương trình tham số ta dùng lệnh solve với cú pháp tương
tự như trên, ví dụ cần giải hệ:
2 2
au v 0
u v 1

+ =

− =



Thực hiện lệnh: >> [u,v] = solve('a*u^2 + v^2 = 0','u - v = 1')↵ ta được
u =
1/2/(a+1)*(-2*a+2*(-a)^(1/2))+1
1/2/(a+1)*(-2*a-2*(-a)^(1/2))+1
v =
1/2/(a+1)*
(-2*a+2*(-a)^(1/2))
1/2/(a+1)*(-2*a-2*(-a)^(1/2)
3.8 Giải hệ phương trình vi phân thường: ( lệnh dsolve)
- Đối với phương trình vi phân không có điều kiện đầu ta sử dụng cú pháp: >> y = dsolve('phương
trình')↵
 Ví dụ: Giải phương trình vi phân: x' + ax + 1 = 0, ta thực hiện lệnh:
>> x = dsolve('Dx+a*x+1=0')↵
x = -1/a+exp(-a*t)*C1
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
195
Lại Khắc Lãi
- Đối với phương trình vi phân có điều kiện đầu ta sử dụng cú pháp: >> y = dsolve('phương trình','điều
kiện đầu')↵
 Ví dụ: Giải phương trình vi phân: x' + ax + 1 = 0, với x(0) = 0, ta thực hiện lệnh:
>> x = dsolve('Dx+a*x+1=0','x(0)=0')↵
x = -1/a+exp(-a*t)/a
- Đối với hệ phương trình vi phân, cú pháp lệnh là:
>> [biến 1, biến 2,…] = dsolve('phương trình 1', 'phương trình 2', …)
 Ví dụ: Giải hệ phương trình:
dx
y
dt
dy

x
dt

=




= −


>>[x,y] = dsolve('Dx = y', 'Dy = -x') ↵
x = C1*sin(t) + C2*cos(t)
y = C1*cos(t) - C2*sin(t)
3.9 Giải hệ phương trình vi phần theo hàm có sẵn của Matlab:
 Ví dụ: Cho hệ phường trình vi phân:
1 2 3
2 1 3
3 1 2
y' y y
y' y y
y' 0,5y y
=


= −


= −


với các điều kiện đầu: y
1
(0) = 0; y
1
(0) = 1; y
3
(0) = 1
Chương trình mô tả phương trình vi phân dạng M-file:
function dy = rigid(t,y)
dy = zeros(3,1);
dy(1) = y(2) * y(3);
dy(2) = -y(1) * y(3);
dy(3) = -0.51 * y(1) * y(2);
Thời gian giải phương trình vi phân Tspan =[0 12], vector điều kiện đầu [0 1 1]
>>options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]);
>>[t,y] = ode45('rigid',[0 12],[0 1 1],options);
>>plot(t,y(:,1),'-',t,y(:,2),' ',t,y(:,3),'.')
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
196
0 2 4 6 8 10 12
-1.5
-1
-0.5
0
0.5
1
1.5
Lại Khắc Lãi
6.3 L
Phần 4: MỘT SỐ PHÉP BIẾN ĐỔI TRONG MATLAB

4.1 Tính toán (Calculus):
4.1.1. Tính đạo hàm (diff):
 diff(S): Đạo hàm biểu thức symbolic S với biến của đạo hàm tự do.
 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.
 diff(S,n) : Đạo hàm cấp n biểu thức S, n là số nguyên dương.
 Ví dụ 1:
>>syms x t
>> y = sin(x^2); ↵
>>z = diff(y) ↵
z = 2*cos(x^2)*x
>>y = diff(t^6,6) % đạo hàm bậc 6 của hàm t
6
.
y = 720
 Ví dụ 2:
>>syms u v
>>y = u^2*v - u*v^3; ↵ % cho biểu thức với 2 biến u và v
>> y2u = diff(y,u,2) % đạo hàm cấp 2 theo u
>> y3u = diff(y,v,3) % đạo hàm cấp 2 theo v
y2u = 2*v
y3u = -6*u
4.1.2.Tính tích phân( int):
 int(S): Tích phân không xác định của biển thức symbolic S với biến tự do mặc định. Muốn biết biến
mặc định ta dùng lệnh fìndsym.
 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ích phâ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ích phân v và cận lấy
tích phân từ [a,b].

 Vidụ 1:
>>syms x t z alpha
>>int(-2*x/(1+x^2)^2)
ans = 1/(1+x^2)
>>int(x/(1+z^2),z)
ans = x*atan(z)
>>int(x*log(1+x),0,1)
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
197
Lại Khắc Lãi
ans = 1/4
>>int(-2*x/(1+x^2)^2)
ans = 1/(1+x^2)
>> int([exp(t),exp(alpha*t)])
ans = [ exp(t), 1/alpha*exp(alpha*t)]
Vídụ 2: Tính tích phân I =


∞−

dxe
sx
2
)(
>>Syms x s real
>>f = exp(-(s*x)^2);
>>I = int(f,x,-inf,inf)% inf là vô cùng lớn
I =
Signum(s)/s*pi^(1/2)
Hàm signum chính là hàm sign (hàm dấu), nghĩa là sign(s) cho ta:

sign(s) = 1 khi s>0; sign(s) = 0 khi s =0; sign(s) = -1 khi s<0;
4.1.3. Tính giới hạn(limit):
 limit(F, x, a) : Tìm giới hạn của biểu thức F khi x

a.
 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
 Ví dụ:
>>syms x a t h
>>limit(sin(x)/x)
ans = 1
>>limit(1/x,x,0,’right’)
ans = inf
>>limit(1/x,x,0,’left’)
ans = -inf
>>limit((sin(x+h)-sin(x))/h,h,0)
ans = cos(x)
>>v = [(1+a/x)^x,exp(-x)];
>>limit(v,x,inf,’left’)
ans = [exp(a),0]
4.1.4. Tính tổng của dãy số là các biến symbolic(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

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 từ 0

k - 1.
 symsum(S,a,b), symsum(S,v,a,b): Tổng của biểu thức symbolic S theo symbolic v, v được xác định

từ v = a đến v = b.
 Ví dụ 1:
>>syms k n x
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
198
Lại Khắc Lãi
>>symsum(k^2)
ans = 1/3*k^3-1/2*k^2+1/6*k
>>symsum(k)
ans = 1/2*k^2-1/2*k
>>symsum(sin(k*pi)/k,0,n)
ans = -1/2*sin(k*(n+1))/k+1/2*sin(k)/k/(cos(k)-1)*cos(k*(n+1))-1/2*sin(k)/k/(cos(k)-1)
>>symsum(k^2,0,10)
ans = 385
>>symsum(x^k/sym(‘k!’), k, 0,inf)
ans = exp(x)
 Vi dụ: Cho tổng của 2 dãy
S1 = 1 +
++
22
3
1
2
1
….
S2 = 1 + x + x
2
+…
>>syms x k
>>s1 = symsum(1/k^2,1,inf) %inf là vô cùng.

s1 = 1/6*pi^2
>>s2 = symsum(x^k,k,0,inf)
Tìm hàm ngược (finverse):
 finverse(f): Tìm hàm ngược của f. f là hàm symbolic với một biến x
 finverse(f,u): Tìm hàm ngược của f. f là hàm symbolic với một biến u.
 Ví dụ 2:
>>syms u v x
>>finverse(1/tan(x))
ans = atan(1/x)
>>finverse(exp(u-2*v),u)
ans = 2*v+log(u)
s2 = -1/(x-1)
4.2. Khai triển
4.2.1. Khai triển taylor(taylor):
 taylor(f)
taylor(f,n,v): Cho ta xấp xỉ đa thức theo Maclaurin bậc (n-1) của biểu thức, hàm khai triển symbolic
f và v là biến độc lập trong biểu thức. v có thể là một xâu (string) hay là biến symbolic.
 taylor(f,n,v,a): Khai triển Taylor của biểu thức hay hàm symbolic f quanh điểm a. Đối số có thể là
giá trị số, một hàm symbolic hay một xâu…Nếu không cho gía trị n thì mặc nhiên trong Matlab n =
6.
 Vi dụ:
Khai triển Taylor của hàm f = e
xsin(x)
quanh điểm x
0
= 2 (Nếu x
0
= 0 ta có khai triển Maclaurin).
>>syms x
>> f = exp(x*sin(x));

Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
199
Lại Khắc Lãi
>>t = taylor(f,4,2) % khai triển 4 số hạng đầu tiên khác o và xung quanh điểm x
0
= 2
f = exp(2*sin(2)) + exp(2*sin(2))*(2*cos(2) + sin(2))*(x-2) + exp(2*sin(2)) *(-sin(2) + cos(2) +
2*cos(2)^2 + 2*cos(2)*sin(2) + 1/2*sin(2)^2)*(x-2)^2 + exp(2*sin(2)) * (-1/3*cos(2)-1/2*sin(2)-
cos(2)*sin(2) + 2*cos(2)^2-sin(2)^2 + 4/3*cos(2)^3 + 2*cos(2)^2*sin(2) +cos(2)*sin(2)^2 +
1/6*sin(2)^3)*(x-2)^3
4.2.2. Các hàm làm đơn giản hoá các biểu thức:
a) Gom số hạng, biến(collect):
 collect(S): S là đa thức, gom các số hạng chứa biến x
 collect(S,v): S là đa thức, gom các số hạng chứa biến v
 Ví dụ:
>>syms x y;
>>R1 = collect((exp(x)+x)*(x+2))
>>R2 = collect((x+y)*(x^2+y^2+1), y)
>>R3 = collect([(x+1)*(y+1),x+y])
R1 = x^2+(exp(x)+2)*x+2*exp(x)
R2 = y^3+x*y^2+(x^2+1)*y+x*(x^2+1)
R3 = [(y+1)*x+y+1, x+y]
b) Khai triển biểu thức(expand):
 Ví dụ:
>>syms x y a b c t
>>expand((x-2)*(x-4))
ans = x^2-6*x+8
>>expand(cos(x+y))
ans = cos(x)*cos(y)-sin(x)*sin(y)
>>expand(exp((a+b)^2))

ans = exp(a^2)*exp(a*b)^2*exp(b^2)
>>expand(log(a*b/sqrt(c)))
ans = log(a)+log(b)-1/2*log(c)
>>expand([sin(2*t), cos(2*t)])
ans = [2*sin(t)*cos(t), 2*cos(t)^2-1]
c) Phân tích biểu thức thành thừa số (factor):
 factor(X): Phân tích biểu thức mảng symbolic X thành thừa số.
 Ví dụ:
>>syms x y a b
>>factor(x^3-y^3)
(x-y)*(x^2+x*y+y^2)
>>factor([a^2-b^2, a^3+b^3])
[(a-b)*(a+b), (a+b)*(a^2-a*b+b^2)]
>>factor(sym('12345678901234567890'))
(2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541)
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
200
Lại Khắc Lãi
Phân tích đa thức ra dạng thừa số(horner):
 R = horner(p):
 Ví dụ:
>>syms x y
>>horner(x^3-6*x^2+11*x-6)
ans = -6+(11+(-6+x)*x)*x
>>horner([x^2+x;y^3-2*y])
ans = [ (1+x)*x]
[(-2+y^2)*y]
Lấy tử số và mẫu số(numden):
 Ví dụ:
>>syms x y a b

>>A= (4-x)/5;
>>[n,d] = numden(A)
n = 4-x
d = 5
>>[n,d] = numden(x/y + y/x)
n = x^2+y^2
d = y*x
>>A = [a, 1/b]
>>[n,d] = numden(A)
n = [a, 1]
d = [1, b]
Tìm dạng tối giản của đa thức( simple, simplify):
 R = simplify(S)
 R = simple(S)
 [r, how] = simple(S)
 Ví dụ:
>>syms x y a b c
>>simplify(sin(x)^2 + cos(x)^2)
ans = 1
>>simplify(exp(c*log(sqrt(a+b))))
ans = (a+b)^(1/2*c)
>>S = [(x^2+5*x+6)/(x+2),sqrt(16)];
>>R = simplify(S)
R = [x+3,4]
4.3. Các phép biến đổi
4.3.1. Biến đổi Furiê
a) Biến đổi Furiê thuận
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
201

×