Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
679,99 KB
Nội dung
1
TIN HỌC CHUYÊN NGÀNH DÀNH CHO KHOA CƠ ĐIỆN
LẬP TRÌNHTÍNHTOÁN TRONG MATLAB
SỐ TIẾT: 45 (30 LÝ THUYẾT + 15 THỰC HÀNH)
1. Sách, giáo trình chính:
-Lập trình Matlab và ứng dụng, Nguyễn Hoàng Hải - Nguyễn Việt
Anh, NXB Khoa học và kỹ thuật
-Bàigiảng LẬP TRÌNHTÍNHTOÁN TRONG MATLAB - Đỗ Thị Mơ
2. Sách tham khảo
- Matlab for engineers, Adrian Biran - Moshe Breiner, Addision Wesley
Publishing Company.
-Cơ sở Matlab & ứng dụng, Nguyễn Hữu Tình-Lê Tấn Hùng- Phạm Thị
Ngọc Yến-Nguyễ Thị Lan Hương, NXB Khoa học và kỹ thuật
- Matlab & Simulink, Nguyễn phùng Quang, NXB Khoa học và kỹ thuật
3. Giáo viên: Đỗ Thị Mơ -Bộ môn Công nghệ phần mềm
Email: dtmo@hau1.edu.vn
Chương 1: Giớithiệu chung
1. Không gian làm việccủaMatlab
Cửasố lệnh củaMatlabcódấumời(dấunhức) là dấu>>. Tại
đây ta có thể gõ vào các lệnh củaMatlabhoặc gõ các biến.
Những lệnh hoặcbiến đượclưu trong không gian làm việccủa
Matlab và có thểđượcgọilạikhitacần. Dùng các mũitên(↓↑ )
để chọncáclệnh, có thể cắt, copy, dán và sửachữa dòng lệnh.
Ví du:
>> X=2
X=
2
>> A=’XIN CHAO’
A=
XIN CHAO
Nếu ta không nhớ tên biến, ta có thể yêu cầu Matlab cho danh
sách các biến bằng cách đánh lệnh who từ dấu nhắc lệnh.
>>
w
ho
2
2. Biến
* Tên biến: Tên biến là một dãy kí tự đượcbắt đầu bằng chữ
cái, có độ dài tối đa là 31 kí tự, bao gồmcácchữ cái, chữ số và
dấu gạch dưới ( _ ), có phân biệtchữ hoa và chữ thường.
Ví dụ : x ; a12 ; b_a
Có thể gán giá trị cho tên biến bằng cách viết:
Tên_biến = biểuthức
Ví dụ :
>> x=20
>>a12=4
>>A12= ‘ABCD’
* Matlab có các biến đặcbiệt được cho trong bảng sau:
1−
Số lớnnhấtcóthểđượccủasố thựcrealmax
Số nhỏ nhấtcóthểđượccủasố thựcrealmin
Số các đốisố hàm đưaranarout
Số các đốisốđưavàohàmđượcsử dụngNargin
i=j=
i hoặcj
Dùng để chỉ số không xác định như kếtqẩucủa0/0NAN hoặcnan
Để chỉ số vô cùng như kếtquả của1/0Inf
Số của phép toán số
thựcFlops
Số nhỏ nhất, nếucộng thêm 1 sẽđượcsố nhỏ nhấtlớnhơn1Eps
π = 3.1415
Pi
Tên biếnmặc định dùng để trả về kếtquảAns
Giá trị
Các biến đặc
biệt
3
Các biến đặcbiệt ở trên có sẵngiátrị, nếu ta thay đổigiátrị củanóthìgiátrị
ban đầusẽ mấtchođếnkhitakhởi động lại Matlab thì nó mớitrở lạigiátrị
ban đầu. Không nên thay đổigiátrị củacácbiến đặcbiệt.
Ví dụ:
>> i
ans =
0 + 1.0000i
>> j
ans =
0 + 1.0000i
>> i*i
ans =
-1
>> pi
ans =
3.1416
>> eps
ans =
2.2204e-016
>> realmin
ans =
2.2251e-308
>> realmax
ans =
1.7977e+308
3. Xoá các biếntrongkhônggianlàmviệc
Để xoá các biếntadùnglệnh clear , có các cách sau:
-Xoámộtbiến clear tên_biến
>> clear x
- Xoá nhiềubiến clear tên_biếm1 tên_biến2
>> clear a b c
-Xoámộtnhómbiến tên trùng nhau mộtsố kí tự: clear a* % xoá các
biếncótênbắt đầulàa.
4
-Xoátấtcả các biến trong không gian làm việc: clear
Dùng lệnh trên tấtcả các biếnbị xoá không khôi phục được, do
vậytaphảithậntrọng khi dùng nó.
4. Câu gải thích và sự chấm câu
* Câu giảithích: Câugiảithíchđượcviếtsaudấu%
>> a=100 % a nhậngiátrị 100
* Có thể viết nhiềulệnh trên một dòng, chúng đượcngăncách
bởidấuphẩyhặcdấuchấmphẩy. Dấuphẩylà yêucầuhiển
thị kếtqủa trên màn hình, còn dấuchấmphẩylàkhônghiểnthị
kếtquả trên màn hình.Ví dụ:
>> A=2,B='abcde',x=456.32;y='mnopq'
A =
2
B =
abcde
y =
mnopq
* Dùng dấu ba chấm ( . . . ) viết sau phép toán để chỉ câu lệnh được
tiếp tục ở hàng dưới. Không dùng dấu ba chấm cho các trường hợp khác, hay
cho câu giải thích.
>> x=10,y=20
x =
10
y =
20
>> z=x+
y
z =
30
5. Các phép toán số học
Các phép tính số họccủa Matlab được cho trong bảng sau :
2^3^Phép luỹ thừa
4/2=2 hoặc 2\4=2/ ( chia trái) ,\ (chia phải) Phép chia
3*5*Phép nhân
8-2-Phép trừ
5+4+Phép cộng
Ví dụKí hiệu
Phép tính
5
Các phép tính trên có mức độ ưu tiên như sau :
1. Phép luỹ thừa.
2. Phép nhân, phép chia
3. Phép công, phép trừ.
>> x=2+10/5+4^2-6*2
x =
8
6. Số phức
Một trong các ưu thế củaMatlablàlàmviệcvớisố phức. Số phứccủaMatlab
được định nghĩa theo nhiều cách.
* Cách 1 : Chèn kí tự i hoặc j vào phần ảo.
>> c1=1+3i
c1 =
1.0000 + 3.0000i
>> c1=2-4j
c1 =
2.0000 - 4.0000i
* Cách 2 : Dùng căn bậchaicủasố âm.
>> c2=3+sqrt(-1)
c2 =
3.0000 + 1.0000i
>> c2=4-sqrt(-4)
c2 =
4.0000 - 2.0000i
* Cách 3 : Dùng biểuthức*i hoặc*j
>> c3=2-sin(1)*j
c3 =
2.0000 - 0.8415i
>> c3=3+cos(1)*i
c3 =
3.0000 + 0.5403i
>> c3=4+2*i
c3 =
4.0000 + 2.0000i
>> c3=4+(6/3)*i
c3 =
4.0000 + 2.0000i
6
* Các phép toán đốivớisố phức đềuthaotáctương tự như số thực.
>> a=2+3i
a =
2.0000 + 3.0000i
>> b=1+4i
b =
1.0000 + 4.0000i
>> a+b
ans =
3.0000 + 7.0000i
>> a-b
ans =
1.0000 - 1.0000i
>> a/b
ans =
0.8235 - 0.2941i
>> a*b
ans =
-10.0000 +11.0000i
* Có thể biểudiễnsố phức ở dạng cực ( độ lớn và góc)
M∠θ ≡ M.eiθ = a+bi
Ở trên số phứcbiểudiễnbằng độ lớn M và góc θ, quan hệ
giữa các đạilượng này và phầnthực, phần ảo đượcbiểu
diễndướidạng đạisố:
M: dùng hàm abs để tính độ lớn, M=abs(so phuc).
θ= tan-1(b/a): dùng hàm angle tính góc, θ = angle(so phuc)
a= Mcosθ b= Msinθ
Ví dụ:
>> c=1+2i
c =
1.0000 + 2.0000i
>> M=abs(c)
M =
3.1623
7
>> goc=angle(c) % góc θ tính bằng radian
goc =
1.1071 % radian
>> goc_do=goc*180/pi % chuyển góc θ sang độ
goc_do =
63.4349 % góc tính bằng độ
7. Các hàm toán học thông thường
tang xtan(x)
Cănbậchaicủaxsqrt(x)
sin xsin(x)
Hàm cho dấucủaxsign(x)
Hàm làm tròn về số nguyênround(x)
Phần dư của phép chia x/yrem(x,y)
Hàm trả về phầnthựccủaxreal(x)
log
10
x
log10(x)
Lnxlog(x)
Bộisố chung nhỏ nhấtcủa2 số nguyên x và ylcm(x,y)
Hàm trả về phần ảocủasố phứcimag(x)
Ướcsố chung lớnnhấtcủa2 số nguyên x và ygcd(x,y)
Xấpxỉ âm vô cùngfloor(x)
Xấpxỉ khôngfix(x)
e
x
exp(x)
cosin xcos(x)
Số phức liên hợpconj(x)
Xấpxỉ dương vo cùngceil(x)
arctang củaphầnthựccủax vàyatan(x,y)
arctang xatan(x)
arcsin xasin(x)
Tính góc củasố phứcangle(x)
arccos xacos(x)
Tính argument (độ lơnM) củasố phứcxabs(x)
Ý nghĩaKí hiệuhàm
8
>> x=abs(-2)/2
x=
1
>> x=sqrt(2)/2
x=
0.7071
>> y= sin(x)
y=
0.7854
>>4*atan(1)
ans=
3.1416
y=rem(10,3) % phầndư
y=
1
>>gcd(18,81) % Ướcsố chung lơnnhất
ans=
9
>>lcm(18,81) % bộisố chung lớnnhất
ans=
162
>> x=3/9+sin(3.14*17/180)
x =
0.6256
>> x=3\9+sin(3.14*17/180)
x =
3.2922
>> x=asin(3.14/4)
x =
0.9027
9
Bài tậpchương 1
1. Tính tổng n số tự nhiên đầutiên
S=1+2+3+ + 179
2. Giảiphương trình bậc 2 : 17x
2
+ 125x - 69 = 0
3. Giảihệ phương trình sau:
4. Tính hàm y theo công thứcsaukhix=3:
y= 3x
3
-4x
2
+7x +12 + 2sin 27
o
-
5. Tính hàm y theo công thứcsaukhix=2
y= asin(x) +
Chương 2: Cửasổ lệnh, quảnlýtệp, các cấutrúcđiềukhiển, hàm
1. Cửasố lệnh trong Matlab
1.1 Quản lý không gian làm việccủaMatlab
Các biến đượctạotrongcửasổ lệnh, đượclưu trong không gian làm việc
của Matlab. Ta có thể xem lạihoặcxóacácbiến đó.
* Xem tên biến dùng lệnh who
> who
Your variables are:
a ans b c y
* Để xem chi tiết hơn về các biến ta dùng lệnh whos
>> whos
Name Size Bytes Class
a 1x1 8 double array
ans 0x0 0 char array
b 1x1 8 double array
c 1x1 8 double array
y 1x1 8 double array
Grand total is 4 elements using 32 bytes
10
* Để xóa các biếntadùnglệnh clear
Lệnh này ta đãxétở mục3 chương 1. Các tuỳ chọn khác nhau củalệnh clear
ta có thể xem bằng lệnh help clear.
>> help clear
CLEAR Clear variables and functions from memory.
CLEAR removes all variables from the workspace.
CLEAR VARIABLES does the same thing.
CLEAR GLOBAL removes all global variables.
CLEAR FUNCTIONS removes all compiled M- and MEX-functions.
CLEAR ALL removes all variables, globals, functions and MEX links.
CLEAR ALL at the command prompt also removes the Java packages
import list.
CLEAR IMPORT removes the Java packages import list at the command
prompt. It cannot be used in a function.
CLEAR CLASSES is the same as CLEAR ALL except that class definitions
are also cleared. If any objects exist outside the workspace (say in
userdata or persistent in a locked m-file) a warning will be issued
and the class definition will not be cleared. CLEAR CLASSES must be
used if the number or names of fields in a class are changed.
CLEAR VAR1 VAR2 clears the variables specified. The wildcard
character '*' can be used to clear variables that match a pattern.
For instance, CLEAR X* clears all the variables in the current
workspace that start with X.
If X is global, CLEAR X removes X from the current workspace,
but leaves it accessible to any functions declaring it global.
CLEAR GLOBAL X completely removes the global variable X.
CLEAR FUN clears the function specified. If FUN has been locked
[...]... 14.0000 103.0000 + Cách thứ hai dùng toán tử chia ma trận: >> x=A.\b x= 29.0000 14.0000 103.0000 30 b Trường hợp số phương trình và số biến khác nhau Trong nghiên cứu số học tuyến tính, khi số phương trình và số biến khác nhau, thì không thể có một phương pháp duy nhất để giải Trong MATLAB khi gặp những hệ phương trình có số phương trình lớn hơn số biến : Dùng toán tử chia trái hoặc chia phải, tự động... phép tính logic, quan hệ, xâu kí tự, thời gian 5.1 Các toán tử quan hệ Toán tử quan hệ ý nghĩa < nhỏ hơn lớn hơn >= lớn hơn hoặc bằng == bằng ~= khác Kết quả của toán tử quan hệ cho giá trị 1 (đúng : true) hoặc giá trị 0 (sai :false) Ví dụ : >> a=4 >> b=6 >> a==b ans = 0 >> a~=b ans = 1 >> a> res=A*x-b res = -119.4545 11.9455 0.0000 35.8364 + Trong MATLAB khi gặp những hệ phương trình có số phương trình ít hơn số biến Có thể dùng 2 cách: Cách 1 dùng toán tử chia đưa ra phương pháp có số phần tử 0 của x là cực đại, phương pháp này goi là phương pháp với số phần tử 0 cực đại Cách thứ 2 tính x= pinv(A) / b đưa ra phương pháp chiều... nhưng các hàm con trong hàm đó chỉ được gọi chỉ được gọi trong chính nó - Mỗi hàm có một không gian làm việc riêng tách biệt so với môi trường matlab Các biến được tạo ra trong hàm chỉ nằm trong không gian làm việc của hàm đó và được giải phóng khi hàm kết thúc - Các dòng chú thích sẽ được hiện ra khi dùng lệnh Help - Các tham số vào và ra khi một hàm được gọi chỉ có tác dụng bên trong hàm đó Biến... a1,a2, ,an Viết chương trình sắp xếp dãy theo thứ tự tăng dần 3 Cho dãy số sau: a1,a2, ,an Viết chương trình tìm các phần tử có giá trị là x nhập vào từ bàn phím 4 Cho ma trân A có m dòng, n cột Tính tổng các phần tử của ma trận A Hãy tính: định thức của A, ma trận chuyển vị của A, ma trận nghịch đảo của A, đa thức của A, tổng đường chéo chính của A, hạng của A 5 Giải hệ phương trình sau bằng 2 phương... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 0 0 0 0 0 0 0 0 0 Chương 3: Các phép toán với mảng 1 Mảng đơn giản 1.1 Biểu diễn mảng đơn trong matlab Để biểu diễn một dãy các phần tử có tính chất giống nhau matlab dùng kiểu mảng Biểu diễn mảng đơn như sau: Tên_biến_mảng=[a1,a2, ,an] hoặc Tên_biến_mảng=[a1 a2 an] Trong đó ai với i từ 1 đến n, là phần tử thứ i của mảng, như vậy giữa các phần tử ngăn... rank: trả về hạng của ma trận Ví dụ: >> a=[2 4 6;3 5 7; 9 8 7] a= 2 4 6 3 5 7 9 8 7 >> rank(a) ans = 2 29 6 Giải hệ phương trình Cho phương trình Ax = b a.Trường hợp số biến bằng số phương trình Có 2 phương pháp: - Phương pháp 1 dùng ma trận nghịch đảo: x=inv(A)*b - Phương pháp 2 dùng toán tử chia ma trận: x=A.\b Ví dụ: >> A=[1 2 3;4 5 6;7 8 0] A= 1 2 3 4 5 6 7 8 0 >> b=[366;804;315] b= 366 804 315 >>... chọn các mục trên thanh Menu: File / Save Workspace as Ví dụ: >> save luu1 Các biến trong Matlab được lưu trong tệp luu1.mat Có thể ghi một số biến vào tệp theo lệnh sau: >> save tên_tệp biến1 biến2 Ví dụ: >>save luu2 a b c Các biến a,b,c được ghi trong tệp luu2.mat * Phục hồi dữ liệu: Để phục hồi dữ liệu (các biến) trong các tệp đã ghi ta dùng lệnh: >> Load tên_tệp Ví dụ: >>Load luu1 11 1.3 Khuôn... số hàm toán học * Matlab cung cấp cấu trúc để người sử dụng có thể xây dựng các hàm của mình dưới dạng Mfile Cấu trúc một hàm M-file như sau: Function Tên_biến= Tên_hàm(các tham số vào) % Các câu chú thich khối lệnh Tên_biến = biểu thức [return] Các quy định và các tính chất với hàm M-file: - Tên_hàm và tên M-file phải là một - Trong thân hàm có lệnh gán giá trị của biểu thức cho tên biến - Trong hàm... tự trong matlab là mảng các kí tự trong bảng mã ASCII Xâu kí tự được viết trong dấu nháy đơn ‘ ’ Ví dụ : t=’ABCD’ ; q= ‘Ha noi’ * Hàm double cho mã ASCII của xâu : >> double(t) ans = 65 66 67 68 >> double(q) ans = 72 97 32 110 111 105 * Hàm char chuyển lại thành xâu : >> char(q) ans = Ha noi 5.4 Thời gian * Hàm trả về ngày và giờ hiện tại : clock * Hàm trả về ngày hiện tại : date * Hàm trả về thứ trong . 1 TIN HỌC CHUYÊN NGÀNH DÀNH CHO KHOA CƠ ĐIỆN LẬP TRÌNH TÍNH TOÁN TRONG MATLAB SỐ TIẾT: 45 (30 LÝ THUYẾT + 15 THỰC HÀNH) 1. Sách, giáo trình chính: -Lập trình Matlab và ứng dụng, Nguyễn Hoàng Hải. và ứng dụng, Nguyễn Hoàng Hải - Nguyễn Việt Anh, NXB Khoa học và kỹ thuật -Bàigiảng LẬP TRÌNH TÍNH TOÁN TRONG MATLAB - Đỗ Thị Mơ 2. Sách tham khảo - Matlab for engineers, Adrian Biran - Moshe. x=asin(3.14/4) x = 0.9027 9 Bài tậpchương 1 1. Tính tổng n số tự nhiên đầutiên S=1+2+3+ + 179 2. Giảiphương trình bậc 2 : 17x 2 + 125x - 69 = 0 3. Giảihệ phương trình sau: 4. Tính hàm y theo công thứcsaukhix=3: y=