Bài giảng Lập trình tính toán trong Matlab

* 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’

pdf75 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 4532 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Lập trình tính toán trong Matlab, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
inv (A) 
Giải thích: inv (A): Cho ma trận nghịch đảo ma trận symbolic A 
Ví dụ: cho ma trận symbolic:
A = 
Ta viết: A = sym([2, -1, 0;-1, 2, -1; 0, -1, 2]);
inv(A)
[3/4, 1/2, 1/4]
[1/2, 1, 1/2]
[1/4, 1/2, 3/4]
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−
−−
−
210
121
012
64
* jordan: Tìm dạng chính tắc ma trận
Cho ma trận A, tìm ma trận V không suy biến sao cho inv(V)*A*V 
hay J =V\A*V là chéo hoá. Hầu hết tất cả các ma trận, dạng
chính tắc jordan cho ta ma trận chéo có các phần tử trên
đường chéo chính là các giá trị riêng và các cột của ma trận đã
biến đổi là các vectơ riêng. Điều này luôn xảy ra nếu ma trận
đã cho là ma trận đối xứng hoặc nếu nó có các giá trị riêng
phân biệt
Cú pháp: J = jordan(A)
[V, J] = jordan(A)
Giải thích:
- jordan(A): Tính dạng chính tắc ma trận jordan A với A là ma trận
symbolic hay số. Ma trận phải được biết một cách chính xác. 
Như vậy, các phần tử của nó phải là các số nguyên hay tỉ số
của các số nguyên bé.
- [V, J] = jordan(A): Tính cả ma trận jordan J và vectơ riêng V của nó, sao cho V\A*V = J 
Ví dụ: A = [1-3 –2; -1 1 –1; 2 4 5] 
 [V, J] = jordan(A) cho ta kết quả: 
 A = 
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−−
−−
542
111
231
, V = 
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−
−−
040
020
221
, J = 
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
200
120
003
Các giá trị riêng của ma trận A là: 
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
2
2
3
 và các vectơ riêng là
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
0
0
1
;
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
−
−
4
2
2
;
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
0
0
2
65
* null: Cho giá trị rỗng của ma trận hay phần tử ma trận
Cú pháp: z = null(A)
Giải thích: null: cho ma trận rỗng A
Ví dụ: syms a b c 
A = [a* b b+c; a*c c*b-1];
A(:, 1) = [ ]
* poly: Biến đổi ma trận thành dạng đa thức
Cú pháp: p = poly(A)
p = poly(A,v)
Giải thích: poly(A): Nếu A là mảng số thì poly(A) cho ta các hệ
số đặc trưng của đa thức của ma trận A, nếu A là symbolic, 
poly(A) cho ta đa thức đặc trưng của A theo cấp luỹ thừa giảm
của biến mặc định x. Biến v được xác định là biến thứ 2 thay
thế biến mặc định x.
Ví dụ: syms z
A = [1 -1 2;1 3 4;2 -1 1]
p = poly(A)
q = poly(sym(A))
s = poly(sym(A),z)
*rank: Hạng của ma trận
Cú pháp: rank(A)
Giải thích: rank(A): hạng của ma trận symbolic A
Ví dụ: syms a b c
A = [1 -1 2;1 3 4;2 -1 1]
rank(A)
B = [1 2;1 2]
rank (B)
C = [a -a b;a c b;a a a]
66
* svd: tách các phần tử suy biến của ma trận
Cú pháp: sigma = svd(A)
[U, S, V] = svd (A)
Giải thích: sigma = svd(A): vectơ symbolic chứa các giá trị suy
biến của một ma trận symbolic A
[U, S, V]=svd(A): Cho ta các ma trận U và V là các cột là
các vectơ suy biến và một ma trận chéo S chứa các giá trị suy
biến. Sao cho A = U*S*V. Như vậy vectơ suy biến symbolic 
không có giá trị.
Ví dụ: A = [1 -1 2;1 3 4;2 -1 1]
sdv(A)
[U, S, V] = sdv(A)
* tril, triu: Ma trận tam giác dưới và ma trận tam giác trên
Cú pháp: tril(X) triu (X)
tril(X, k) triu (X,k)
Giải thích: tril(X): Cho ma trận tam giác dưới của ma trận X
tril(X,k): Cho ma trận tam giác dưới (k=0 là đường chéo
chính; k>0 đường chéo lớn hơn đường chéo thứ k là 0, k<0 ở
trên đường chéo thứ k thì bằng 0)
triu(X) và triu(X,k) cho ma trận tam giác trên
Ví dụ: syms a b c
A = [a –a b;1 3 4;a+1 b-1 c+1]
tril (A)
tril (A,1)
tril (A,-1)
triu (A)
triu (A,1)
triu (A,-1)
67
4. Các hàm làm đơn giản hoá các biểu thức
* collect: gom số hạng, biến
Cú pháp: R = collect(S)
R = collect (S,v)
Giải thích: collect(S) là đa thức, gom các số hạng chứa biến x 
hay collect(S,v) gồm các biến v trong đa thức S
Ví dụ: syms x y
R1 = colect((exp(x)+x)*(x+2))
R2 = collect((x+y)*(x^2+y^2+1),y)
R3 = collect([(x+1)*(y+1),x+y])
* expand: khai triển biểu thức
Cú pháp: R = expand (S)
Giải thích: expand(S): khai triển biểu thức symbolic
Ví dụ: expand((x-2)*(x-4)) kết quả x^2 – 6*x +8
expand(cos(x+y)) kết quả cos(x) * cos(y) –
sin(x) * sin(y)
* factor: Phân tích biểu thức thành thừa số
Cú pháp: factor(X)
Giảit thích: factor(X) phân tích biểu thức mảng symbolic X thành
thừa số
Ví dụ: factor(x^3- y^3) → (x-y)*(x^2 + x*y + y^2)
* horner: biến đổi đa thức dưới dạng thừa số
Cú pháp: R = horner (P)
68
Giải thích: Giả sử P là ma trận của các đa thức symbolic. 
horner(P) biến đổi mỗi phần tử của P vào đa thức Horner của
nó hay lồng vào nó dưới dạng thừa số.
Ví dụ: horner(x^3-6*x^2+11*x-6) → -6 + (11+(-6+x)*x)*x
* numden: Lấy tử và mẫu số
Cú pháp: [N, D] = numden(A)
Giải thích: [N, D] = numden(A); chuyển mỗi phần tử của A có
dạng phân số. A có thể là ma trận, đa thức, con số…, thành tử
số N và mẫu số D
Ví dụ: sym n d
[n, d] = numden(4/5) → n = 4, d = 5
sym x y
[n, d] = numden(x/y + y/x) → n = x^2 + y^2; d = y*x
*simple, simplify: Tìm dạng tối giản của đa thức
Cú pháp: r = simple (S) r = simplify (S)
Giải thích: simple (S), simplify (S): Tối giản hoá biểu thức
symbolic S
Ví dụ: simple (cos(x)^2 + sin(x)^2) → 1
simplify (2*cos(x)^2 – sin (x)^2) → 3* cos(x)^2 – 1
* subs: thay thế tất cả các biến thành biến mới hay giá trị
Cú pháp: R =subs (S) R = subs(S, old, new)
Giải thích: subs(S): thay thế tất cả các biến trong biểu thức hay 
ma trận symbolic S
subs(S, old, new): thay thế tất cả các biến old trong biểu
thức S thành biến new
69
Ví dụ: a = 980;
Cl =3;
y = dsolve (‘Dy = -a *y’) → y = exp (-at)*Cl
subs(y) → 3*exp (-980*t)
subs (a+b, a, 4) → 4+b % b phải là biến số
subs(cos(a) + sin(b),{a, b},{sym(1,2}→ cos(1) + sin (2)
5. Giải phương trình
* compose: Hợp của hàm
Cú pháp: compose(f,g) compose(f, g, z)
compose(f, g, x, z) compose(f, g, x, y, z)
Giải thích:
- compose(f,g): f(g(y)) với f=f(x), g=g(y), ở đây x là biến symbolic 
của f và y là biến symbolic của g, dùng findsym để tìm các biến
này
- compose(f, g, z): f(g(z) với f = f(x), g = g(y), ở đây x là biến
symbolic của f và y là biến symbolic của y.dùng findsym để tìm
các biến này
- compose(f, g, x, z): f(g(z)), x là biến độc lập đối với f. Nếu f = 
cos(x/t) thì compose(f, g, x, z) → cos(g(z)/t) và compose(f, g, t, 
z) → cos(x/g(z)).
70
- compose(f, g, x, y, z): x là biến độc lập của f và y là biến độc
lập của g.
- Nếu: f = cos(x/t) và g = sin (y/u) thì
- compose(f, g, x, y, z) → cos(sin(x/u)/t),
- mặt khác compose (f, g, x, u, z) → cos (sin(y/z)/t)
Ví dụ: syms x y z t u
f = 1/(1+x^2); g = sin(y); h = x^t; p = exp(-y/u);
Thì: compose(f, g) → 1/(1+sin(x)^2
compose(f, g, t) → 1/(1+sin(t)^2
compose(h, g, x, z) → sin(z)^t
* dsolve: giải hệ phương trình vi phân thường
Cú pháp: r = dsolve(‘eq1, eq2,…,’,’cond1, cond2, …,’v’)
Giải thích: Giải hệ phương trình vi phân thường xác định bởi
eq1, eq2, .., biến độc lập v và các điều kiện biến hay điều kiện
ban đầu xác định bởi cond1, cond2,…Biến độc lập mặc nhiên
là t. Nếu như không giải được bằng giải tích như trên ta dùng
phương pháp số như phương pháp Runge – Kutta chẳng hạn.
Ví dụ: dsolve(‘Dy=a*y’) → exp(a*t)*C1
dsolve (‘Df = f + sin(t)’) → -1/2 * cos(t) – ½* sin(t) + exp(t) * C1
71
* finverse: Tìm hàm ngược
Cú pháp: g = finverse (f) g = finverse(f,u)
Giải thích: 
- g = finverse (f): hàm ngược của hàm f, f là hàm symbolic với
biến x, kết quả tính f-1 g(f(x)) = x
- g = finverse(f,u): hàm ngược của hàm f, f là hàm symbolic với
biến u, kết quả tính f-1 g(f(u)) = u. Dạng này hàm f có thể chứa
nhiều biến symbolic
Ví dụ: sym x
finverse(1/tan(x)) → atan(1/x)
sym u v
finverse(exp(u-2)*v,u) → 2*v +log(u)
* solve: Giải hệ phương trình
Cú pháp: g = solve(eq) g = solve(eq1, eq2, …,eqn)
g = solve(eq, var)g = solve(eq1, eq2, …,eqn, var1, var2, …, 
varn)
Giải thích: solve(eq): giải phương trình eq=0 với nghiệm lấy ra
là biến mặc nhiên.
solve(eq, var): giải phương trình eq=0 với nghiệm lấy ra có
tên tương ứng với biến var
72
solve(eq1, eq2,…): giải phương trình eq1=0, eq2=0,… với
nghiệm lấy ra là biến mặc nhiên. (dùng lệnh findsym để tìm các
biến này)
solve(eq1,eq2,… ,var1, var2,…): giải phương trình eq1=0, 
eq2=0,… với nghiệm lấy ra có tên tương ứng với biến var1, 
var2,…
Ví dụ: solve(‘2*x+y) → -1/2 *y
solve(‘a*x^2+b*x+c’,’b’) → -(a*x^2+c)/x
L=solve(‘x+y = 1’, ‘x-11*y = 5’) → L.y = -1/3, L.x= 4/3
6. Biến đổi tích phân
* fourier: Biến đổi Fourier
Cú pháp: F = fourier(f)
F = fourier(f, v)
F = fourier(f, u, v)
Giải thích: 
- F = fourier(f): Biến đổi Fourier của hàm vô hướng symbolic f với
biến độc lập mặc nhiên f và cho ta hàm mặc nhiên qua phép
biến đổi này là w. Nghĩa là: f = f(x) → F =F(w). Nếu f = f(w) thì
Fourie của nó cho ta một hàm
73
của t là F = F(t) bởi định nghĩa sau: F(w) = ∫∞
∞−
− dxexf iwx)( với x là biến symbolic của f 
- F = fourier (f,v): F là hàm của biến symbolic v thay thế biến mặc nhiên w. F(v) = ∫∞
∞−
− dxexf ivx)( 
- F = fourier (f,u,v): f là hàm của u và F là hàm của biến symbolic v chúng thay thế các biến mặc nhiên x và w
tương ứng. F(v) = ∫∞
∞−
− dueuf ivx)( 
Fourier Lệnh MatLab 
f(x) = 
2xe− 
→ F[f](w) = ∫
∞
∞−
− dueuf ivx)( = 
4/2w
eπ 
f = exp(-x^2) 
→fourier(f)→pi^(12)*exp(-1/4*w^2) 
* laplace: biến đổi Laplace 
Cú pháp: laplace(F) 
 laplace(F,t) 
 laplace(F, w, z) 
Giải thích: 
- L = laplace(F): biến đổi Laplace của hàm symbolic F với biến mặc nhiên độc lập t. Nó cho ta một hàm
của s. F = F(t) → L = L(s). Nếu F = F(s) biến đổi Laplace cho ta một hàm theo t. F = F(s) → L = L(t). Theo
định nghĩa L(s) = ∫∞ −
0
)( dtetF st 
74
- L = laplace(F,t): L là một hàm của t thay thế biến mặc nhiên s L(t) = ∫∞ −
0
)( dxexF tx 
- L = laplace(F,w, z): L là một hàm của z và F là hàm của w, nó thay thế các biến symbolic mặc nhiên s
và t tương ứng L(z) = ∫∞ −
0
)( dwewF zw 
* ilaplace: Biến đổi Laplace ngược 
Cú pháp: F = ilaplace(L) 
 F = ilaplace(L, y) 
 F = ilaplace(L, y, x) 
Giải thích: 
- F = ilaplace(L): Biến đổi Laplace ngược của hàm symbolic với biến mặc nhiên độc lập s. Nó cho ta
một hàm của t, L = L(s) → F = F(t) biến đổi ilaplace cho ta một hàm theo x.L = L(f) → F = F(x). Theo định
nghĩa: 
F(t) = ∫∞+
∞−
ic
ic
stdsesL )( 
- F = ilaplace(L,y): F là một hàm của y thay thế biến mặc nhiên t. F(y) = ∫∞+
∞−
ic
ic
sydseyL )( 

File đính kèm:

  • pdfBài giảng Lập trình tính toán trong Matlab.pdf