You are on page 1of 86

Trường Đại học Công nghiệp thành phố Hồ Chí Minh 1

Khoa Công nghệ Cơ khí


Bộ môn Cơ sở - Thiết kế

Bài 2:
Phương trình và hệ phương trình đại số phi tuyến
Thời lượng: 6 tiết
Khái niệm phương trình đại số tổng quát 2

f ( x ) = 0 (1)
Giá trị x nào mà làm cho thoả mãn (1) thì được gọi là nghiệm của phương trình (1)

ax + b = 0 ∗ −b Có công thức giải tích tìm chính


(2)  ⇔x =
a ≠ 0 a xác nghiệm

ax 2 + bx + c = 0
 ∗ −b ± b 2
− 4ac Có công thức giải tích tìm chính
(3) a ≠ 0 ⇔ x1,2 =
xác nghiệm
b 2 − 4ac ≥ 0 2a

Khái niệm phương trình đại số tổng quát 3

4 (1 − x 2 ) − e x = 0
Không có công thức giải tích Phương
1 tìm chính xác nghiệm pháp số
sin ( x ) ln ( x ) + x x − = 0
2

Vô nghiệm Một nghiệm Một nghiệm Nhiều nghiệm


Một số bài toán kỹ thuật đưa về phương trình phi tuyến

Cho r, As 1 2 2 As
As = r (θ − sin θ ) ⇔ f (θ ) = θ − sin θ − 2 = 0
Tìm góc θ ? 2 r

Cho m, v, t, g gm   c
− t  gm  − t 
 c

 1 − e   ⇔ f ( c ) =
  
Tìm hệ số v= m
 1 − e m   − v = 0
c  
 c 



cản c ?
4
Các cách tiếp cận để giải phương trình đại số phi tuyến 5

- PP vòng lặp
điểm cố định đơn
giản
- PP Newton-
Raphson
- PP dây cung

- PP đồ thị
- PP chia đôi đoạn
- PP vị trí sai
Các phương pháp “bủa vây” 6

MATLAB
c=1:0.2:20
 gm   − t 
 c
f=667.38*(1-exp(-0.146843*c))./c - 40
 f ( c ) =  1 − e m   − v = 0 plot(c,f,'-k','linewidth',2),grid on
 c  
 60

t = 10 s; v = 40 m s; m = 68.1 kg; g = 9.81 m s
2
50

⇒ f (c) =
667.38
c
(1 − e −0.146843c
) − 40 = 0 40

30

20

10

-10
0 2 4 6 8 10 12 14 16 18 20

c=14:0.1:16
Các phương pháp “bủa vây” 7

c=14:0.1:16 c=14.7:0.01:14.8
f=667.38*(1-exp(-0.146843*c))./c - 40 f=667.38*(1-exp(-0.146843*c))./c - 40
plot(c,f,'-k','linewidth',2),grid on plot(c,f,'-k','linewidth',2),grid on

2 0.16

1.5 0.14

0.12
1

0.1
0.5
0.08
0
0.06
-0.5
0.04
-1
0.02

-1.5
0

-2 -0.02

-2.5 -0.04
14 14.2 14.4 14.6 14.8 15 15.2 15.4 15.6 15.8 16 14.7 14.72 14.74 14.76 14.78 14.8 14.82

c=14.7:0.01:14.8 c = 14.78
Các phương pháp “bủa vây” 8

Ví dụ cần giải phương trình f(x)=0 trên đoạn [0; 1]

1
f ( x)
4

Vùng tìm kiếm 5

Vùng tìm kiếm 4

Vùng tìm kiếm 3

Vùng tìm kiếm 2

Vùng tìm kiếm 1


Các phương pháp “bủa vây” 9

f ( x)
Miền bị Bước 1: Cho a, b, ε
loại bỏ Bước 2: Tính ; ;
a α b x Nếu ∙ 0
thì b = α
f (α ) ⋅ f ( b ) < 0
còn không thì a = α
f ( x) Nếu |a – b| > ε
Miền bị
loại bỏ thì đến bước 2
a α b x
còn không thì đến bước 3
Bước 3: Hội tụ. In kết quả nghiệm x* = α;
f(x*) = f(α)
f ( a ) ⋅ f (α ) < 0
Các phương pháp “bủa vây” 10

Tìm điểm nghiệm của phương trình f(x)=0 trong khoảng [a, b] bằng pp chia
đôi đoạn với 5 vòng lặp
f ( x ) = e0.2 x − e −0.8 x − 2; [ a, b] = [3, 4]
 a+b 
 SVL [ a, b ] f (a) f (b) α= f (α ) b−a 
2
 
 0 [3, 4] −0.268599153 0.184778724 3.5 −0.047057356 1 
 1

[3.5, 4] −0.047057356 0.184778724 3.75 0.067212949 0.5 

 2 [3.5,3.75] −0.047057356 0.067212949 3.625 0.009707880 0.25 
 3 3.5625 −0.018761723 0.125 
 [3.5,3.625] −0.047057356 0.009707880

 4 [3.5625,3.625] −0.018761723 0.009707880 3.59375 −0.004549366 0.0625 
 
 5 [3.59375,3.625] −0.004549366 0.009707880 3.609375 0.002573559 0.03125
Các phương pháp “bủa vây” 11

Sai số ước lượng sau n vòng lặp là:

b−a (4)
∆xn = n
2
Nếu đề yêu cầu cần thực hiện số vòng lặp sao cho sai số ước lượng của
nghiệm không vượt quá ε:

b−a  b−a 
∆xn = n ≤ ε ⇔ n ≥ log 2   (5)
2  ε 
Các phương pháp “bủa vây” 12

MATLAB
x=3:0.01:4
f ( x ) = e0.2 x − e −0.8 x − 2; [ a, b] = [3, 4]
f=exp(0.2*x)-exp(-0.8*x)-2
0.18478
plot(x,f,'-b','linewidth',2),grid on

0.2
0.067213
0.15

0.1
0.0097
0.05
−0.01876
−0.047
0

-0.05

-0.1

-0.15

-0.2

-0.25

-0.3
3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4
−0.2686

In ra Vẽ tay
Các phương pháp “bủa vây” 13
Các phương pháp “bủa vây” 14

Ưu điểm:
• Đơn giản, dễ lập trình
• Kích thước của khoảng nghiệm giảm 50% sau mỗi lần lặp
• Số vòng lặp có thể được xác định trước khi biết yêu cầu về sai số
cho phép định trước ε
• Không cần tính đạo hàm

Nhược điểm:
• Chậm hội tụ
• Các xấp xỉ tốt trung gian có thể bị loại bỏ lãng phí
Các phương pháp “bủa vây” 15

CÔNG THỨC:
f (a)
f (a) y = f ( x)
 f (b) ⋅ (b − a )
f (c) c = b −
 f (b) − f ( a )

x0 = b x∗ x1 = c b  x = x − f ( x0 ) ⋅ ( x0 − xk −1 )
a x1 = c x2 ∗ x0 = a
x2  k 0
f ( x0 ) − f ( xk −1 )
x 
y = f ( x)
f (c)
f (b) (5)
f (b)

 x0 = b  x0 = a
Nếu f (a) ⋅ f (c) > 0 ⇒  Nếu f (a) ⋅ f (c) < 0 ⇒ 
 x1 = c  x1 = c
Các phương pháp “bủa vây” 16

Tìm điểm nghiệm của phương trình f(x)=0 trong khoảng [a, b] bằng pp vị trí
sai cho đến khi sai số ước lượng của nghiệm nhỏ hơn ε=0.001

f ( x ) = e0.2 x − e −0.8 x − 2; [ a, b] = [ 2, 6]
Các phương pháp “bủa vây” 17

MATLAB
x=2:0.01:6
f ( x ) = e0.2 x − e −0.8 x − 2; [ a, b] = [ 2, 6]
f=exp(0.2*x)-exp(-0.8*x)-2
plot(x,f,'-b','linewidth',2),grid on 1.31189

1.5

0.5

0
x1 = c

-0.5
−0.08988 x2 x0
-1
2 2.5 3 3.5 4 4.5 5 5.5 6

In ra Vẽ tay
Các phương pháp “bủa vây” 18

f ( a ) ⋅ b − f (b ) ⋅ a
c=
f ( a ) − f (b)

Nếu f(c)=0 thì


dừng lại
Còn nếu f(a)* f(c)<0 thì
Cỡ_bước = b – c
b=c
Còn lại (tức là f(a)* f(c)>0) thì
Cỡ_bước = c – a
a=c
Kết thúc Nếu
Các phương pháp “bủa vây” 19

f ( x) Khi đoạn thẳng nối 2


điểm đầu và cuối trên
A
khoảng [a,b] của hàm
số cắt với đồ thị hàm số
f(x) tại 1 điểm C, thì khi
C b này điểm x0 sẽ có khẳ
a x năng không cố định là a
hay b mà sẽ hoán đổi
liên tục, tuy nhiên bài
toán sẽ không hội tụ
B mà phân ly.
Các phương pháp “bủa vây” 20

