Theo bài giảng của Danilo Scepanovíc
Trong bài này, chúng ta sẽ tìm hiểu những tính năng được xây dựng từ nền tính toán của MATLAB, bao gồm
1. Tính toán với biểu thức chữ (Symbolics)
2. Simulink
3. Xuất nhập dữ liệu từ file bên ngoài
4. GUI - Lập giao diện người dùng
1.Tính toán với biểu thức chữ (Symbolics Toolbox)
Các biến biểu tượng (Symbolic Variables)
Các biến biểu tượng là 1 loại dữ liệu đặc biệt, vừa giống với double, vừa giống với char
Để tạo các biến biểu tượng sử dụng lệnh sym
>> a=sym(‘1/3’);
>> b=sym(‘4/5’);
>> mat=sym([1 2; 3 4]);
Để tạo các phân số
>> c=cym(‘c’,’positive’); % 'positive': tags để thu hẹp phạm vi của biến
% Gõ help sym sẽ thấy được 1 list các tags
Hoặc có thể khởi tạo biến sử dụng lệnh syms
>> syms x y real % Cũng tương đương với x=sym(‘x’,’real’); y=sym(‘y’,’real’);
Các biểu thức tính toán với biến biểu tượng
Biểu diễn phép nhân, cộng, chia.
>> d=a*b % Thực hiện 1/3*4/5=4/15;
>> expand((a-c)^2);
ans =
1/9-2/3*c+c^2
>> factor(ans) % Biểu diễn dưới dạng thừa số.
ans =
1/9*(3*c-1)^2
>> matInv= inv(mat) % Tính ma trận nghịch đảo
ans =
[-2 , 1]
[3/2, -1/2]
Làm gọn các biểu thức chữ: MATLAB hỗ trợ nhiều cách làm gọn các biểu thức tính toán chữ
Lệnh pretty: làm biểu thức trông dễ nhìn hơn
>> pretty((a-c)^2)
ans =
1/9 - 2/3c +c^2
Lệnh collect: nhóm các số hạng tương tự lại với nhau
>> collect(3*x+4*y-1/3*x^2-x+3/2*y)
ans=
2*x+11/2*y-1/3*x^2
Lệnh simplify : đơn giản hóa biểu thức
>>simplify(cos(x)^2+sin(x)^2)
ans =
1
Lệnh sub : thay thế biến bởi một số hoặc một biểu thức khác
>> subs(‘c^2’,c,5)
ans =
25
>> subs(‘c^2’,c,x/7)
ans =
1/49*x^2
Chúng ta có thể tính toán bằng các biến biểu tượng với các ma trận.
Tính toán ma trận với các phần tử ma trận là các biến biểu tượng
>> mat=sym(‘[a b;c d]’);
>> mat2=mat*[1 3;4 -2]
mat2 =
[a+4*b, 3*a-2*b]
[c+4*d, 3*c-2*d]
Tính định thức
>> d=det(mat)
d =
a*d-b*c
Tính ma trận nghịch đảo
>> i = inv(mat)
i =
[d/(a*d-b*c) , -b/(a*d-b*c)]
[-c/(a*d-b*c), a/(a*d-b*c)]
Việc truy cập tới các thành phần của ma trận này giống như với ma trận thường
>> i(1,2)
ans =
-b/(a*d-b*c)
Bài tập
1. Phương trình của đường tròn bán kính r tọa độ (a,b) được đưa ra như sau:
(x-a)^2+(y-b)^2=r^2
Sử dụng solve để giải phương trình theo x và sau đó là cho y.
2. Tính tích phân từng phần dưới đây.
Sử dụng lệnh int để tính tích phân theo biến và sau đó tính toán giá trị số bằng cách thay thế a = 0 và b = 2.
Hướng dẫn:
1. Giải phương trình. Nên tìm hiểu về lệnh solve trước khi làm bài (gõ help solve)
>>syms a b r x y
>>solve(‘((x-a)^2+(y-b)^2=r^2’,’x’)
>>solve(‘((x-a)^2+(y-b)^2=r^2’,’y’)
2. Tính tích phân (gõ help int để xem cách dùng lệnh int)
>>Q=int(x*exp(x),a,b)
>>subs(Q,{a,b},{0,2})