Biến đổi laplace và laplace ngược

Một phần của tài liệu BÀI GIẢNG TIN ỨNG DỤNG NGÀNH KỸ THUẬT ĐIỆN (Trang 43)

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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]; (adsbygoogle = window.adsbygoogle || []).push({});

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Ế

Một phần của tài liệu BÀI GIẢNG TIN ỨNG DỤNG NGÀNH KỸ THUẬT ĐIỆN (Trang 43)