Có nhiều tình huống hàm số mà tốc độ hội tụ


của nghiệm theo phương pháp vị trí sai là rất
chậm
Các phương pháp mở 21

y = f ( x) Biến đổi phương trình f(x)=0 thành phương trình có dạng:

x = g ( x) (6)

xi +1 = g ( xi ) (7)
y=x

y = g ( x)
Công thức (7) cho phép dự đoán được điểm tìm
kiếm nghiệm tiếp theo xi+1, khi biết được điểm
tìm kiếm trước đó xi.
Các phương pháp mở 22

Tìm điểm nghiệm của phương trình f(x)=0 bằng pp vòng lặp điểm cố định
đơn giản với điểm khởi đầu x0 = 1 cho đến khi sai số ước lượng của nghiệm
nhỏ hơn ε=0.001
f ( x ) = e0.2 x − e −0.8 x − 2; x0 = 1

f ( x) = e 0.2 x
−e −0.8 x
−2=0
−0.8 x
⇔e 0.2 x
=e +2
⇔ 0.2 x = ln ( e −0.8 x + 2 )

⇔ x = g ( x ) = 5ln ( e −0.8 x + 2 )
Các phương pháp mở 23

i xi g(x i ) Δx i
(
xi +1 = g ( xi ) = 5ln e −0.8 xi
+2 ) 0 1 4,479070474 -
x0 = 1 1 4,479070474 3,534720499 3,479070474

∆xi = xi − xi −1 2 3,534720499 3,611452348 0,944349975


3 3,611452348 3,602894367 0,076731849
4 3,602894367 3,603823736 0,008557981
Excel 5 3,603823736 3,60372251 0,000929369
Các phương pháp mở 24

g ( x ) = 5ln ( e −0.8 x + 2 )

Minh hoạ

f ( x ) = e0.2 x − e−0.8 x − 2 = 0

⇔ x = g ( x ) = 5ln ( e −0.8 x + 2 )
Các phương pháp mở 25

x
x = 1+
2
x
g ( x) = 1+
2

xi
xi +1 = g ( xi ) = 1 +
2
1
x0 =
10
26
Hội tụ Phân kỳ

Mô hình
đơn điệu

Mô hình
xoắn ốc
27

Lựa chọn phương án hàm số g(x) hợp lý


• Có thể có nhiều hơn một dạng hàm g(x) có thể được sử dụng, hoặc cũng có
thể không có một hàm g(x) để sử dụng phương pháp vọng lặp điểm cố định
• Trong trường hợp có nhiều nghiệm, một hàm lặp có thể mang lại một
nghiệm, trong khi một hàm khác mang lại các nghiệm khác
• Có thể xác định trước sự hội tụ hay phân kỳ cho một hàm g(x)

Phương pháp lặp điểm cố định hội tụ nếu, trong vùng lân cận của điểm cố
định, đạo hàm của g(x) có giá trị tuyệt đối nhỏ hơn 1 (còn được gọi là liên
tục Lipschitz):

g′ ( x) < 1 (8)
28

Lựa chọn phương án hàm số g(x) hợp lý: Ví dụ


Khảo sát các phương án khác nhau của hàm g(x) của phương trình f(x)=0
trên đoạn [1;2]
f ( x ) = xe 0.5 x
+ 1.2 x − 5 = 0
Do thi ham f(x)=x*exp(0.5*x)+1.2*x-5

MATLAB 2.5

f = @(x) (x*exp(0.5*x)+1.2*x-5); 1.5

fplot(f, [1, 2], 'm-','Linewidth',2) 1

