để ngắt một phần câu lệnh xuống dòng tiếp theo 3 Soạn thảo văn bản ch ơng trình: T ơng tự nh soạn thảo trong Word L u ý: Tên file hay tên tệp cũng đ ợc quy định nh tên biến... 1c 1 : m
Trang 2Home
1a
1 : một số đặc điểm của ngôn ngữ lập trình matlab
1) Tên biến, tên hàm và câu giải tích
− Tên biến , tên hàm :
+ Phân biệt chữ Hoa và chữ Th ờng
+ Bắt đầu bằng chữ cái ( không đ ợc dùng hầu hết các dấu)
+ Nhiều nhất chỉ đ ợc 31 k tự
− Câu giải thích sau dấu ( % )
2) Câu lệnh, dòng lệnh
− Tên lệnh (từ khóa): viết chữ th ờng
− Các câu lệnh cách nhau bằng dấu chấm phẩy (;) nếu viết cùng một dòng
− Dùng dấu ba chấm ( ) để ngắt một phần câu lệnh xuống dòng tiếp theo
3) Soạn thảo văn bản ch ơng trình: T ơng tự nh soạn thảo trong Word
L u ý: Tên file (hay tên tệp) cũng đ ợc quy định nh tên biến
Trang 31b
1 : một số đặc điểm của ngôn ngữ lập trình matlab
4) Lập trình trong cửa sổ lệnh Command Window
>> Viết dòng lênh 1 rồi ấn phím <Enter> để thực hiện lệnh
>> Viết dòng lênh 2 rồi ấn phím <Enter> để thực hiện lệnh
>> ………
− Chỉ thích hợp cho các bài toán nhỏ
L u ý:
+ Xóa màn hình bằng lệnh clc + Dùng các phím mũi tên ↑ ↓ hoặc < page Up/ Dowm> để dịch chuyển lên xuống
5) Lập trình trong cửa sổ M − file
− Không cần khai báo tr ớc các biến và các hàm
( trừ tr ờng hợp sử dụng thêm các ch ơng trình con − Xem phần sau)
− Viết lần l ợt từng dòng lệnh rồi ghi vào một file
− Tên file: + Bắt đầu bằng một ký tự
+ Không dùng dấu cách và hầu hết các dấu
+ Nhiều nhất là 31 ký tự
− Chạy ch ơng trình bằng lệnh ( Run trong Menu Debut) hoặc ấn F5)
− Kết quả chạy ch ơng trình hiện thị trên cửa sổ Commans Window
− Soạn thảo văn bản nh trong Word
Trang 41c
1 : một số đặc điểm của ngôn ngữ lập trình matlab
− Viết trong cửa sổ M−file
− Dòng đầu tiên khai báo ch ơng trình con bằng từ khóa function
+ Nếu có nhiều biến ra:
function [out1, out2] = Tên_hàm ( các biến đầu vào)
+ Nếu chỉ có duy nhất một biến ra:
function out = Tên_hàm(Các biến đầu vào)
+ Nếu chỉ sử dụng nh một file dữ liệu :
function Tên_hàm
− Viết từng dòng lệnh nh ch ơng trình chính
− Phân biệt biến toàn cục và biến địa ph ơng
+ Biến toàn cục :
Có tác dụng cả trong ch ơng trình chính và trong ch ơng trình con
Phải khai báo các biến toàn cục bằng từ khóa global
global bien_1 bien_2 bien_3
(ở cả ch ơng trình chính và trong ch ơng trình con)
+ Biến địa ph ơng: Chỉ có tác dụng trong ch ơng trình con
− Ghi lại thành một file: Tên file phải trùng với tên hàm
− Cách gọi function vào ch ơng trình chính:
Viết tại vị trí cần thiết trong ch ơng trình chính: Tên_hàm( giá trị đầu vào )
6) Ch ơng trình con ( file hàm): function file
Trang 5− G¸n mét kho¶ng gi¸ trÞ: x= a : Dx : b; BiÕt tr íc b íc biÕn thiªn
x= linspace( a, b, n) BiÕt tr íc kho¶ng biÕn thiªn
x= logspace( a, b, n) theo thang logarit
for x = a : Dx : b TÝnh theo vßng lÆp
……… …
end
2) LÖnh input x = input (‘ NhËp gi¸ trÞ x=’)
3) Gäi vµo tõ mét file d÷ liÖu
2.2 C¸c lÖnh hiÖn thÞ kÕt qu¶:
1) Lªnh disp (‘ chuçi ký tù’) − hiÖn thÞ th«ng b¸o b»ng ch÷
disp ( biÕn) − hiÖn thÞ gi¸ trÞ cña biÕn hoÆc hµm sè
2) LÖnh fprintf (‘ chuçi ký tù \ n‘) − hiÖn thÞ dßng th«ng b¸o vµ xuèng dßng
fprintf ( ‘ %3d %8.3f \ n’, x1, x2) − hiÖn thÞ gi¸ trÞ biÕn x1, x2
fprintf ( ‘ x1= %3d %12s \ n’, x1, ch) − hiÖn thÞ kÕt hîp ký tù vµ sè
L u ý : d ( sè nguyªn); f ( sè thùc); s ( x©u ký tù)
3) Bá dÊu chÊm phÈy ( ;) sau c©u lÖnh : y=2*x − hiÖn thi gi¸ trÞ y
y=2*x ; − kh«ng hiÖn thÞ gi¸ trÞ y
Trang 61) C¸c dÊu to¸n tö quan h : == ; ~= ; < ; <= ; > ; >= ệ
2) C¸c to¸n tö logic: and ( & ); or( | ); not( ~ ); xor
Trang 73b
3 : c¸c phÐp to¸n th«ng dông
L îng
10 asinh(x) Hµm ng îc cña sin hy pe bolic 10 floor(x) XÊp xØ ©m v« cïng
11 acosh(x) Hµm ng îc cña cos hy pe bolic 11 ceil(x) XÊp xØ d ¬ng v« cïng
12 atanh(x) Hµm ng îccña tang hypebolic 12 real(x) TÝnh phÇn thùc cña sè phøc
13 imag(x) TÝnh phÇn ¶o cña sè phøc
x x
e e
e
e
−
− +
−
=
tanh
x x
x x
e e
e e anh −−
Trang 8end ………
end
L u ý :
− Nếu i, j dùng để làm chỉ số cho các biến, các hàm thì i, j phải là
các số nguyên d ơng khác 0 ( i> 0; j >0 )
− Có thể dùng b ơc biến thiên âm ( D < 0 ) để thực hiện xếp thứ
tự giảm dần của dãy số liệu
2) Vòng lặp không xác định : While … end
while <Điều kiện so sánh>
end 3) Thoát khỏi vòng lặp bằng lệnh break, erro
Trang 94b
4 : c¸c vßng lÆp vµ ®iÒu khiÓn
4.2 C¸c c©u lÖnh ®iÒu kiÖn
1) CÊu tróc lùa chän theo ®iÒu kiÖn if … else … end
if ®iÒu kiÖn 1
C«ng viÖc theo ®iÒu kiÖn 1
elseif ®iÒu kiÖn 2
C«ng viÖc theo ®iÒu kiÖn 2
Trang 11A(i , : ) = [ ] − xãa di dßng i cña ma trËn A
Trang 12C= A + B ; Ci,j = Ai,j + Bi,j ; A, B phải cùng kích th ớc
C = A− B ; Ci,j = Ai,j − Bi,j ; A, B phải cùng kích th ớc
C= A.*B ; Ci,j = Ai,jBi,j ; A, B phải cùng kích th ớc
C= A./B ; Ci,j = Ai,j/Bi,j ; A, B phải cùng kích th ớc
C= A.\B ; Ci,j = Ai,j/Bi,j ; A, B trái cùng kích th ớc
C= A.^p ; Ci,j = (Ai,j)^p ; p − hằng số
− Các phép toán về ma trận
D= A + B; D= A − B; Cộng / trừ: A, B phải cùng kích th ớc
D = A*B ; Nhân ma trận: Số cột B = Số hàng A ;
X = A/B ; Chia phải , nh giải Ptr ( X*A= B )
X = A\B ; Chia trái , nh giải Ptr (A*X = B )
D = det (A) Tính định thức ma trận vuông:
Trang 134)Chia ®a thøc : [q, r] = deconv (a, b) ; r lµ phÇn d 5)§¹o hµm ®a thóc: h = polyder (a,x)
6)TÝnh gi¸ trÞ ®a thóc: y = polyval (a,x) 7)T×m hÖ sè håi quy thùc nghiÖm: p = polyfit ( x, y, n)
x = [ x 1 x 2 … x i … x m ] m lµ sè thÝ nghiÖm
y = [ y 1 y 2 … y i … y m ] n lµ bËc cñ a ®a thøc håi quy y = f(x)
Trang 14pretty(E) Hiện thi theo dạng toán học thong th ờng
[num den]=numden(E) Tử số (num) và mẫu số (den) của hàm hữu tỷ
sub(E, old, new) Thay thế biến số old → new
poly2sym(p) Chuyển vec tơ hế số p thành đa thức Symbolic
sym2poly(E) Chuyển biểu thức E thành vec tơ các hệ số
ezplot(E, [xmin xmax] Vẽ đồ thị
Trang 157b
7 : c¸c lÖnh vÒ hµm symbolic C¸c hµm to¸n häc trong symbolic
int(E, a, b) TÝch ph©n giíi h¹n trong kho¶ng [ a b ]
dsolve(Dy) Gi¶i ph ¬ng tr×nh vi ph©n th êng
dsolve(Dy, y0, Dy0) Gi¶i ph ¬ng tr×nh vi ph©n víi ®iÒu kiÖn ®Çu
dsolve(Dx, Dx, x0, y0) Gi¶i hÖ ph ¬ng tr×nh vi ph©n cÊp 1
fminbnd( ‘function’, x1, x2) T×m cùc tiÓu hµm 1 biÕn trong kho¶ng [x1 x2]
fminbnd( funtion , X0) ‘ ’ T×m cùc tiÓu hµm nhiÒu biÕn, X0 lµ mét vÐc t¬
Trang 168
8 : các lệnh Văn bản ( xâu ký tự )
Khai báo xâu ký tự : S = ‘ xâu ký tự ‘ ( để giữa hai dấu nháy)
S có thể là một vec tơ hàng, cột hoặc một mảng 2 chiều
Home
disp( xâu ký tự ) ‘ ’ Hiển thị xâu ký tự trên màn hình
fprintf( xâu ký tự ) ‘ ’ Viết dạng xâu ký tự ra file hoặc ra màn hình
mat2str(A) Chuyển ma trận số A thành xâu ký tự các số
strcat( S1, S2, ) … Nối các xâu thành véc tơ hàng
strvcat( S1, S2, ) … Nối các xâu thành vec tơ cột
L u ý: Có thể sử dụng một số tính chất của vec tơ, mảng nhiều chiều để tạo
ra một xâu ký tự mới từ các xâu ký tự thành phần:
Trang 179a
9 : các lệnh Về đồ họa
Home
plot ( x, y) Vẽ một điểm; (x, y) là tọa độ một điểm
plot ( [ x1 x2] , [ y1 y2] ) Vẽ đoạn thẳng từ điểm (x1,y1) đến điểm (x2,y2)
plot (x,y, kiểu_đ ờng,màu)‘ Vẽ một đ ờng; x, y – hai vec tơ số
plot (x, y1, x, y2, )… Vẽ nhiều đ ờng trên cùng hệ tọa độ
plot ( M) Vẽ một hoặc nhiều đ ờng; M là một ma trận
[X Y] = meshgrid (x,y) Tạo ra một mạng số liệu [X, Y] từ các số liệu x, y
mesh (X, Y, Z ) Mặt cong trong không gian Z= f(X,Y)
fplot( f(x) , [ xmin xmax])‘ ’ Vẽ đồ thị với hàm Symbolic
polar ( goc, bán kính) Vẽ đồ thị tọa độ cực
subpot( m, n, p ) Vẽ nhiều đồ thị trên một cửa sổ (m, n số hàng/cột) p là thứ tự đồ thị
Loglog(x,y) Đồ thị có tỉ lệ trục dạng logarit
Semilogx(x,y) Chỉ có trục x dùng tỉ lệ logarit
Semilogy(x,y) Chỉ có trục y dùng tỉ lệ logarit
Trang 189b
9 : các lệnh Về đồ họa
Home
hold on ; hold off Mở ( tắt) chế độ vẽ nhiều đồ thị trên một hệ tọa độ
ylabel( ‘ Nhãn trục y’); zlabel( ‘ Nhãn trục z’)
title ( ‘ Tiêu đề đồ thị )‘ Tiêu đề đồ thị
legend ( X1 , X2 , )‘ ‘ ‘ ’ … Ký hiệu các đ ờng đồ thị
( hay sử dụng num2str để chuyển số thành chữ)
9 2 Trục tọa độ, Tiêu đề, Chú giải đồ thị
9 3 Hiệu chỉnh đồ thị
Trên cửa sổ đồ họa có nhiều lệnh cho phép trục tiếp hiệu chỉnh lại đồ thị:
Thay đổi đ ờng nét, màu, viết bổ sung, viết tiếng Việt, …
Trang 1910
10 : ph ơng trình , hệ ph ơng trình đại số và Siêu việt
Home
10 1 Ph ơng trình đại số và siêu việt
x = solven ( f(x) =0 )‘ ’ Hàm 1 biến; x là Symbolic
x1 = solven( f(x1, x2)=0 , x1 )‘ ’ ‘ ’ Hàm nhiều biến; giải theo tứng biên x1
10 2 Hệ ph ơng trình đại số và siêu việt
Trang 20diff (x, y ) §¹o hµm sè y = f(x) trong kho¶ng [ a , b ]
2-TÝch ph©n
quad ( function , a, b) ‘ ’ TÝch ph©n sè theo ph ¬ng ph¸p Simpson
3- Ph ¬mg tr×nh vi ph©n
dsolven( Dy ); ‘ ’
dsolven( D2y )‘ ’
( d¹ng Symbolic)
dsolven( Dy , y(0) , Dy(0) )‘ ’ ‘ ’ ‘ ’ Theo ®iÒu kiÖn ®Çu
dsolven( Dx , Dy , x(0) , y(0)‘ ’ ‘ ’ ‘ ’ ’ ’ HÖ PTVT cÊp 1:
Trang 21Tìm các giá trị gần đúng y= ϕ(x) trong khoảng [a, b]
Biết điều kiện đầu: x(0) = x 0 ; y(0)=y 0
) ,
Trang 2211b
11 : gi¶i Ph ¬ng tr×nh vi ph©n b»ng runge-kutta
Home
11.2 HÖ ph ¬ng tr×nh vi ph©n cÊp mét
) ( 0
)
, ,
, , (
) 2 ( 0 ) , ,
, , ( ) 1 ( 0 ) , ,
, ,
(
2 1
'
2 1
2
' 2
2 1
1
' 1
n y
y y x f
y
y y
y x f
y
y y
y x f
y
n n
n
n n
=
=
=
=
=
=
end BiÕt ®iÒu kiÖn ®Çu: x1( 0 ) = x0; y1( 0 ) = y10; y2( 0 ) = y20; ; yn( 0 ) = yn0
2
1
3
4
5
6
7
8
9
10
12
13
14
15
16
17
18
19
20
11
22
Trang 2411b
11 : gi¶i Ph ¬ng tr×nh vi ph©n b»ng runge-kutta
Home
BiÕt ®iÒu kiÖn ®Çu:
) 1 ( 0
) 1
( 02
01 0
0
) 0 (
; ;
) 0 ( ''
; )
0 ( '
; )
0 (
; )
0 (
y y
y y
y
x x
) ,
,' ' ,' , ,
TÝnh c¸c hµm: y(x); y’(x,y) ; y’’(x,y,y’) ; … ; y (n-1) (x, y, y’,y’’, … , y (n-2) ) trong kho¶ng x= [ a , b ]
Ph ¬ng ph¸p gi¶i: ChuyÓn ph ¬ng tr×nh vi ph©n cÊp cao vª
§Æt: y’ = y 1 ; y’ 1 = y 2 ; y’ 2 =y 3 ; … ; y’ (n-1) = f(x,y,y’, … , y (n-1))
hay: y’ = y 1 ; y’’ = y 2 ; y’’’ =y 3 ; … ; y (n) = f(x,y,y’, … , y (n-1))
Trang 25,' ' ,' , ,
T ¬ng ® ¬ng hÖ n ph ¬ng tr×nh vi ph©n cÊp mét :
) ,
,
'' ,' , , (
'
)1(
')1(
3
'2
2
'1
y y
y y
y y
(1)
(2)