Phộp biến đổi laplace của hàm f(t) được định nghĩa như sau:
∫ +∞ ∞ − − = f t e dt
L[f](s) ( ) ts và phộp biến đổi laplace ngược là:
∫∞ + ∞ − π = c i st 1 - f s e ds j 2 1 [f](t) L ( )
+ L = laplace(F): Biến đổi Laplace của hàm F với biến độc lập mặc định là t. Kết quả trả về là một hàm của s. Nếu F = F(s) thỡ Laplace trả về một hàm của t: L = L(t). Theo định nghĩa, L(s) = int(F(t)*exp(-s*t),0,inf) và phộp tớch phõn được thực hiện với t
+ L = laplace(F,t): L là một hàmcủa t thay thế biến mặc định s
TểM TẮT NỘI DUNG CỐT LếI
- Áp dụng matlab trong tớnh toỏn mạch điện, giải mạch điện nhanh chúng tiện lợi- ỏp dụng giải phương trỡnhvà hệ phương trỡnh tuyến tớnh.
- Giải cỏc phương trỡnh phi tuyến và PT tham số. - Giải hệ PT vi phõn. BÀI TẬP ỨNG DỤNG, LIấN HỆ THỰC TẾ 1. Bài tập ứng dụng, liờn hệ thực tế 1. Cho hàm số : d x x b ae y ) (sin =
ạ Hóy nhập hàm y vào trong một file Matlab từ cửa sổ soạn thảọ b. Hiện thị hàm y sau khi đó nhập cỏc hệ số.
2. Bài tập ứng dụng, liờn hệ thực tế 2. Dựng Matlab để tớnh cỏc phộp toỏn sau:
a) =∫1 0 dx a I x b) x b a I x x − =lim khi x →0.
c ) Giải hệ phương trỡnh sau : HƯỚNG DẪN TỰ Ở NHÀ Xem trước phần Ma trận = + − = + + 0 3 4 3 2 2 2 x x y xy x
CHƯƠNG 3:MA TRẬN VÀ MẢNG TRONG MATLAB MỤC TIấU CỦA CHƯƠNG
- Hiểu rừ khỏi niệm về ma trận và mảng trong Matlab - Vận dụng được cỏc lệnh vào việc giải cỏc bài toỏn
- Về thỏi độ: Học sinh, Sinh : nắm được cỏc cõu lờnh và vận dụng giải cỏc bài toỏn
NỘI DUNG BÀI GIẢNG Lí THUYẾT 3.1 Nhập ma trận trong Matlab
3.1.1 Cỏc Cỏch nhập matrận trong Matlab
Matlab cung cấp một vài phương tiện cho người sử dụng để tạo ra một matrận, mỗi phương tiện cú những ưu điểm của nú và được sử dụng tuỳ theo từng yờu cầu bài toỏn.Núi chung Matlab cung cấp ba phương tiện.
• Nhập Matrận trực tiếp từ cửa sổ command Window.
• Nhập Matrận từ một file( sử dụng M-file hoặc load)
• Nhập matrận từ những hàm cú sẵn trong Matlab.
ạ Nhập Matrận trực tiếp từ cửa sổ command Window
Trong mụn học toỏn cao cấp chỳng ta đó biết nhập một matrận như sau A=
Đõy là một ma trận cú số hàng m = 3 và số cột n= 3
Để nhập matrận trờn trong Matlab ta nhập trực tiếp như sau Từ dũng nhắc lệnh trong cửa sổ command Window >> ta nhập >> A=[ 1,2,3 ; 4 5 ,6;7 8 9]; hoặc >>A=[ 1 2 3
4 5 6 7 8 9];
Cỏc hàng được cỏch nhau bằng một dấu chấm phẩy (;) như trờn,cỏc phần tử trong một hàng được cỏch nhau bằng dấu cỏch(thanh space) hoặc dấu phẩy(,) . Kết thỳc dũng lệnh cú hoặc khụng cú dấu ;
Nếu khụng cú dấu chấm phẩy ở cuối dũng thỡ Matlab sẽ in ra kết quả matrận vừa nhập
Như vớ dụ trờn:
>> A=[ 1,2,3 ; 4 5 ,6;7 8 9] nhấn Enter sẽ cho kết quả là A= 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9
Trong trường hợp số phần tử trờn một hàng quỏ dài ta cú thể xuống dũng bằng dấu ba chấm ...
Vớ dụ >> b=[1,2,3,4,...
5 6 7 8 9] % đõy matrận 9 hàng và một cột
Lưu ý rằng trong một số trường hợp matrận hoặc mảng dữ liệu dài thỡ việc khụng thờm dấu chấm phẩy sau cõu lệnh nhập, Matlab sẽ in ra số liệu dài trong cửa sổ command Window, gõy khú nhỡn cho người dựng
b. Nhập Matrận từ M-file
Ta cú thể nhập một matrận bằng cửa sổ soạn thảo M-file, mở cửa sổ này bằng cỏch vào File- New- M-filẹ Một cửa sổ soạn thảo sẽ được hiện ra cho phộp bạn soạn thảo dưới dạng text, do là cửa sổ soạn thảo dạng text cho nờn bạn cú thể soạn thảo từ file word sau đú copy vào cửa sổ M-filẹĐể nhập matrận ta soạn thảo tương tự như trong cửa sổ command window sau đú lưu vào file như sau:
Vớ dụ:
A=[1 2 3 ; 4 5 6 ; 7, 8,9];% khụng cú dấu chấm phẩy sẽ in ra kết quả
Cũng tương tự như trờn nếu số phần tử trờn một hàng quỏ nhiều thỡ ta cú thể xuống dũng
A=[1 2 3 4 ... 5 6 7 8 9 10];
Sau khi kết thỳc soạn thảo ta lưu vào tờn_file .
Để thực thi cỏc lệnh nhập trong M-file ta dựng lệnh sau trong command window như sau: >> ten_file ;
c. Nhập matrận từ cỏc hàm cú sẵn
Matlab cú một thư viện cỏc hàm cho phộp tạo ma trận.Sau đõy là một số hàm
• ones(m,n) tạo ma trận m hàng và n cột ,với cỏc phần tử đều bằng 1, ones(m) tạo ma trận vuụng cấp m, với cỏc phần tử đều là 1.
• zeros(m,n) tạo ma trận kớch thước m x n, với cỏc phần tử đều bằng 0, zeros(m) tạo ma trận vuụng cấp m.
• eyes(m,n) tạo ma trận kớch thước m xn với cỏc phần tử đều bằng 1, eyes(m) tạo ma trận vuụng cấp m . vớ dụ: ones(2,3) ans= 1 1 1 1 1 1 eyes(2,3)
ans= 1 0 0 0 1 0 zeros(2,3) ans= 0 0 0 0 0 0 3.2 Ma trận số phức
Số phức trong matlab được viết như sau: Vớ dụ số phức 3+4*i dựng i để chỉ số ảo >> a=3+ 4*i
a=
3+ 4*i
Nếu muốn ii để chỉ số ảo Ta định nghĩa ii= sqrt(-1) Sau đú bạn viết:
>> a=3+ 4*ii a=
3+ 4*i
>>A=[ 1+2*i , 3+4*i ; 5+6*i, 4+5*i ] A=[ 1+2*i 3+ 4*i
5+6*i 4+5*i ]
3.3 Tạo vec tơ
Khi ta cần khảo sỏt đặc tớnh của đồ thị nào đú trong một khoảng xỏc định, khoảng xỏc định này được biểu diễn dưới dạng vectơ
Vớ dụ khảo sỏt đặc tớnh đồ thị trong khoảng x=1 đờn 100 >> x= 1:100; % x lấy giỏ trị từ 1 đờn100, bước tăng của x là 1 >>t=0: 0.1 : 10;% bước nhảy là của t là 0.1
Cụng thức chung tạo vec tơ là X=Xmin : bước_tăng: Xmax
3.4 Truy nhập cỏc phần tử của ma trận
Đờ truy nhập cỏc phần tử của ma trận ta làm như sau: Giả sử ma trận A= Thỡ >> Ăi,j) ; sẽ truy nhập đến phần tử hàng thứ i và cột thứ j 1 2 3 4 5 6 7 8 9
Vớ dụ để truy nhập đến phần tử thứ nhất ta : >> Ă1,1)
ans= 1
Đặc biệt để gọi toàn bộ số hàng hoặc toàn bộ số cột dựng toỏn tử (:) >> Ă:,1) % gọi toàn bộ số hàng tương ứng với cột 1
ans= 1 4 7
>>Ă1,:) % gọi toàn bộ số cột tương ứng hàng 1 ans=
2 3
>> Ă1:2,1) % gọi hàng 1 đến hàng 2 tương ứng với cột thứ nhất ans=
1 4
>>Ă1:2,:) % gọi hàng 1 đến hàng 2 tương ứng với tất cả cỏc cột ans=
1 2 3 4 5 6
3.5 Phộp tớnh ma trận và mảng ạ Phộp tớnh ma trận
• Phộp tớnh cộng , phộp tớnh trừ :Điều kiện hai ma trận A và B phải cú cựng kớch thước hoặc một trong hai là số vụ hướng
vớ dụ: >>a=[1 2 3 ;4 5 6; 7 8 9]; >>b=[2 3 4; 5 6 7; 8 9 10]; >>a+b; ans= 5 7 9 11 13 15 17 19 • Nhõn hai ma trận
A*B lưu ý rằng số cột của ma trận A phải bằng số cột của ma trận B, ngoại trừ một trong hai là số vụ hướng
• Chia trỏi ma trận (\)
X=A\B tương đương với việc giải hệ phương trỡnh tuyến tớnh A*X=B, gần tương đương với X=inv(A)*B
• Chia phải ma trận(/)
X=B/A tương đương với việc giải phương trỡnh tuyến tớnh X*A=B gần tương đương với X= B*inv(A)
b. Phộp tớnh dẫy
Cho hai mảng sau: >>x=[1 2 3]; >>y=[2 3 4];
• Phộp tớnh cộng , trừ giống như phộp tớnh đối với ma trận >>x+y ans= 5 7 • Phộp tớnh nhõn(.*) >>x.*y ans= 2 6 12 • Phộp tớnh chiặ/ hoặc .\) >> x./y ans= 0.5 0.66 0.75 >>x .\y ans= 2 1.5 0.75
3.6 Giải hệ phương trỡnh tuyến tớnh3.6.1 Hệ phương trỡnh tuyến tớnh : 3.6.1 Hệ phương trỡnh tuyến tớnh :
Xột hệ phương trỡnh sau:
a11*x1 + a12*x2+ . . . +a1n*xn=b1 a21*x2 + a22*x2+ . . . +a2n*xn=b2 .
.
am1*x1 + am2*x2+ . . . +amn*xn=bm
3.6.2 Hệ Phương trỡnh tuyến tớnh khụng đồng nhất
Phương trỡnh như sau gọi là phương trỡnh tuyến tớnh KĐN a1*x1 + a2*x2 + . . . + an*xn = b
b đứng độc lập (nú khụng nhõn với biến nào cả) Xột hệ thống sau:
a11*x1 + a12*x2+ . . . +a1n*xn=b1 a21*x2 + a22*x2+ . . . +a2n*xn=b2 .
.
am1*x1 + am2*x2+ . . . +amn*xn=bm
Viết theo ma trận A= [a11 a12...a1n; a21 a22...a2n,....am1 am2...amn] X=[x1 x2.... xn]; B=[b1 b2 ... bn];
Trong đú A được gọi là ma trận hệ số, X là vector kết quả 3.6.2.1 Giải hệ phương trỡnh bằng hàm nghịch đảo inv
Nếu m=n thỡ A là ma trận vuụng, và nếu det(A) là khỏc 0 thỡ tồn tại A-1 và vector kết quả X được cho bởi :
A-1*A*X=X=A-1*B Vớ dụ Giải hệ sau: 2*x1 - x2 = 2 x1 + x2 = 5 Matlab command >> A=[ 2 -1 ; 1 1 ]; >> B=[ 2 ; 5]; >> X= inv(A)*B >> X= 2.3333 2.667 >> X= rats(X) X= 7/3 8/3
Tuy nhiờn chỳng ta khụng thể ỏp dụng phương phỏp trờn cho 2*x1 - x2 = 2
2*x1 - x2 = 0 Ma trận hệ số A=[ 2 -1 ; 2 -1];
3.6.3 Hệ phương trỡnh tuyến tớnh đồng nhất
Biểu diễn dưới dạng ma trận như sau A*x=0
• Nếu det(A)#0 hệ cú nghiệm duy nhất là X=0
Vớ dụ xột hệ phương trỡnh tuyến tớnh sau 2*x1 - x2=0
x1+ x2=0
ở đõy det(A)= 3 cho nghiệm x1=0 , x2=0
• Đối với hệ phương trỡnh thuần nhất cú det(A)=0 thỡ hệ này cú vụ số nghiệm Vớ dụ Xột hệ phương trỡnh tuyến tớnh sau
-6* x1 + 3*x2 = 0 2* x1 - x2 = 0
Ma trận hệ số A= [ -6 3 ; 2 -1] , det(A)= 0 biểu diễn trờn đồ thị thấy rằng hai đường này trựng nhau do vậy hệ trờn cú vụ số nghiệm
• Trường hợp số biến n< số phương trỡnh m Vớ dụ như sau: 3*x1 + 4*x2 - 2*x3= 0 -2*x1 + 3*x2 - 4*x3= 0 5*x1 + x2 + 2*x3= 0 -9*x1 + 5*x2 - 10*x3= 0 Ma trận hệ số là ma trận 4 x 3 ,định thức lớn nhất cú thể được xõy dựng từ ma trận A là định thức ma trận 3 x 3, nhưng định thức của ma trận kớch thước 3 by 3 =0 ( A1=[ 3 4 - 2; -2 3 - 4 ; 5 1 2]=> det(A1)=0 )
Do đú ta xỏc định tiếp ma trận 2 x 2 Vớ dụ như sau
A2=[ 3 4; -2 3] và det(A) # 0 ta núi rằng hạng của ma trận Ăma trận hệ số) là bằng 2 đồng nghĩa với việc ta chỉ giải hai phương trỡnh bất kỳ trong số tất cả cỏc phương trỡnh trờn, và số biến chỳng ta gỏn giỏ trị tuỳ ý là = n- r ( trong đú n là số biến cũn r là hạng của ma trận A)
Giải hai phương trỡnh :
3*x1 + 4*x2 - 2*x3= 0 -2*x1 + 3*x2 - 4*x3= 0
Kết quả : x1= (-10/17)*x3 và x2=(16/17)*x3 , với x3 lấy giỏ trị tuỳ ý
3.6.4 Giải hệ phương trỡnh tuyến tớnh bằng Matlab(Dựng toỏn tử \)
2*x1 - x2 = 2 x1 + x2 = 5
>> A=[ 2 -1 ; 1 1]; >> B=[2 ; 5]; >>X=A\B
Phương phỏp giải này gọi là phương phỏp Gaussian elimination
Toỏn tử (\) thụng thường cung cấp một kết quả trong Matlab , trong một số trường hợp nú là phương phỏp giải riờng
3.7 Điều kiện cú nghiệm
Theo Kronecker-Capelli thỡ
Một hệ phương trỡnh cú một lời giải khi và chỉ khi ma trận hệ số A và ma trận [A B] cú cựng hạng.
Giả sử hạng của hai ma trận đều là r thỡ xảy ra cỏc trường hợp sau đõy • r=n Hệ phương trỡnh cú nghiệm duy nhất,
• r< n Hệ phương trỡnh cú vụ số nghiệm, chỳng ta cú thể giải cho r biến như là hàm của n-r biến khỏc ,cỏc biến khỏc này cú thể lấy giỏ trị tuỳ ý
Vớ dụ trờn
rank(a)= rank([a b]) = n cho nờn hệ nghiệm duy nhất >> rank(A), rank([A B]) ans= 2 ans= 2 Chỳng ta xem xột vớ dụ sau: 2* x1 + 3* x2 + 4*x3 = 4 x1 + x2 + x3 = 5 >> A=[ 2 3 4 ; 1 1 1]; >>B=[ 4 ; 5]; >>rank(A), rank([A B]) ans= 2 ans= 2 >> X= A\B X= 8 0 3
Hạng của hai ma trận A và [A B] bằng nhau và bằng 2 cho nờn hệ cú một lời giải , nhưng do rank(A) < n cho nờn ta chỉ giải cho hai biến như là hàm của biến cũn lạị Kết quả Matlab cho trờn chỉ là một trường hợp riờng (n-r biến được gỏn =0)
Xột hệ sau
x1 + 2 *x2 + 3 *x3 = 12 3* x1 + 2 *x2 + x3 = 15 3*x1 + 4 *x2 + 7 *x3 = 13 10*x1 + 9 *x2 + 8 *x3 = 17 Tớnh toỏn bằng Matlab như sau
>> A=[1 2 3 ; 3 2 1 ; 3 4 7; 10 9 8]; >>B= [12 ; 15; 13 ; 17 ]; >>rank(A), rank([A B]) ans= 3 ans= 4 >> X= A\B ans= 1.0887 -0.2527 1.5349 Khi thử lại như sau >> A* ans ans= 5.1882 4.2957 13.0000 20.8925 Kết quả khụng bằng B
Hệ phương trỡnh trờn vụ nghiệm ,tuy nhiờn Matlab vẫn cho nghiệm ,nghiệm này khụng phải nghiệm đỳng mà là nghiệm xấp xỉ giải theo tiờu chuẩn bỡnh phương tối thiểu( ta khụng đề cập tới)
3.8 Hệ điều kiện yếu
Chỳng ta núi rằng một vấn đề được coi là điều kiện yếu nếu một sự thay đổi nhỏ trong dữ liệu sẽ dẫn đến thay đổi lớn trong kết quả. Điều này là rất nguy hiểm đối với cỏc kỹ sư làm việc với cỏc thiết bị , sai số ở cỏc thiết bị , sai số do làm trũn (điều này chắc
chắn xảy ra) Nếu dữ liệu này là đầu vào đối với vấn đề trờn thỡ kết quả thu được sẽ khủng khiếp Vấn đề chỳng ta bàn tới là Điều kiện yếu của hệ phương trỡnh tuyến tớnh Ma trận yếu điển hỡnh là ma trận Hibert cú dạng như sau:
A=[ 1 1/2 1/3...1/n;1/2 1/3 ...1/(n+1) 1/3 1/4 1/5.... 1/(n+2) 1/n .. 1/(2n)]
Vớ dụ sau đõy: Giải hệ phương trỡnh tuyến tớnh cú ma trận hệ số sau A=[1 1; 1 1.01] B=[2 ; 2.01];
>> X= A\B X= 1.0000 1.0000
Một sai số nhỏ được thể hiện trong long format >> format long; X= A\B
X=
1.000000000002 0.999999999998
Nếu ta thay đổi một phần tử của A vớ dụ Ă1, 2)=1.005 >> Ă1,2)=1.005 ; X= A\B
X=
-0.0000000099991 1.9999999999991
Thay đổi Ă1,2) =1.005 so với giỏ trị cũ là 1 tức là tăng 0.5% tương ứng với giỏ trị x(1) giảm 101%, và tăng x(2) tăng 100%
Cỏch giải hệ phương trỡnh điều kiện yếu A*X=B
Nếu A là ma trận Hillbert sử dụng hàm tớnh nghịch đảo invhilb(n) trong đú n là kớch thước của ma trận đú
Vớ dụ >>A= [ 1/1 1/2 ; 1/2 1/3]; >> B=[1 ;1/2]
>>X= invhilb(2)* b
Nếu A khụng phải là ma trận hilbert thỡ sử dụng hàm symbolic Vớ dụ A= [ 1 1.01; 0.5 1.02];
A=sym( [1 1.01 ; 0.5 1.02] ); B=[ 1.1; 1.2];
3 .9 Lệnh cond Tớnh điều kiện của ma trận
Cấu trỳc:
>> cond(A) % A là ma trận
kết quả trả lại dạng như sau: a* 10k ; 0 < a < 9
k là số digits khụng tin cậy trong kết quả giải hệ phương trỡnh tuyến tớnh và trong việc nghịch đảo ma trận. Nếu k xấp xỉ 1 thỡ đúlà ma trận cú well -condition
Vớ dụ >>A=[1/2 1/3 1/4 ; 1/3 1/4 1/5; 1/4 1/5 1/6]; >> cond(A)
ans=
1.3533e+003
Ta thấy rằng k= 3 tức là cú 3 số khụng đỏng tin cậy Tổng kết
Định nghĩa :Hạng ma trận
Ar là một ma trận r hàng r cột được xõy dựng từ A , khụng nhất thiết theo thứ tự trong ma trận A và det(Ar)#0 .Nếu bất kỳ ma trận Ar+1 nào được xõy dựng từ r+1 hàng và r+1 cột của A, det(Ar+1)=0 thỡ chỳng ta núi rằng Matrận A cú hạng bằng r
Một hệ thống m phương trỡnh tuyến tớnh trong n biến (chưa biết) a11*x1 + a12*x2+ . . . +a1n*xn=b1
a21*x1 + a22*x2+ . . . +a2n*xn=b2 . .
am1*x1 + am2*x2+ . . . +amn*xn=bm Cú thể viết dưới dạng form ma trận AX=B
Trong đú A là ma trận hệ số và X là vector kết quả
Điều kiện cú nghiệm Matrận [A B] được gọi là ma trận mở rộng của hệ. Theo Kronecker- Capelli thỡ hệ phương trỡnh tuyến tớnh cú nghiệm khi và chỉ khi hạng của ma trận A bằng hạng của ma trận bổ xung
• Nếu r= n thỡ nghiệm trờn là duy nhất
• Nếu r<n thỡ hệ trờn khụng xỏc định và r biến cú thể được biểu diễn dưới dạng hàm của n-r biến khỏc ,cỏc biến khỏc này cú thể cho giỏ trị bất kỳ( núi cỏch khỏc hệ vụ số nghiệm)
Nghiệm của hệ phương trỡnh tuyến tớnh được tớnh trong Matlab bằng toỏn tử ( \ ) .Nếu hệ cú nghiệm duy nhất Matlab sẽ cung cấp cho nú , nếu hệ là khụng xỏc định(r<n) thỡ toỏn tử ( \ ) sẽ cung cấp cho chỳng ta một nghiệm riờng trong đú n-r biến sẽ được đặt =0.
Một nghiệm , nghiệm này làm thoả món tổng bỡnh phương của cỏc nghiệm bộ nhất Dựng lệnh X= pinv(A)*B
Nếu hạng của A # hạng matrận mở rộng thỡ toỏn tử ( \ ) cung cấp một kết quả nhưng kết quả này khụng phải là nghiệm của hệ
Hệ thuần nhất khi vector B=0. Một hệ thuần nhất cú một nghiệm tầm thường khi det(A) # 0.Nếu det(A)=0 hệ cú nhiều hơn một nghiệm trong trường hợp này Matlab sẽ cảnh bỏo người dựng :
TểM TẮT NỘI DUNG CỐT LếI
- Áp dụng matlab trong tớnh toỏn mạch điện, giải mạch điện nhanh chúng tiện lợi- ỏp dụng giải phương trỡnhvà hệ phương trỡnh tuyến tớnh.
- Giải cỏc phương trỡnh phi tuyến và PT tham số. - Giải hệ PT vi phõn.
BÀI TẬP ỨNG DỤNG, LIấN HỆ THỰC TẾ