title('Do thi ham 0.5

f(x)
f(x)=x*exp(0.5*x)+1.2*x-5') 0
xlabel('x'),ylabel('f(x)'),grid on -0.5

-1

-1.5

-2

Trong khoảng [1;2] có nghiệm 1 1.1 1.2 1.3 1.4 1.5


x
1.6 1.7 1.8 1.9 2
29

Lựa chọn phương án hàm số g(x) hợp lý: Ví dụ (Tiếp)


Phương án 1:

5 − xe 0.5 x
25 5 0.5 x
f ( x ) = xe + 1.2 x − 5 = 0 ⇔ x = g1 ( x ) =
0.5 x
= − xe
1.2 6 6
5  0.5 x x 0.5 x  5 0.5 x  x 
⇒ g1 ( x ) = −  e + e  = − e 1 + 

6 2  6  2
 5 0.5⋅1  1 
 g1′ (1) = − 6 e 1 + 2  = −2.0609
    g1′ (1) > 1 Không thoả mãn
⇒ ⇒ điều kiện hội tụ
5
 g ′ ( 2 ) = − e0.5⋅2 1 +  2 
= −4.5305  1
g ′ ( 2 ) > 1
 1  
6  2
30

Lựa chọn phương án hàm số g(x) hợp lý: Ví dụ (Tiếp)


Phương án 1:
i xi g(x i ) Δx i
0 1 2,792732274 -
5 − xi e0.5 xi 1
xi +1 = g1 ( xi ) =
2,792732274 -5,236673912 1,792732274
2 -5,236673912 4,484899506 8,029406187
1.2
x0 = 1 3 4,484899506 -31,02623076 9,721573418
4 -31,02623076 4,166671401 35,51113027
∆xi = xi − xi −1 5 4,166671401 -23,71952477 35,19290216
6 -23,71952477 4,166806399 27,88619617
7 4,166806399 -23,72231067 27,88633117
8 -23,72231067 4,16680622 27,88911707
9 4,16680622 -23,72230699 27,88911689
Excel
10 -23,72230699 4,166806221 27,88911321
11 4,166806221 -23,722307 27,88911321 Không Hội tụ
31

Lựa chọn phương án hàm số g(x) hợp lý: Ví dụ (Tiếp)


Phương án 1:

5 − xi e0.5 xi
xi +1 = g1 ( xi ) =
1.2
x0 = 1
∆xi = xi − xi −1
32

Lựa chọn phương án hàm số g(x) hợp lý: Ví dụ (Tiếp)


Phương án 2:
5
f ( x ) = xe 0.5 x
+ 1.2 x − 5 = 0 ⇔ x = g 2 ( x ) = 0.5 x
e + 1.2
−5e0.5 x
⇒ g 2′ ( x ) =
2 (e + 1.2 )
0.5 x 2

 −5e0.5⋅1
 g 2′ (1) = = −0.5079
( + 1.2 )  g 2′ (1) < 1
0.5⋅1 2
 2 e Thoả mãn điều kiện
⇒ ⇒ hội tụ
 g′ ( 2) = −5e 0.5⋅2

 g 2′ ( 2 ) < 1
= −0.4426

( + 1.2 )
2 2
0.5⋅2
 2 e
33

Lựa chọn phương án hàm số g(x) hợp lý: Ví dụ (Tiếp)


Phương án 2: i xi g(x i ) Δx i
0 1 1,755173471 -
1 1,755173471 1,386928472 0,755173471
5
xi +1 = g 2 ( xi ) = 0.5 xi 2
e + 1.2 1,386928472 1,562190388 0,368244998
3
x0 = 1 1,562190388 1,477601318 0,175261915
4 1,477601318 1,518177159 0,084589069
∆xi = xi − xi −1 5 1,518177159 1,498653502 0,040575841
6 1,498653502 1,508033948 0,019523657
7 1,508033948 1,503523785 0,009380446
8 1,503523785 1,505691561 0,004510163
9 1,505691561 1,504649466 0,002167776
Excel
10 1,504649466 1,505150383 0,001042095
11 1,505150383 1,504909592 0,000500917 Hội tụ
34

Lựa chọn phương án hàm số g(x) hợp lý: Ví dụ (Tiếp)


Phương án 2:

5
xi +1 = g 2 ( xi ) = 0.5 xi
e + 1.2
x0 = 1
∆xi = xi − xi −1
35

Lựa chọn phương án hàm số g(x) hợp lý: Ví dụ (Tiếp)


Phương án 3:

5 − 1.2 x
f ( x ) = xe + 1.2 x − 5 = 0 ⇔ x = g3 ( x ) = 0.5 x
0.5 x

e
−3.7 + 0.6 x
⇒ g3′ ( x ) =
e0.5 x
 ′ −3.7 + 0.6 ⋅1
 g3 (1) = e 0.5⋅1
= −1.8802
 g3′ (1) > 1 Không thoả mãn
⇒ ⇒
 g ′ ( 2 ) = −3.7 + 0.6 ⋅ 2 = −0.9197  g3′ ( 2 ) < 1
điều kiện hội tụ
 3 e0.5⋅2
36

Lựa chọn phương án hàm số g(x) hợp lý: Ví dụ (Tiếp)


Phương án 3:
i xi g(x i ) Δx i
0 1 2,304816507 -
5 − 1.2 xi
xi +1 = g3 ( xi ) = 0.5 xi
1 2,304816507 0,705734628 1,304816507
e 2 0,705734628 2,918273491 1,599081879
x0 = 1 3 2,918273491 0,348207078 2,212538864
4
∆xi = xi − xi −1 0,348207078 3,849969052 2,570066413
5 3,849969052 0,055439063 3,501761974
6 0,055439063 4,798597541 3,79452999
7 4,798597541 -0,068841227 4,743158478
8 -0,068841227 5,260601738 4,867438769
9 5,260601738 -0,094590526 5,329442965
Excel
10 -0,094590526 5,361163658 5,355192264
11 5,361163658 -0,098221013 5,455754184 Phân kỳ
37

Lựa chọn phương án hàm số g(x) hợp lý: Ví dụ (Tiếp)


Phương án 3:

5 − 1.2 xi
xi +1 = g3 ( xi ) = 0.5 xi
e
x0 = 1
∆xi = xi − xi −1
38

Lựa chọn phương án hàm số g(x) hợp lý


Bước 1: Chọn g(x) = x + f(x) hoặc g(x) = x – f(x)
Bước 2: Tính đạo hàm g’(x) = 1 + f’(x) hoặc g’(x) = 1 – f’(x)
Bước 3: Vẽ đồ thị hàm g’(x) và so sánh tương quan của đồ thị đó so với 2
đường y=±1 trong khoảng [a;b]
Bước 4: Từ đó điều chỉnh hàm g’(x) = 1 ± α.f’(x) để sao cho đồ thị hàm
g’(x) sẽ nằm trọn trong vùng y=±1
y
y =1
Từ đó chọn:
a
b x g(x) = x ± α.f(x)
y = −1
Các phương pháp mở 39

y = f ( x) Xuất phát từ 1 điểm x0 đầu tiên, kẻ


đường thẳng đứng cắt với đường
cong y tại 1 điểm. Dựng tiếp tuyến
với y tại điểm đó. Đường tiếp tuyến
sẽ cắt trục hoành tại điểm x1. Với
điểm x1 ta lại làm như ở bước x0 lúc
f ( x0 )
đầu. Cứ như vậy đến khi nào cách
biệt giữa xi+1 và xi nhỏ hơn một sai số
ϕ0 cho phép.

f ( xi )
xi +1 = xi − (9)
f ′ ( x0 ) = tan ϕ0 f ′ ( xi )
Các phương pháp mở
Bước 1: Cho x0, ε
f ( x)
Bước 2: Tính x0 ; ′ x0
Tiếp tuyến
Tích luỹ vòng lặp:
xi = x0 – x0 / ′ x0
Nếu | xi – x0| > ε
thì:
x0 = xi
đến bước 2
còn không thì đến bước 3
Bước 3: Hội tụ. In kết quả nghiệm x* = xi;
f(x*) = f(xi)
40
Các phương pháp mở 41

Tìm điểm nghiệm của phương trình f(x)=0 bằng phương pháp Newton-
Raphson với x0 = 15, ε=0.001
f ( x ) = e0.2 x − e −0.8 x − 2; x0 = 15

 f ′ ( x ) = 0.2e + 0.8e
0.2 x −0.8 x
i xi f(x i ) f'(x i ) Δx i
 0 15 18,08553078 4,0171123 -
 f ( xi )
 xi +1 = xi − f ′ x 1 10,49787772 6,162479222 1,632721094 4,502122278
 ( i) 2 6,723516476 1,832434607 0,771100215 3,774361246
3 4,347126779 0,354661317 0,501810569 2,376389697
Excel
4 3,640363432 0,016734045 0,457697892 0,706763347
5 3,603802098 3,17577E-05 0,45597063 0,036561334
6 3,603732449 1,12594E-10 0,455967397 6,96487E-05
Các phương pháp mở 42

f ( x)
18.08553

6.16248

1.83243
0.35466
x4 x3 x2 x1
Các phương pháp mở 43

f ( x) f ( x)

f ( x)
f ( x)
Các phương pháp mở 44

Xuất phát từ 2 điểm x1, x2


y y = f ( x) tương đối gần nhau trên trục x,
f ( x1 ) ta xác định 2 điểm tương ứng
trên đồ thị là f(x1) và f(x2). Nối
chúng tạo thành dây cung cắt
f ( x2 ) trục x tại điểm x3. Tiếp tục xác
định điểm tương ứng của x3
f ( x3 ) trên đồ thị là f(x3). Lại vẽ dây
Nghiệm cung nối 2 điểm f(x2) và f(x3) cắt
f ( x4 ) trục x tại điểm x4. Tiếp tục như
x vậy đến khi thu được điểm gần
x5 x4 x3 x2 x1 với nghiệm của phương trình.
45

Phương pháp Newton Phương pháp dây cung


y = f ( x)
y y = f ( x)
f ( x1 )

f ( x0 ) f ( x2 )

ϕ0 f ( x3 )
Nghiệm
f ( x4 )
x
f ′ ( x0 ) = tan ϕ0 x5 x4 x3 x2 x1
f ( xi )
f ( xi ) xi +1 = xi − Cần 2 điểm
xi +1 = xi − f ( xi ) − f ( xi −1 )
f ′ ( xi ) ban đầu
xi − xi −1 (10)
46

Tìm điểm nghiệm của phương trình f(x)=0 trong khoảng bằng phương pháp
dây cung với x1 = 15, x2 = 14, ε=0.001
f ( x ) = e0.2 x − e −0.8 x − 2; x1 = 15; x2 = 14

i xi f(x i ) Δx i
f ( xi )
xi +1 = xi − 1 15 18,08553078 -
f ( xi ) − f ( xi −1 ) 2 14 14,4446331 1
xi − xi −1 3 10,03267261 5,437171342 3,96732739
4
x1 = 15; x2 = 14 7,63787601 2,604772359 2,3947966
5 5,435537982 0,952756614 2,202338028
6 4,165397472 0,264681654 1,27014051
7 3,676812781 0,033449117 0,48858469
Excel
8 3,606136194 0,001096164 0,070676587
9 3,603741572 4,15972E-06 0,002394622
10 3,60373245 5,09302E-10 9,12172E-06
Các phương pháp mở 47
Ví dụ các bài toán kỹ thuật đưa về giải Phương trình 48

Cho cơ cấu bốn khâu bản lề


với kích thước các khâu
AB=r2, BC=r3, CD=r4, khoảng
B cách 2 trục A và D là r1. Ở
C một thời điểm làm việc bất
kỳ, nếu biết góc α, hãy tính
góc φ=θ2, θ3, θ4.
A D Chiếu (11) lên 2 trục x và y:
AD = AB + BC + CD r2 cos θ 2 + r3 cos θ3 + r4 cos θ 4 − r1 = 0

⇔ r1 = r2 + r3 + r4 
φ α +π
(12)
 r2 sin θ 2 + r3 sin θ3 + r4 sin θ 4 = 0
⇔ r2 + r3 + r4 − r1 = 0 (11) φ α +π
Ta cần khử ẩn θ3 để đưa về một phương trình chỉ có α và φ: 49

r3 cos θ3 = r1 − r2 cos φ + r4 cos α


(12 ) ⇔ 
r3 sin θ3 = −r2 sin φ + r4 sin α
( r3 cos θ3 )2 = r12 + r22 cos 2 φ + r42 cos 2 α − 2r1r2 cos φ + 2r1r4 cos α − 2r2 r4 cos φ cos α
⇔ +
( r3 sin θ3 ) = r2 sin φ + r4 sin α − 2r2 r4 sin φ sin α
2 2 2 2 2

⇔ r32 = r12 + r22 + r42 − 2r1r2 cos φ + 2r1r4 cos α − 2r2 r4 cos (α − φ )
⇔ 2r1r4 cos α − 2r1r2 cos φ + ( r12 + r22 + r42 − r32 ) − 2r2 r4 cos (α − φ ) = 0
r1 r1 r12 + r22 + r42 − r32
⇔ cos α − cos φ + − cos (α − φ ) = 0
r2 r4 2r2 r4
 R1 cos α − R2 cos φ + R3 − cos (α − φ ) = 0

⇔ (13)
r1 r1 r12 + r22 + r42 − r32
 R1 = ; R2 = ; R3 =
 r2 r4 2r2 r4
Xét trường hợp cụ thể: r1 = 10; r2 = 6; r3 = 8; r4 = 4 50

5 5 11 5 5 11
⇒ R1 = ; R2 = ; R3 = ⇒ (13) ⇔ cos α − cos φ + − cos (α − φ ) = 0 (14)
3 2 6 3 2 6
Với α=π/3:
5 π  5 11 π 
(14 ) ⇔ cos   − cos φ + − cos  − φ  = 0
f = @(x) ((5/2)*cos(x)+cos((1/3)*pi-x)-8/3);
3 3 2 6 3 
fplot(f, [0, 2*pi], 'm-','Linewidth',2)
title('Do thi ham f(x)=(5/2)*cos(x)+cos((1/3)*pi- 5 π  8
x)-8/3') ⇔ cos φ + cos  − φ  − = 0 (15)
xlabel('x'),ylabel('f(x)'),grid on 2 3  3

Dùng các phương pháp bủa vây tìm


nghiệm trong khoảng [0;1], hoặc các
phương pháp mở với điểm khởi đầu
f(x)

là x0=1
Hệ phương trình đại số phi tuyến 51

 f1 ( x1 , x2 ,… , xn ) = 0

Tìm nghiệm (x1,x2,…,xn) của hệ  f 2 ( x1 , x2 ,… , xn ) = 0 (16)
phương trình sau: 
…
 f ( x , x ,… , x ) = 0
 n 1 2 n

 x 2 + xy = 10  f1 ( x1 , x2 ) = x12 + x1 x2 − 10 = 0
 ⇔
 y + 3 xy 2
= 57 f (
 2 1 2
x , x ) = x 2 + 3 x1 2 − 57 = 0
x 2
Hệ phương trình đại số phi tuyến 52
Hệ phương trình đại số phi tuyến 53

Biến đổi hệ phương trình (11) thành hệ phương trình có dạng:

 f1 ( x1 , x2 ,… , xn ) = 0  x1 = g1 ( x1 , x2 ,… , xn )  x1,i +1 = g1 ( x1,i , x2,i ,… , xn ,i )


  
 f 2 ( x1 , x2 ,… , xn ) = 0  x2 = g 2 ( x1 , x2 ,… , xn )  x2,i +1 = g 2 ( x1,i , x2,i ,… , xn ,i )
 ⇔ ⇒ (17)
… … …
 f ( x , x ,… , x ) = 0  x = g ( x , x ,… , x ) 
 n 1 2 n  n n 1 2 n
 xn ,i +1 = g n ( x1,i , x2,i ,… , xn ,i )

 10 − x 2  10 − x 2

 f1 ( x1 , x2 ) = x1 + x1 x2 − 10 = 0
2
x
 1 = 1
 1,i +1
x = 1,i

 ⇔ x2 ⇒ x2,i
 f 2 ( x1 , x2 ) = x2 + 3 x1 x2 − 57 = 0
2
 x = 57 − 3 x x 2 
 2 1 2 x
 2,i +1 = 57 − 3 x x 2
1,i 2,i
Hệ phương trình đại số phi tuyến 54

Điều kiện 1: Các hàm số sau liên tục xung quanh điểm nghiệm:
∂g1 ∂g1 ∂g ∂g ∂g ∂g ∂g ∂g ∂g
g1 , g 2 ,… , g n , , ,… , 1 , 2 , 2 ,… , 2 ,… , n , n ,… , n
∂x1 ∂x2 ∂xn ∂x1 ∂x2 ∂xn ∂x1 ∂x2 ∂xn
 ∂g1 ∂g1 ∂g1
Điều kiện 2:  + +… + <1
 ∂x1 ∂x2 ∂xn

 ∂g 2 + ∂g 2 + … + ∂g 2 < 1
 ∂x1 ∂x2 ∂xn (18)

…
 ∂g ∂g ∂g
 n + n +… + n < 1
 ∂x1 ∂x2 ∂xn

Điều kiện 3: Các giá trị ban đầu tương đối gần với nghiệm:
x1,1 , x2,1 ,… , xn ,1
Hệ phương trình đại số phi tuyến 55

1) Chuẩn hoá sai số ước lượng của nghiệm:

(x − x1,i −1 ) + ( x2,i − x2,i −1 ) + … + ( xn ,i − xn ,i −1 ) < ε


2 2 2
∆xi = 1,i
(19)

2) Chuẩn hoá sai số ước lượng của hàm số:

∑  f ( x , x2,i ,… , xn ,i ) − f k ( x1,i −1 , x2,i −1 ,… , xn ,i −1 )  < ε


2
∆fi = k 1,i
k =1
(20)
Hệ phương trình đại số phi tuyến 56

Giải hệ phương trình sau với điểm khởi đầu. Thực hiện 10 vòng lặp. Tính
chuẩn hoá sai số ước lượng của véctơ nghiệm và của véctơ hàm số.
 f1 ( x, y ) = 2 x − sin 0.5 ( x − y ) = 0
 x0 = ( x0 , y0 ) = ( 2, 2 )
 f 2 ( x, y ) = 2 y − cos 0.5 ( x + y ) = 0

1) Bước 1: biến đổi hệ phương trình


 sin 0.5 ( x − y )
 x = g1 ( x, y ) =
2

 y = g x, y = cos 0.5 ( x + y )
 2( )
2
Các hàm g1, g2 xác đinh và liên tục tại điểm khởi đầu
Hệ phương trình đại số phi tuyến 57

f1 = @(x,y) 2*x - sin(0.5*(x - y));


f2 = @(x,y) 2*y - cos(0.5*(x - y));
fimplicit(f1,[-5 5 -5 5],'m-','Linewidth',2),grid on
hold on
fimplicit(f2,[-5 5 -5 5],'k-','Linewidth',2),grid on
Hệ phương trình đại số phi tuyến 58

2) Bước 2: Tính các đạo hàm riêng:

 ∂g1 ∂g1   cos 0.5 ( x − y ) cos 0.5 ( x − y ) 


 ∂x −
∂y   4 4

 = 
 ∂g 2 ∂g 2   sin 0.5 ( x + y ) sin 0.5 ( x + y ) 
 − −
 ∂x ∂y   4 4

Kiểm tra điều kiện 2:


 ∂g1 ∂g1 
 +  = 0.5 < 1
 ∂x ∂y  x = 2,2
0 ( )

 ∂g 2 ∂g 2 
 +  = 0.4546487134 < 1
 ∂x ∂y 
x0 =( 2,2 )
Hệ phương trình đại số phi tuyến 59

3) Bước 3: Các vòng lặp

 sin 0.5 ( xi − yi ) i xi yi f 1 (x i ,y i ) f 2 (x i ,y i ) ||Δxi || ||f (xi )||


 xi +1 = g1 ( xi , yi ) = 1 2 2 4 4,416146837 - -
 2
cos 0.5 ( xi + yi )
2 0 -0,208073418 -0,103849135 -1,410739898 2,979192545 7,12700405

 yi +1 = g 2 ( xi , yi ) = 3 0,051924567 0,497296531 0,32469921 0,032062182 0,707278535 1,505101832

 2 4 -0,110425038 0,481265439 0,070698397 -0,02032799 0,163139174 0,259347534


( x0 , y0 ) = ( 2, 2 ) 5 -0,145774236 0,491429435 0,021690594 -0,002243578 0,036781417 0,05223802
 6 -0,156619533 0,492551224 0,005676776 -0,000824423 0,010903159 0,016076578
 7 -0,159457921 0,492963435 0,00154001 -0,000202075 0,002868164 0,004183318
8 -0,160227926 0,493064473 0,000412523 -5,54628E-05 0,000776605 0,001136979
9 -0,160434187 0,493092204 0,000110808 -1,47829E-05 0,000208117 0,000304445
10 -0,160489591 0,493099596 2,97362E-05 -3,97426E-06 5,58948E-05 8,17891E-05

Excel
Hệ phương trình đại số phi tuyến 60

Biến đổi hệ phương trình (11) thành hệ phương trình có dạng:


 x1,i +1 = g1 ( x1,i , x2,i ,… , xn ,i )

 f1 ( x1 , x2 ,… , xn ) = 0  x1 = g1 ( x1 , x2 ,… , xn )  x2,i +1 = g 2 ( x1,i +1 , x2,i ,… , xn ,i )
  
 f 2 ( x1 , x2 ,… , xn ) = 0  x2 = g 2 ( x1 , x2 ,… , xn )  x3,i +1 = g 2 ( x1,i +1 , x2,i +1 , x3,i ,… , xn ,i )
 ⇔ ⇒ (21)
… …  x4,i +1 = g 2 ( x1,i +1 , x2,i +1 , x3,i +1 , x4,i ,… , xn ,i )
 f ( x , x ,… , x ) = 0  x = g ( x , x ,… , x ) 
 n 1 2 n  n n 1 2 n
…
 n ,i +1 = g n ( x1,i +1 , x2,i +1 , x3,i +1 ,… , xn −1,i +1 , xn ,i )
x

 10 − x  2
10 − x 2

 f1 ( x1 , x2 ) = x12 + x1 x2 − 10 = 0 x
 1 =  x1,i +1 =
1 1,i

 ⇔ x ⇒ x2,i
 f 2 ( x1 , x2 ) = x2 + 3 x1 x2 − 57 = 0
2 2
 x = 57 − 3 x x 2 
 2 1 2 x
 2,i +1 = 57 − 3 x x 2
1,i +1 2,i
Hệ phương trình đại số phi tuyến 61

Giải hệ phương trình sau với điểm khởi đầu. Thực hiện 10 vòng lặp. Tính
chuẩn hoá sai số ước lượng của véctơ nghiệm và của véctơ hàm số.
 f1 ( x, y ) = 2 x − sin 0.5 ( x − y ) = 0
 x0 = ( x0 , y0 ) = ( 2, 2 )
 f 2 ( x, y ) = 2 y − cos 0.5 ( x + y ) = 0

Các bước 1 và 2 giống hệt như ở


phương pháp vòng lặp điểm cố định
đơn giản
Hệ phương trình đại số phi tuyến 62

3) Bước 3: Các vòng lặp


i xi yi f 1 (x i ,y i ) f 2 (x i ,y i ) ||Δxi || ||f (xi )||
 sin 0.5 ( xi − yi )
 xi +1 = g1 ( xi , yi ) =
1 2 2 4 4,416146837 - -

 2 2 0 0,270151153 0,134665199 -0,450588851 2,644310313 6,214976216


 cos 0.5 ( xi +1 + yi ) 3 -0,0673326 0,497431242 0,143978821 0,017896614 0,237044127 0,468578034
 yi +1 = g 2 ( xi +1 , yi ) = 4 -0,13932201 0,492006252 0,031803836 -0,000479473 0,07219353 0,113670171
 2
5
( x0 , y0 ) = ( 2, 2 )
-0,155223928 0,492927839 0,007985054 7,7332E-05 0,015928601 0,02382529
6 -0,159216455 0,493055928 0,001952382 1,06387E-05 0,003994581 0,00603304
 7 -0,160192646 0,493091097 0,000478983 2,91331E-06 0,000976824 0,001473419
 8 -0,160432138 0,493099557 0,000117418 7,00315E-07 0,000239641 0,000361572
9 -0,160490847 0,493101636 2,87859E-05 1,72137E-07 5,87458E-05 8,86337E-05
10 -0,16050524 0,493102146 7,0569E-06 4,21754E-08 1,4402E-05 2,17294E-05

Excel

Phương pháp vòng lặp Gauss-Seidel có tốc độ hội tụ nhanh hơn


phương pháp vòng lặp điểm cố định đơn giản
Hệ phương trình đại số phi tuyến 63

 f1 ( x, y ) = 0
 x0 = ( x0 , y0 ) (22)
 f 2 ( x, y ) = 0
Khai triển dãy Taylor bậc 1 cho hàm 2 biến. Với i là số vòng lặp:
 ∂f1 ( x, y ) ∂f1 ( x, y )
 f1 ( xi +1 , yi +1 ) = f1 ( xi , yi ) + ( xi +1 − xi ) + ( yi +1 − yi )
 ∂x ( xi , yi )
∂y ( xi , yi )
≅0

 ∂f 2 ( x, y ) ∂f 2 ( x, y )
 f 2 ( xi +1 , yi +1 ) = f 2 ( xi , yi ) + ( xi +1 − xi ) ∂x + ( yi +1 − yi )
∂y
 ≅0 ( xi , yi ) ( xi , yi )

 ∂f1 ( x, y ) ∂f1 ( x, y ) ∂f1 ( x, y ) ∂f1 ( x, y )


 ⋅ xi +1 + ⋅ yi +1 = − f1 ( xi , yi ) + ⋅ xi + ⋅ yi
 ∂x ( xi , yi )
∂y ( xi , yi )
∂x ( xi , yi )
∂y ( xi , yi )
⇔
 ∂f 2 ( x, y ) ∂f 2 ( x, y ) ∂f 2 ( x, y ) ∂f 2 ( x, y )
 ∂x ⋅ xi +1 + ⋅ yi +1 = − f 2 ( xi , yi ) + ⋅ xi + ⋅ yi
( xi , yi )
∂y ( xi , yi )
∂x ( xi , yi )
∂y ( xi , yi )

Hệ phương trình đại số phi tuyến 64

Giải hệ 2 phương trình tuyến tính với ẩn xk+1 và yk+1

 ∂f 2 ( x, y ) ∂f1 ( x, y ) f1 f1′y
 f1 ( xi , yi ) − f 2 ( xi , yi )
∂y ∂y f2 f 2′y
 ( xi , yi ) ( xi , yi )
 xi +1 = xi −
  ∂f1 ( x, y ) ∂f 2 ( x, y ) ∂f1 ( x, y ) ∂f 2 ( x, y ) 
 ⋅ − ⋅ 
  ∂ x ∂ y ∂ y ∂ x  ( xi , yi )

⇔
 ∂f1 ( x, y ) ∂f 2 ( x, y ) f1′x f1
 f 2 ( xi , yi ) − f1 ( xi , yi )
∂x ( )
∂x ( xi , yi )
f 2′x f2
y = y − xi , yi

 i +1  ∂f1 ( x, y ) ∂f 2 ( x, y ) ∂f1 ( x, y ) ∂f 2 ( x, y ) 
i

  ⋅ − ⋅ 
  ∂ x ∂y ∂ y ∂ x  ( xi , yi ) f1′x f1′y
det ( J ) =
f 2′x f 2′y
Hệ phương trình đại số phi tuyến 65

 xi +1 = xi + hi
 (23)
 yi +1 = yi + ki
Trong đó: ∂f1 ( x, y )
1 f1 f1′y f1′x =
hi = − ∂x
det ( J ) f 2 f 2′y (x ,y )
i i

f1′x ∂f1 ( x, y )
ki = −
1 f1 f1′x f1′y f1′y =
det ( J ) f 2′x det ( J ) = ∂y (x ,y )
f2 f 2′x f 2′y i i

 f1′x f1′y  ∂f 2 ( x, y )
J = f 2′x =
f ′ f ′  ∂x
 2x 2y  (x ,y )
i i

f1 = f1 ( xi , yi ) ∂f 2 ( x, y )
f 2′y =
f 2 = f 2 ( xi , yi ) ∂y (x ,y )
i i
Hệ phương trình đại số phi tuyến 66

Giải hệ phương trình sau với điểm khởi đầu. Thực hiện 10 vòng lặp. Tính
chuẩn hoá sai số ước lượng của véctơ nghiệm và của véctơ hàm số.
 f1 ( x, y ) = 2 x − sin 0.5 ( x − y ) = 0
 x0 = ( x0 , y0 ) = ( 2, 2 )
 f 2 ( x, y ) = 2 y − cos 0.5 ( x + y ) = 0

1) Bước 1: Tính đạo hàm riêng của các hàm số


∂f ( x, y ) cos 0.5 ( x − y ) cos 0.5 ( xi − yi )
f′ = 1 = 2− = 2−
∂x
1x
2 2
∂f 2 ( x, y ) sin 0.5 ( x + y ) sin 0.5 ( xi + yi )
f 2′x = = =
∂x 2 2
∂f1 ( x, y ) cos 0.5 ( x − y ) cos 0.5 ( xi − yi )
f1′y = = =
∂y 2 2
∂f 2 ( x, y ) sin 0.5 ( x + y ) sin 0.5 ( xi + yi )
f 2′y = = 2+ = 2+
∂y 2 2
2) Bước 2: Lập bảng tính toán theo các công thức 67

f1 = 2 xi − sin 0.5 ( xi − yi ) f1′x f1′y


det ( J ) =
f 2 = 2 yi − cos 0.5 ( xi + yi ) f 2′x f 2′y
∆xi = ( xi − xi −1 ) + ( yi − yi −1 )
2 2

f1′x = 2 − 0.5cos 0.5 ( xi − yi ) 1 f1 f1′y  xi +1 = xi + hi


hi = − 
f 2′x = 0.5sin 0.5 ( xi + yi ) det ( J ) f 2 f 2′y 2
 yi +1 = yi + ki ∑  f k ( xi , yi ) − f k ( xi−1 , yi−1 )
2
∆fi =
f1′y = 0.5cos 0.5 ( xi − yi ) 1 f1′x f1 k =1
ki = −
f 2′y = 2 + 0.5sin 0.5 ( xi + yi ) det ( J ) f 2′x f2

i xi yi f1 f2 f' 1x f' 1y f' 2x f' 2y det(J) hi ki ||Δxi || ||f (xi )||


1 2 2 4 4,4161468 1,5 0,5 0,4546487 2,4546487 3,4546487 -2,20298 -1,391061 - -
2 -0,2029798 0,6089395 -0,011059 0,2384088 1,5406381 0,4593619 0,1007944 2,1007944 3,1902628 0,041611 -0,115481 2,605411575 5,791553353
3 -0,1613692 0,493458 -0,001143 0,0006697 1,5265614 0,4734386 0,0826412 2,0826412 3,1401541 0,000859 -0,000356 0,1227494 0,23794572
4 -0,16051 0,4931023 -5,93E-08 3,127E-08 1,5264638 0,4735362 0,0827654 2,0827654 3,1400735 4,41E-08 -1,68E-08 0,000929986 0,001325003
5 -0,1605099 0,4931023 0 0 1,5264638 0,4735362 0,0827654 2,0827654 3,1400735 0 0 4,71321E-08 6,70414E-08
6 -0,1605099 0,4931023 0 0 1,5264638 0,4735362 0,0827654 2,0827654 3,1400735 0 0 0 0
7 -0,1605099 0,4931023 0 0 1,5264638 0,4735362 0,0827654 2,0827654 3,1400735 0 0 0 0
8 -0,1605099 0,4931023 0 0 1,5264638 0,4735362 0,0827654 2,0827654 3,1400735 0 0 0 0
9 -0,1605099 0,4931023 0 0 1,5264638 0,4735362 0,0827654 2,0827654 3,1400735 0 0 0 0
10 -0,1605099 0,4931023 0 0 1,5264638 0,4735362 0,0827654 2,0827654 3,1400735 0 0 0 0

Excel
Hệ phương trình đại số phi tuyến 68

f ( xi )
Với phương trình: xi +1 = xi −
f ′ ( xi )

Với hệ phương trình: xi +1 = xi − J −1 if ( xi ) (24)


n×1 n×1 n×n
n×1

Trong đó:
 ∂f1 ∂f1 ∂f1 
 ∂x …
∂x2 ∂xn 
 x1,i +1   x1,i   1   f1′x1 f1′x2 … f1′xn   f1 ( xi ) 
     ∂f 2 ∂f 2 ∂f 2     
 x2,i +1   x2,i   …   f 2′x1 f 2′x2 … f 2′xn   f 2 ( xi ) 
xi +1 =   ; xi =   ; nJ×n =  ∂x1 ∂x2 ∂xn = ; f ( xi ) =  
n×1
⋮  n×1 ⋮ 
 ⋮ ⋮ ⋱ ⋮  n×1 ⋮ 
 ⋮ ⋮ ⋱ ⋮   
 xn ,i +1   xn ,i     f nx′ 1 f nx′ 2 ⋯ f nx′ n   f ( x )
     n i 
 ∂f n ∂f n

∂f n  ( x1,i , x2,i ,…, xn ,i )
 ∂x1 ∂x2 ∂xn  x , x ,…, x
( 1,i 2,i n ,i )
Hệ phương trình đại số phi tuyến 69

 f1 ( x, y, z ) = 0

 f 2 ( x, y , z ) = 0 x 0 = ( x0 , y0 , z0 ) xi +1 = xi − J −1 if ( xi )
3×1 3×1 3×3
3×1

 f 3 ( x, y , z ) = 0
 xi +1   xi   f1′x f1′y f1′z   f1 ( xi , yi , zi ) 
       
Trong đó: xi +1 =  yi +1  ; xi =  yi  ; J =  f 2′x
3×3
f 2′y f 2′z  ; f ( xi ) =  f 2 ( xi , yi , zi ) 
3×1  z  3×1  z   f3′x f 3′y f3′z 
3×1  
 i +1   i  ( xi , yi , zi )
f ( x
 3 i i i , y , z )
      
det  J
  2×2 

1 x  det 

J 2 x
2×2 
 det 

J 3 x
2× 2 

  f1 
(25)
 xi +1   xi   xi +1 = xi + hi
    1          
 yi +1  =  yi  −  3 y   f2  ⇔  yi +1 = yi + ki
( )
det
  1y J det J
 2y  det J
 z   z  det J   2×2   2×2   2×2     z = z + l
 i +1   i  3×3
     f3   i +1 i i
   
 det  J1z  det  J 2 z  det  J 3 z  
  2×2   2×2   2×2  
3
 
3
  3
 
∑ f k det  J kx  ∑
 2×2  ; k = − k =1
f k det J
 ky  ∑
 2×2  ; l = − k =1
f k det  J kz 
 2×2 
hi = − k =1

( ) ( ) ( )
i i
det J det J det J
3×3 3×3 3×3
 f 2′y f3′y   f 2′z f3′z   f 2′x f3′x  70
J1 x =  J1 y =  J1 z = 
2×2  f 2′z

f3′z  2×2  f 2′x 
f3′x  2×2  f 2′y f3′y 
 f3′y f1′y   f3′z f1′z   f3′x f1′x 
J2x =  J2 y =  J2z = 
2×2  f3′z

f1′z  2×2  f3′x 
f1′x  2×2  f3′y f1′y 

2×2
 f1′y
J3x = 
 f1′z
f 2′y 

 f1′z
J3 y = 
f 2′z  2×2  f1′x
f 2′z 

 f1′x
J3z = 
f 2′x  2×2  f1′y
f 2′x 
f 2′y 
( )
det J
3×3

∂f k ( x, y, z )
f kx′ = ; k = 1, 2,3
∂x ( x , y ,z )
i i i

∂f k ( x, y, z )
f ky′ = ; k = 1, 2,3
∂y ( x , y ,z )
i i i

∂f k ( x, y, z )
f kz′ = ; k = 1, 2,3
∂z ( x , y ,z )
i i i
Hệ phương trình đại số phi tuyến 71

Giải hệ phương trình sau với điểm khởi đầu. Thực hiện 10 vòng lặp cho mỗi
phương pháp. Tính chuẩn hoá sai số ước lượng của véctơ nghiệm và của véctơ
hàm số tại mỗi vòng lặp.
 f1 ( x, y, z ) = −4 x 2 + 2 y 2 + 3z 2 + xy + 9 xz + 8 z − 4 = 0

 2
f ( x , y , z ) = − 6 x 2
− 4 y 2
+ 4 z 2
+ 6 xy − 4 yz − z + 39 = 0 x0 = ( x0 , y0 , z0 ) = ( 0,3, 2 )

 3
f ( x , y , z ) = −3 y 2
+ 4 xy − 8 yz + 9 y − 2 z + 20 = 0

1) Vẽ đồ thị để xem trực quan nghiệm là giao điểm của 3 bề mặt:


f1 = @(x,y,z) -4*x.^2 + 2*y.^2 + 3*z.^2 + x.*y + 9*x.*z + 8*z - 4;
f2 = @(x,y,z) -6*x.^2 - 4*y.^2 + 4*z.^2 + 6*x.*y - 4*y.*z - z + 39;
f3 = @(x,y,z) - 3*y.^2 + 4*x.*y - 8*y.*z +9*y - 2*z + 20;
MATLAB interval = [-5 5 -5 5 -5 5];
fimplicit3(f1,interval,'FaceColor','m','EdgeColor','k','FaceAlpha',.9), hold on
fimplicit3(f2,interval,'FaceColor','g','EdgeColor','k','FaceAlpha',.9), hold on
fimplicit3(f3,interval,'FaceColor','y','EdgeColor','k','FaceAlpha',.9), hold on
scatter3(0,3,2,200,'filled','MarkerEdgeColor','k','MarkerFaceColor',[0 .75 .75])
f1 ( x, y, z ) = −4 x 2 + 2 y 2 + 3 z 2 + xy + 9 xz + 8 z − 4 = 0
Hệ phương trình đại số phi tuyến 72

Điểm khởi đầu


( 0,3, 2 )
f 2 ( x, y, z ) = −6 x 2 − 4 y 2 + 4 z 2 + 6 xy − 4 yz − z + 39 = 0

-1

-5
-2

-3

-4

0
-5
5
4
3
2
1
0
-1
-2
-3
-4 5

f 3 ( x, y, z ) = −3 y + 4 xy − 8 yz + 9 y − 2 z + 20 = 0
-5

-1

-2

-3

-4 -5

-5
5
4 0
3
2
1
0
-1
-2
-3
-4 5
-5
73
1) Phương pháp vòng lặp điểm cố định đơn giản: Biến đổi hệ PT về dạng:

1 9 1
8 y + z + 33 y 2
+ 129 z 2
+ 18 yz + 128 z − 64
f1 ( x, y, z ) = 0 ⇔ x = g1 ( x, y, z ) = 
8 8
 1 y + 9 z − 1 33 y 2 + 129 z 2 + 18 yz + 128 z − 64
 8 8 8
3 1 1
4 x − z + −15 x 2
+ 20 z 2
− 12 xz − 4 z + 156
f 2 ( x, y , z ) = 0 ⇔ y = g 2 ( x, y , z ) = 
2 4
 3 x − 1 z − 1 −15 x 2 + 20 z 2 − 12 xz − 4 z + 156
 4 2 4
1 −3 y 2 + 4 xy + 9 y + 20
f 3 ( x, y , z ) = 0 ⇔ z = g 3 ( x, y , z ) =
2 4 y +1

Kiểm tra tính hội tụ của các phương án hàm gi(x,y,z)


2) Bước 2: Tính các đạo hàm riêng: 74
 1 9 1
a) Phương án 1:  x = g ( x , y , z ) = y + 1 z + 33 y 2 + 129 z 2 + 18 yz + 128 z − 64
 8 8 8
 3 1 1
 y = g 2 ( x, y , z ) = x − z + −15 x 2 + 20 z 2 − 12 xz − 4 z + 156
 4 2 4
 1 −3 y 2 + 4 xy + 9 y + 20
 z = g 3 ( x, y , z ) = ⋅
 2 4 y +1

 ∂g1 ∂g1 ∂g1 


 ∂x ∂y ∂z 
0

 ∂g 2 ∂g 2 ∂g 2 
 = 0
 ∂x ∂y ∂z 
 ∂g3 ∂g3 ∂g3  0
 
 ∂x ∂y ∂z 

 ∂g1 ∂g1 ∂g1 


 + +  = 2.996016517 >1
 ∂x ∂y ∂z  x = 0,3,2
0 ( )

 ∂g 2 ∂g 2 ∂g 2 
 + +  = 0.6804730160 <1 Không đạt tiêu chuẩn hội tụ
 ∂x ∂y ∂z  x = 0,3,2
0 ( )

 ∂g3 ∂g3 ∂g3 


 + +  = 1.044378698 >1
 ∂x ∂y ∂z  x0 =( 0,3,2)
2) Bước 2: Tính các đạo hàm riêng: 75
 1 9 1
a) Phương án 2:  x = g ( x , y , z ) = y +1 z + 33 y 2 + 129 z 2 + 18 yz + 128 z − 64
 8 8 8
 3 1 1
 y = g 2 ( x, y , z ) = x − z − −15 x 2 + 20 z 2 − 12 xz − 4 z + 156
 4 2 4
 1 −3 y 2 + 4 xy + 9 y + 20
 z = g 3 ( x, y , z ) = ⋅
 2 4 y +1

 ∂g1 ∂g1 ∂g1 


 ∂x ∂y ∂z  0

 ∂g 2 ∂g 2 ∂g 2 
 = 0
 ∂x ∂y ∂z 
 ∂g3 ∂g3 ∂g3 
  0
 ∂x ∂y ∂z 

 ∂g1 ∂g1 ∂g1 


 + +  = 2.996016517 >1
 ∂x ∂y ∂z  x = 0,3,2
0 ( )

 ∂g 2 ∂g 2 ∂g 2 
 + +  = 2.077832724 >1 Không đạt tiêu chuẩn hội tụ
 ∂x ∂y ∂z  x = 0,3,2
0 ( )

 ∂g3 ∂g3 ∂g3 


 + +  = 1.044378698 >1
 ∂x ∂y ∂z  x0 =( 0,3,2)
2) Bước 2: Tính các đạo hàm riêng: 76
 1 9 1
a) Phương án 3:  x = g ( x , y , z ) = y + 1 z − 33 y 2 + 129 z 2 + 18 yz + 128 z − 64
 8 8 8
 3 1 1
 y = g 2 ( x , y , z ) = x − z + −15 x 2 + 20 z 2 − 12 xz − 4 z + 156
 4 2 4
 1 −3 y 2 + 4 xy + 9 y + 20
 z = g 3 ( x, y , z ) = ⋅
 2 4 y +1

 ∂g1 ∂g1 ∂g1 


 ∂x ∂y ∂z  0

 ∂g 2 ∂g 2 ∂g 2 
 = 0
 ∂x ∂y ∂z 
 ∂g3 ∂g3 ∂g3  0
 
 ∂x ∂y ∂z 

 ∂g1 ∂g1 ∂g1 


 + +  = 0.4960165166 <1
 ∂x ∂y ∂z  x = 0,3,2
0 ( )

 ∂g 2 ∂g 2 ∂g 2 
+ + = 0.6804730160 < 1
Gần đạt đủ tiêu chuẩn. Có
 
 ∂x ∂y ∂z  x = 0,3,2
0 ( ) thể kiểm tra
 ∂g3 ∂g3 ∂g3 
 + +  = 1.044378698 >1
 ∂x ∂y ∂z  x0 =( 0,3,2)
2) Bước 2: Tính các đạo hàm riêng: 77
 1 9 1
a) Phương án 4:  x = g ( x , y , z ) = y + 1 z − 33 y 2 + 129 z 2 + 18 yz + 128 z − 64
8 8 8
 3 1 1
 y = g 2 ( x, y , z ) = x − z − −15 x 2 + 20 z 2 − 12 xz − 4 z + 156
 4 2 4
 1 −3 y + 4 xy + 9 y + 20
2

 z = g ( x , y , z ) = ⋅
4 y +1
3
 2

 ∂g1 ∂g1 ∂g1 


 ∂x ∂y ∂z  0

 ∂g 2 ∂g 2 ∂g 2 
 = 0
 ∂x ∂y ∂z 
 ∂g3 ∂g3 ∂g3 
  0
 ∂x ∂y ∂z 

 ∂g1 ∂g1 ∂g1 


 + +  = 0.4960165166 <1
 ∂x ∂y ∂z  x = 0,3,2
0 ( )

 ∂g 2 ∂g 2 ∂g 2 
 + +  = 2.077832724 >1 Không đạt tiêu chuẩn hội tụ
 ∂x ∂y ∂z  x = 0,3,2
0 ( )

 ∂g3 ∂g3 ∂g3 


 + +  = 1.044378698 >1
 ∂x ∂y ∂z  x0 =( 0,3,2)
78

3) Bước 3: Các vòng lặp: 1 9
 xi +1 = g1 ( xi , yi , zi ) = yi + zi −
8 8
1
8
33 yi2 + 129 zi2 + 18 yi zi + 128 zi − 64

 3 1 1
 yi +1 = g 2 ( xi , yi , zi ) = xi − zi + −15 xi2 + 20 zi2 − 12 xi zi − 4 zi + 156 ; x 0 = ( x0 , y0 , z0 ) = ( 0,3, 2 )
 4 2 4
 1 −3 yi2 + 4 xi yi + 9 yi + 20
Excel
 zi +1 = g3 ( xi , yi , zi ) = ⋅
 2 4 yi + 1

i xi yi zi f1 f2 f3 ||Δxi || ||f (xi )||


1 0 3 2 42 -7 -32 - -
2 -1,545206829 2,774917218 0,769230769 -5,206738148 -38,79414703 -13,89240106 1,988245283 59,72628443
3 -1,298105207 1,448195994 0,195148899 -9,030149753 8,047714166 16,57109736 1,466566879 56,00717073
4
5
-0,391865867
-1,061233869
1,820048762
2,487286426
1,414906323
1,424474078
13,63275342
5,106596228
16,84118622
-15,82150321
0,158445765
-17,92612231
1,564401609
0,945172557
29,33099833
38,29619093
Các sai
6
7
-1,268592678
-0,879343461
1,957127712
1,766397081
0,605865814
0,917023918
-6,228635411
0,195646945
-4,754746507
8,527671596
5,494125396
5,531344077
0,997088475
0,533584569
28,27487547
14,75450506
số có
8
9
-0,89078472
-1,106623681
2,114901296
2,095637153
1,259921662
0,955642535
4,628413958
-1,567087117
-0,524496113
-5,142318258
-5,756720814
-1,523402742
0,48904494
0,373555018
15,13312832
8,810760286 giảm
10
11
-1,025103612
-0,92837376
1,901218639
1,98367339
0,874459756
1,073303644
-1,701020171
1,6553474
2,076872652
2,057634247
3,422053424
-0,497459457
0,225908663
0,235996487
8,75169653
5,160247534 dần.
12 -1,013650383 2,062664877 1,045465003 0,413490594 -2,027446901 -1,905540999 0,119527182 4,495863648
13
14
-1,03467694
-0,97960116
1,986037655
1,970273724
0,94247013
0,996275303
-1,020299818
0,159724817
-0,406759684
1,256123081
0,962483141
0,67016716
0,130083785
0,078592873
3,592762791
2,059875206
Có xu
15
16
-0,988093759
-1,015817784
2,018923897
2,009788613
1,034005288
0,989599606
0,536199764
-0,28317847
-0,239156559
-0,62570394
-0,806024905
-0,08625672
0,062149138
0,053140752
2,134651634
1,15709369
hướng
17
18
-1,000900352
-0,990725607
1,985755875
1,999787198
0,984828324
1,01151186
-0,191445086
0,233295667
0,36322728
0,216618201
0,477262989
-0,129814746
0,028685665
0,031818463
1,141908243
0,755276311
hội tụ.
( −1, 2,1) 19
20
-1,002954053
-1,004116013
2,008111625
1,997111252
1,004299248
0,991940166
0,02216448
-0,138270384
-0,28662365
-0,015514001
-0,223265491
0,155316393
0,016457605
0,016586297
0,553680215
0,492507899
79

3) Bước 3: Các vòng lặp:  1


 xi +1 = g1 ( xi , yi , zi ) = yi + zi −
9 1
33 yi2 + 129 zi2 + 18 yi zi + 128 zi − 64
 8 8 8
 3 1 1
 yi +1 = g 2 ( xi +1 , yi , zi ) = xi +1 − zi + −15 xi2+1 + 20 zi2 − 12 xi +1 zi − 4 zi + 156 ; x 0 = ( x0 , y0 , z0 ) = ( 0,3, 2 )
 4 2 4
Excel  1 −3 yi2+1 + 4 xi +1 yi +1 + 9 yi +1 + 20
 zi +1 = g 3 ( xi +1 , yi +1 , zi ) = ⋅
 2 4 yi +1 + 1

i xi yi zi f1 f2 f3 ||Δxi || ||f (xi )|| Các sai


1
2
0 3 2 42 -7 -32 - -
số có
-1,545206829 1,626510986 1,109026373 -13,63392315 -4,39255482 0 2,251215277 64,23341946
3 -0,908816632 2,079257883 0,975886164 2,135208389 0,130128762 0 0,792274291 16,4048827 giảm
4
5
-1,023661283 1,979015519 1,007073862 -0,563304905 -0,030695618 0 0,15559723 2,703301404
dần.
-0,994190616 2,005087648 0,99834823 0,137601133 0,008713959 0 0,040304004 0,702013098
6 -1,00144318 1,998731155 1,000416331 -0,034228853 -0,002067824 0 0,00986315 0,172167915 Có xu
7
8
-0,999642308
-1,000088702
2,000314152
1,999922074
0,999897204
1,000025516
0,008480729
-0,002103264
0,000519129
-0,000128313
0
0
0,002453266
0,000607829
0,042787857
0,010603777
hướng
9
10
-0,999978006
-1,000005454
2,000019321
1,999995209
0,999993675
1,000001569
0,000521497
-0,000129311
3,18418E-05
-7,89384E-06
0
0
0,000150746
3,73768E-05
0,002629642
0,00065202
hội tụ.

Phương pháp vòng lặp Gauss-Seidel có tốc độ hội tụ nhanh hơn


( −1, 2,1) phương pháp vòng lặp điểm cố định đơn giản
80

1) Bước 1: Tính đạo hàm riêng của các hàm số và ma trận Jacobian:
 ∂f1 ( x, y, z ) ∂f1 ( x, y, z ) ∂f1 ( x, y, z ) 
f
 1x ′ = = −8 x + y + 9 z f1′y = = x + 4y f1′z = = 9x + 6z + 8 
 xi +1 = xi + hi  ∂x ∂y ∂z 
  ∂f ( x, y, z ) ∂f 2 ( x, y, z ) ∂f 2 ( x, y, z ) 
 yi +1 = yi + ki J =  f 2′x = 2 = −12 x + 6 y f 2′y = = 6x − 8 y − 4z f 2′z = = −4 y + 8 z − 1
z = z + l 3×3  ∂x ∂y ∂z 
 i +1 i i
 
∂f ( x, y, z ) ∂f3 ( x, y, z ) ∂f3 ( x, y, z )
 f3′x = 3 = 4y f3′y = = 4x − 6 y − 8z + 9 f3′z = = −8 y − 2 
 ∂ x ∂y ∂z 

      
  2×12x 
det J det  2x 
J det  3x 
J
 xi +1   xi    2×2   2×2  
 f1   f 2′y f3′y   f 2′z f3′z   f 2′x f3′x 
J1 x =  J1 y =  J1 z = 
   
 yi +1  =  yi  −
1       
  
 f 2′z

f3 z  2×2  f 2′x
′ 
f3 x  2×2  f 2′y
′ f3′y 
( )
det  J1 y  det  J 2 y  det  J 3 y    f 2  2×2
 z   z  det J   2×2   2×2   2×2    
 i +1   i  3×3
      
 f3   f3′y f1′y   f3′z f1′z   f3′x f1′x 
J2x =  J2y =  J2z = 
 det  J1z  det  J 2 z  det  J 3 z  
  2×2   2×2   2×2   2×2  f3′z

f1z  2×2  f3′x
′ ′ 
f1x  2×2  f3′y f1′y 
   f1′y f 2′y   f1′z f 2′z   f1′x f 2′x 
3
  f k det  J kz 
3 3

∑ f k det  J kx  ∑ f k det  J ky  ∑ J3x =  J3 y =  J3z = 


hi = − k =1  2×2  ; k = − k =1  2×2  ; l = − k =1  2×2 
 f1′z

f 2′z  2×2  f1′x 
f 2′x  2×2  f1′y f 2′y 
( ) ( ) ( )
i i 2×2
det J det J det J
3×3 3×3 3×3
SVL 1 2 3 4 5
xi 0 -0,747760252 -0,992613723 -0,999984295 -1
81
Excel
yi 3 2,277981073 2,018938413 2,000045382 2
zi 2 1,118359621 0,998386975 0,999984296 1
f1 42 7,611108097 0,265382583 0,00053754 2,36532E-09
f2 -7 -1,637820498 -0,314305155 -0,000787305 -1,60432E-09
f3 -32 -4,496834097 -0,19622359 -0,000272404 2,37379E-09
f' 1x 21 18,32529968 18,94533097 18,9997784 19
f' 1y 12 8,364164038 7,083139928 7,000197231 7,000000001
f' 1z 20 7,980315457 5,056798339 5,000047116 5
f' 2x 18 22,64100946 24,02499516 24,00008383 24
f' 2y -32 -27,18384858 -26,10073754 -26,00020601 -26
f' 2z 3 -1,165047319 -1,088657854 -1,000307161 -1,000000003
f' 3x 12 9,11192429 8,075753651 8,000181526 8,000000001
f' 3y -25 -16,60580442 -15,07118117 -15,00008384 -15
f' 3z -26 -20,22384858 -18,1515073 -18,00036305 -18
det (J 1x ) 907 530,4154896 457,3603683 453,0084563 453
det (J 1y ) 504 447,2725241 427,2981424 424,0075834 424
det (J 1z ) -66 -128,2750048 -151,301928 -151,9969018 -151,9999999
det (J 2x ) -188 36,63602934 52,35774224 51,00496568 51,00000004
det (J 2y ) -786 -443,3241163 -384,7237711 -382,0041938 -382
det (J 2z ) 669 380,5199719 342,7302085 341,0011175 340,9999999
det (J 3x ) 676 207,1910401 124,2750503 122,9999076 123
det (J 3y ) 297 202,0322391 142,114539 139,0071644 139
det (J 3z ) -888 -687,525289 -664,6595137 -662,003473 -661,9999999
det (J ) 23775 12437,40856 10926,35275 10815,20533 10815
hi -0,747760252 -0,244853471 -0,007370572 -1,57046E-05 -1,18506E-10
ki -0,722018927 -0,25904266 -0,018893031 -4,53814E-05 -1,79908E-10
li -0,881640379 -0,119972647 0,001597321 1,57042E-05 2,29131E-10 Sau 4 vòng lặp thì
||Δxi ||
đã hội tụ
- 1,36299174 0,376098069 0,02034265 5,05245E-05
||f(xi)|| - 44,35958735 8,614326841 0,454789189 0,000991463
82
Điểm khởi đầu
( 0,3, 2 )

f1 = @(x,y,z) -4*x.^2 + 2*y.^2 + 3*z.^2 + x.*y +


9*x.*z + 8*z - 4;
f2 = @(x,y,z) -6*x.^2 - 4*y.^2 + 4*z.^2 + 6*x.*y -
4*y.*z - z + 39;
f3 = @(x,y,z) - 3*y.^2 + 4*x.*y - 8*y.*z +9*y - 2*z
+ 20;
interval = [-5 5 -5 5 -5 5];
fimplicit3(f1,interval,'FaceColor','m','EdgeColor','
k','FaceAlpha',.9), hold on
fimplicit3(f2,interval,'FaceColor','g','EdgeColor','
k','FaceAlpha',.9), hold on
Nghiệm
( −1, 2,1)
fimplicit3(f3,interval,'FaceColor','y','EdgeColor','
k','FaceAlpha',.9), hold on
scatter3(0,3,2,200,'filled','MarkerEdgeColor','k','M
arkerFaceColor',[0 .75 .75]), hold on
scatter3(-
1,2,1,400,'filled','MarkerEdgeColor','k','MarkerFace
Color','b')
Hàm MATLAB giải phương trình đại số phi tuyến 83

a) Với điểm khởi đầu là x0 = 15


Giải phương trình sau: ( )
−0.8 x
f x = e 0.2 x
− e −2
b) Trong khoảng tìm kiếm là [3;4]

a) Với điểm khởi đầu x0 f = @(x) exp(0.2*x) - exp(-0.8*x) - 2


x0 = 15;
sol = fzero(f,x0)

f = @(x) exp(0.2*x) - exp(-0.8*x) - 2


b) Với khoảng tìm kiếm: x0 = [3 4];
sol = fzero(f,x0)

sol =

3.603732449186166
Hàm MATLAB giải phương trình đa thức bậc cao 84

Giải phương trình sau: f ( x ) = p1 x n + p2 x n −1 + … + pn x + pn +1 = 0

p = [p1 p2 p3 ... p_n p_n+1];


r = roots(p)

Giải phương trình sau: f ( x ) = −3 x 4 + 5 x 3 − 2 x 2 + 3 x − 1 = 0


p = [-3 5 -2 3 -1];
r = roots(p)

f(x)
Hàm MATLAB giải Hệ phương trình đại số phi tuyến 85

 f1 ( x, y ) = 2 x − sin 0.5 ( x − y ) = 0
Giải hệ phương trình sau:  x0 = ( x0 , y0 ) = ( 2, 2 )
 f 2 ( x, y ) = 2 y − cos 0.5 ( x + y ) = 0

1) Xây dựng file hàm số: NonLinSys.m

function f = NonLinSys(x)
f(1) = 2*x(1) - sin(0.5*(x(1) - x(2)));
f(2) = 2*x(2) - cos(0.5*(x(1) + x(2)));
end
Hàm MATLAB giải Hệ phương trình đại số phi tuyến 86

2) Giải: fun = @NonLinSys;


x0 = [2,2];
x = fsolve(fun,x0)

You might also like