You are on page 1of 243

FETEL-HCMUS 2023 1

Phần 2

Phương pháp tính


FETEL-HCMUS 2023 2

Tài liệu tham khảo


1. Giáo trình Phương pháp tính và MATLAB, Lê Trọng Vinh, Trần Minh Toàn, NXB
Bách Khoa – Hà Nội, 2013

2. Giáo trình Phương pháp tính, Tạ Văn Đĩnh, NXB Giáo dục, 2011

3. Giáo trình Phương pháp tính trong kỹ thuật, Đặng Quốc Lương, NXB Xây dựng,
2001

4. Bài giảng Phương pháp số, Phan Thị Hà, Phan Đăng Cầu, HV Công nghệ BC Viễn
Thông, 2006

5. Steven C. Chapra, Raymond P. Canale, Numerical methods for engineers, McGraw-


Hill, 2010
FETEL-HCMUS 2023 3

Chương 7

Sai số
FETEL-HCMUS 2023 4

Đặt vấn đề: PP Tính để làm gì?


Vận tốc của tên lửa tại t=7 s?

Time (s) 5 8 12
Vel (m/s) 106 177 600
FETEL-HCMUS 2023 5

Đặt vấn đề: PP Tính để làm gì?

Phương pháp tính: môn khoa học nghiên cứu cách giải gần đúng
• Giải số các phương trình,
• Các bài toán xấp xỉ hàm số và các bài toán tối ưu.
VD: tính diện tích một mảnh đất; đo chiều cao của các vật có độ cao lớn; tìm quỹ đạo
của sao chổi, đường đi của tàu buôn trên biển,...
Các nhiệm vụ chính :
• Giải gần đúng các loại phương trình đại số hay siêu việt; giải hệ phương trình; tìm
trị riêng, vector riêng của ma trận; giải gần đúng phương trình vi phân, ...
• Xấp xỉ hàm số: Thay hàm có dạng phức tạp hay hàm cho dưới dạng bảng số bởi
hàm có dạng đơn giản hơn để dễ tính toán
FETEL-HCMUS 2023 6

Các chủ đề PP Tính?

• Nghiệm phương trình (Roots of Equations)

• Hệ phương trình đại số tuyến tính


(Systems of Linear Algebraic Equations)
FETEL-HCMUS 2023 7

Các chủ đề PP Tính?

• Cực trị, tối ưu (Optimization)

• Nội suy và xấp xỉ hàm

Xấp xỉ hàm Phép nội suy


FETEL-HCMUS 2023 8

Các chủ đề PP Tính?

• Tích phân (Integration)

• Vi phân
FETEL-HCMUS 2023 9

Các chủ đề PP Tính?

• Vi phân từng phần


FETEL-HCMUS 2023 10

PP Tính/PP số/Numerical Methods


PP Tính:
Các thuật toán được sử dụng để có được lời giải
số cho một bài toán toán học.
Tại sao cần có phương pháp tính?
1. Do không không tồn tại lời giải giải tích
2. Hay lời giải như vậy khó đạt được hay không thực tế
FETEL-HCMUS 2023 11

Cần gì ở lời giải số

Có tính thực tế:


Có thể tính trong một khoảng thời gian có
thể chấp nhận được.
Cần độ chính xác:
✓ Xấp xỉ tốt với giá trị đúng, chấp nhận sai
số nhất định ???? es ???
✓ Thông tin về sai số (biên, bậc sai số,… ).
FETEL-HCMUS 2023 12

Sơ đồ khối chương trình


FETEL-HCMUS 2023 13

Sơ đồ khối chương trình

Cấu trúc tuần tự Cấu trúc điều kiện (If/Then)


FETEL-HCMUS 2023 14

Sơ đồ khối chương trình

Cấu trúc điều kiện (If/Then/Else)


FETEL-HCMUS 2023 15

Sơ đồ khối chương trình

Cấu trúc nhiều điều kiện (If/Then/Else)


FETEL-HCMUS 2023 16

Sơ đồ khối chương trình

Cấu trúc Case


FETEL-HCMUS 2023 17

Sơ đồ khối chương trình

Cấu trúc lặp với điều kiện Cấu trúc lặp với số lần
FETEL-HCMUS 2023 18

Câu hỏi chủ đề


Hằng số eps trong Matlab= 2.220446e-16 có từ
đâu?
FETEL-HCMUS 2023 19

Biểu diễn số
Hằng số eps trong Matlab eps= 2.220446e-16 có từ đâu?
 Số trong hệ thập phân:

312.45 = 310 2 +1101 + 210 0 + 410 −1 + 510−2


 Hệ thập phân: Base = 10 , Digits (0,1,…,9)

 Dạng biểu diễn:


 3 1 2 . 4 5
sign integral fraction
part part
1
FETEL-HCMUS 2023 20

Biểu diễn số dấu chấm động


 Biểu diễn dưới dạng dấu chấm động: hệ 10

 d. f1 f2 f3 f4  10n
sign mantissa exponent

d  0,  n : signed exponent

 Ưu điểm: có khả năng biểu diễn số rất lớn hay rất bé

2
FETEL-HCMUS 2023 21

Hệ nhị phân

 (1 23 + 0 22 +1 21 +1 20 ) 


(1011.0011)2 =  
 + (0 2 −1 + 0 2 −2 +1 2 −3 +1 2 −4 ) 
 10
= 11.1875
FETEL-HCMUS 2023 22

Chuyển đổi thập phân sang nhị phân


??= (11.1875)10
(11)10 = (a3 a2 a1a0 ) 2 Quotient Remainder
11/2 5 1 = a0
= (1011) 2 5/2 2 1 = a1
2/2 1 0 = a2
1/2 0 1 = a3
(0.1875)10 = (a−1a−2a−3a−4 )2
= (0.0011)2
Number after Number before
Number decimal decimal
0.1875 2 0.375 0.375 0 = a−1
0.375 2 0.75 0.75 0 = a−2
0.75 2 1.5 0.5 1 = a−3
0.5 2 1.0 0.0 1 = a−4

(11.1875)10 = (1011.0011)2
FETEL-HCMUS 2023 23

Số nhị phân dấu chấm động

 Hệ nhị phân: Base = 2, Digits {0,1}

 1. f1 f 2 f3 f 4  2 n
sign mantissa signed exponent

(1.101)2 = (1+1 2−1 + 0  2 −2 +1 2−3)10 = (1.625)10


 Lưu ý: một biểu diễn hữu hạn trong hệ này có thể là
biểu diễn vô hạn trong hệ khác. VD:
(1.1)10 = (1.000110011001100...) 2
12
FETEL-HCMUS 2023 24

IEEE 754 Floating-Point Standard

 Single Precision (32-bit representation)


1-bit Sign + 8-bit Exponent + 23-bit Fraction
S Exponent8 Fraction23

 Double Precision (64-bit representation)


1-bit Sign + 11-bit Exponent + 52-bit Fraction
S Exponent11 Fraction52
(continued)

Single Precision: độ chính xác đơn


Exponent: số mũ
Fraction: Phân số
FETEL-HCMUS 2023 25

IEEE-754 Format Single Precision

32 bits for single precision


0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Sign Biased Mantissa (m): chấm động


(s) Exponent (e’)

Value = (-1) s x (1.m) 2 x 2e’-127


FETEL-HCMUS 2023 26

Example#1
1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Sign 8 bits Biased 23 bits Mantissa (m)


(s) Exponent (e’)

Value = (−1)  (1.m)2 2 e'−127


s

(10100010) −127
= (−1)  (1.10100000)2 
1 2
2
= (−1) (1.625) 2162−127
= (−1)(1.625) 235 = −5.58341010

Note: (1.101)2 = (1+1 2−1 + 0  2 −2 +1 2−3)10 = (1.625)10


FETEL-HCMUS 2023 27

Example#2
Biểu diễn -5.5834x1010 dưới dạng số chấm động 32 bit.

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Sign Biased Mantissa (m)


(s) Exponent (e’)

− 5.5834 10 = (−1)  (1.? ) 2


10 1 ?
FETEL-HCMUS 2023 28

Phần mũ của số 32 Bit IEEE-754


8 bits biểu diễn được: 0  e  255
Bias = 127; số mũ biểu diễn được trong phạm vi:
2k−1 − 1 (−127  e 128)

Thực tế: 1  e  254


e = 0 và e = 255 dành cho các số đặc biệt

Phạm vi thực tế của số mũ là: −126  e  127


FETEL-HCMUS 2023 29

Các số đặc biệt

e = 0 all zeros

e = 255 all ones

s e m Represents
0 all zeros all zeros 0
1 all zeros all zeros -0
0 all ones all zeros  inf
1 all ones all zeros −
0 or 1 all ones non-zero NaN
FETEL-HCMUS 2023 30

Số 32 bit IEEE-754
Số lớn nhất:

(1.1........1)2  2 127
= 3.4010 38

Số nhỏ nhất:
(1.00......0)2  2 −126
= 2.1810 −38

Sai biệt:
machine = 2-23 = 1.1910-7
Câu hỏi: với số 64 bit IEEE-754, kết quả như thế nào?

eps = 2-52 = 2.2204e-16


FETEL-HCMUS 2023 31

Accuracy and Precision


 Accuracy: sự gần/xa (sự lệch) của kết quả so
với giá trị đúng -> trueness. (độ chính xác)

 Precision: sự lệch giữa các kết quả ước lượng


random error. (độ chụm)

 Theo nghĩa thông thường: một kết quả khi nói


có độ chính xác cao đòi hỏi cả high precision và
high trueness.
FETEL-HCMUS 2023 32

Accuracy and Precision


21

3.141592653

 Low precision:  = 3.14


 High precision:  = 3.140101011
 Low accuracy:  = 3.10212
 High accuracy:  = 3.14159
 High accuracy & precision:  = 3.141592653
Số xấp xỉ, sai số

Trong tính toán, ta phải làm việc với các giá trị gần đúng của các đại lượng, vì vậy
luôn có sai số => Việc hiểu rõ sai số đó là rất cần thiết
A: là đại lượng cần nghiên cứu.
a: đại lượng gần đúng với nó, thu được từ thực tế
Khi đó, ta nói: a là số xấp xỉ của A. Ký hiệu: 𝑎 ≈ 𝐴

1.1 Sai số tuyệt đối:


Đại lượng ∆= |𝑎 − 𝐴| được gọi là sai số tuyệt đối của số xấp xỉ a

Sai số tuyệt đối giới hạn cho phép của số gần đúng a là số ∆𝒂 > 𝟎 thỏa mãn
𝑎 − 𝐴 ≤ ∆𝑎 hay 𝑎 − ∆𝑎 ≤ A ≤ a + ∆𝑎
(∆𝑎 càng nhỏ càng tốt) Khi đó: 𝑎 − 𝐴 = ∆𝑎 hay A = a + ∆𝑎
FETEL-HCMUS 2023 34

Số xấp xỉ, sai số


1.2 Sai số tương đối:
Để mô tả chất lượng của việc xấp xỉ, người ta gọi 𝜹𝒂 là sai số tương đối

∆𝑎
của đại lượng 𝛿𝑎 = (𝑎 ≠ 0)
𝑎
Sai số tương đối 𝜹𝒂 thường được tính theo tỷ lệ %

∆𝑎
𝛿𝑎 = . 100%
𝑎
VD:
• Số gần đúng a ≈ 49 (km/h)
• Sai số tuyệt đối: ∆𝑎 = 1 (km/h)
∆𝑎 1
• Sai số tương đối: 𝛿𝑎 = . 100% = . 100% = 2.04%
𝑎 49

Tính sai số tương đối ở vận tốc 60km/h? 𝛿𝑎 =1.67%


FETEL-HCMUS 2023 35

Các định nghĩa sai số– Approximate Error


Khi không biết giá trị đúng A (trong thực tế): code

Approximate Error (sai số tuyệt đối)


Ea = current approximate − previous approximate

Approximate Relative Error (sai số tương đối)


current approximate − previous approximate
a = *100%
current approximate

Thường lặp lại quá trình tính cho đến khi sai số tương đối xấp xỉ nhỏ hơn giá trị thiết lập trước

a   s Sai số định trước cần đạt được


35
FETEL-HCMUS 2023 36

Chữ số có nghĩa
Quy ước: dấu “.” ngăn cách số nguyên và số thập phân. VD: 19.43
 Chữ số có nghĩa: số các chữ số từ chữ số khác
không đầu tiên, liên quan đến độ chính xác
VD:

• Số 0.003042 có 4 chữ số có nghĩa là 3, 0, 4, 2


• Số 3600 = 360 x 10 chỉ có 3 chữ số có nghĩa
• Viết 3600 = 36 x 102 thì chỉ có 2 chữ số có nghĩa
• Viết 3600 = 36000 x 10-1 thì có 5 chữ số có nghĩa
Nếu ε được chọn có giá trị
 = (0.5  10(2-n) )%
Thì kết quả sẽ đúng đến ít nhất n chữ số có nghĩa.
FETEL-HCMUS 2023 37

Chữ số đáng tin


Số a=±…anan-1…a2a1a0a-1a-2… có sai số tuyệt đối giới hạn là ∆𝑎
• Nếu: 0 < ∆a < 0.5x10i thì ta nói chữ số ai là chữ số tin tưởng.
Mọi chữ số đứng trưóc nó đều là chữ số tin tưởng.
• Nếu: ∆a > 0.5x10i thì chữ số ai được gọi là chữ số khả nghi.
Mọi chữ số đứng sau nó đều là chữ số khả nghi.
VD: Giả sử số a = 2.5785030 có sai số tuyệt đối là ∆a = 0.0043
Do ∆a = 0.43x10-2 < 0.5x10-2 nên chữ số thứ hai sau dấu chấm là
chữ số tin tưởng. Vậy số a có 3 chữ số tin tường là 2, 5, 7 còn
các chữ số 8, 5, 0, 3, 0 là các chữ số khả nghi.
Xác định lại với a = 57.8264 với ∆a = 0.0032 và ∆a = 0.0065 < 0.5x10-1 ?
FETEL-HCMUS 2023 38

Cách viết số gần đúng


 Mọi chữ số bên trái số đáng tin là đáng tin,
bên phải là đáng nghi.
 Cách viết số xấp xỉ: hai cách viết
- Viết kèm sai số : a ± Et
- Viết theo quy ước: viết toàn chữ số đáng tin. Có nghĩa
là số gần đúng có sai số tuyệt đối không vượt quá 1/2
đơn vị hàng cuối cùng bên phải.
a = 57.8
a = 57.82640032
FETEL-HCMUS 2023 39

Sai số quy tròn


Trong tính toán, ta tính được số 𝑎 có nhiều chữ số, thường
phải ngắt bớt và chỉ giữ lại một số chữ số trong số đó và thu
được số 𝑎෤ để tính tiếp. Việc thay 𝑎 bởi 𝑎෤ được gọi là sự quy
tròn số.
Đại lượng 𝜃𝑎 = |𝑎 − 𝑎෤ | được gọi là sai số quy tròn
Quy ước: Nếu chữ số dầu tiên (kể từ trái sang phải) trong các số bị bỏ đi
của số 𝑎 lớn hơn hoặc bằng 5 thì chữ số cuối cùng được giữ lại liền kề trước
nó được tăng lên một đơn vị, ngược lại thì giữ nguyên.
VD: Cho số a = 237.546457 để được số 𝑎෤ có 2 số lẻ thập phân.
Theo quy ước trên thì 𝑎෤ = 237.55
Vd: Xác định lại với a = 237865 với 𝑎෤ chỉ gồm 4 chữ số.
Theo quy ưóc trên ta có 𝑎෤ = 2379x102
FETEL-HCMUS 2023 40

Các phép tính về sai số

Đại lượng bất kỳ f có sai số tuyệt đối ∆𝑓 và sai số tương đối 𝛿𝑓

Hàm tổng 𝑓 =𝑥+𝑦+𝑧 ∆𝑓 = ∆𝑥 + ∆𝑦 + ∆𝑧 𝒙, 𝒚, 𝒛 > 𝟎

Hàm hiệu 𝑓 =𝑥−𝑦 ∆𝑥 + ∆𝑦 𝒙, 𝒚 > 𝟎


∆𝑓 =
|𝑥 − 𝑦|
Hàm tích 𝑓 = 𝑥. 𝑦. 𝑧 𝛿𝑓 = 𝛿𝑥 + 𝛿𝑦 + 𝛿𝑧 𝒙, 𝒚, 𝒛 > 𝟎

Hàm 𝑥 𝛿𝑓 = 𝛿𝑥 + 𝛿𝑦 𝒙, 𝒚 > 𝟎
𝑓=
thương 𝑦
Hàm mũ 𝑓 = 𝑥𝛼 𝛿𝑓 = |𝛼|𝛿𝑥 𝛼: hằng số
FETEL-HCMUS 2023 41

Công thức tổng quát về sai số

Giả sử: 𝑢 = 𝑓(𝑥1, 𝑥2, … , 𝑥𝑛 ) với 𝑓 là hàm khả vi liên tục thì

𝜕𝑓 ∆𝑢 𝜕ln(𝑓)
∆𝑢 = σ𝑛𝑖=1 ∆𝑥𝑖 nếu 𝑓 > 0 thì 𝛿𝑢 = = σ𝑛𝑖=1 ∆𝑥𝑖
𝜕𝑥𝑖 𝑢 𝜕𝑥𝑖

𝑎.𝑏
VD: Tìm sai số tương đối của hàm 𝑢 =
𝑠𝑖𝑛2 (𝑐)

Biết 𝛿𝑎 = 0.02, 𝛿𝑏 = 0.01, ∆𝑐 = 0.004, 𝑐 = 0.62


Giải: 𝛿𝑢 = 𝛿𝑎.𝑏 + 𝛿𝑠𝑖𝑛2𝑐 = 𝛿𝑎 + 𝛿𝑏 + 𝛿𝑠𝑖𝑛2𝑐
∆sin(𝑐) cos 𝑐
Trong đó: 𝛿𝑠𝑖𝑛2 𝑐 = 2𝛿 sin 𝑐 = 2 =2 ∆𝑐 = 2𝑐𝑜𝑡𝑔 𝑐 . ∆𝑐
sin(𝑐) sin 𝑐
𝛿𝑢 = 0.02 + 0.01 + 2(1.4007)(0.004) ≈ 0.041
Bài tập về nhà: 1-7/trang 9,10 – Phương pháp tính trong kỹ thuật, Đặng Quốc Lương
FETEL-HCMUS 2023 42

Chương 8

Tìm nghiệm của phương trình f(x)=0


FETEL-HCMUS 2023 43

Giải gần đúng phương trình f(x)=0


Trong kỹ thuật, ta thường gặp bài toán: Tìm nghiệm thực của
phương trình 𝑓 𝑥 = 0 (đại số hoặc siêu việt). Nghiệm của nó
khó có thể tìm được trong dạng nghiệm đúng (trong máy tính
quy tròn số).
Để tìm nghiệm gần đúng (thực) của phương trình 𝑓 𝑥 = 0 , ta thường tiến
hành theo các bước sau:
1. Khẳng định phương trình có nghiệm trong một khoảng nào đó: khoảng
phân ly nghiệm [a, b];
2. Chọn 1 xấp xỉ đầu 𝑥0 , xem đó là nghiệm gần đúng đầu tiên thuộc
khoảng đang xét [a b]; (có 02 phương pháp)
3. Điều chỉnh dần 𝑥0 sao cho càng gần tới nghiệm đúng 𝛼 càng tốt (có
nhiều thuật toán khác nhau: 4 thuật toán);
4. Đánh giá sai số của nghiệm gần đúng tìm được so với nghiệm đúng
FETEL-HCMUS 2023 44

Các phương pháp tìm xấp xỉ x0

Bước 2: Để tìm xấp xỉ đầu x0, ta có thể dùng 1 trong 2


phương pháp

• Phương pháp đồ thị


• Tìm khoảng phân ly
FETEL-HCMUS 2023 45

8.1 Phương pháp đồ thị

Tìm xấp xỉ ban đầu 𝑥0


của nghiệm

Vẽ đồ thị của hàm 𝑦 = 𝑓 𝑥 . Giao điểm của đồ thị với


trục hoành là 𝑥0 .
Vô nghiệm
• Nếu 𝑓 𝑥0 = 0 thì 𝑥0 = 𝛼 là nghiệm của phương
trình
Có 1 nghiệm
• Nếu 𝑓 𝑥0 ≠ 0 thì khoảng phân ly nghiệm của 𝛼
được chọn là 𝑎, 𝑏 trong khoảng lân cận về 2 phía
Có 2 nghiệm
của 𝑥0 sao cho: trái dấu

𝑎 < 𝑥0 < 𝑏
Có 3 nghiệm
Các dạng nghiệm của hàm số với khoảng phân ly đảo dấu
nghiệm [𝑎, 𝑏]
FETEL-HCMUS 2023 46

8.1 Phương pháp đồ thị


Trường hợp 𝑦 = 𝑓 𝑥 khó vẽ, viết phương trình dưới
dạng: ℎ(𝑥) = 𝑔 𝑥
Nếu ℎ(𝑥0) = 𝑔 𝑥0 thì 𝑥0 = 𝛼 là nghiệm của phương trình
Vd: Dùng phương pháp hình học tìm khoảng phân ly
ℎ(𝑥) = 2𝑥
nghiệm của phương trình
f(x) = 2𝑥 + 𝑥 − 4 = 0
Viết lại phương trình dưới dạng: 2𝑥 = −𝑥 + 4 𝑔 𝑥 = −𝑥 + 4

Ta có nghiệm 𝑥0 (1.386) trong đoạn [1, 2]


𝑎 𝑏
Website vẽ hình học:
𝑥0 = 𝛼
https://www.desmos.com/calculator
Tìm xấp xỉ ban đầu 𝑥0 của nghiệm
FETEL-HCMUS 2023 47

8.2 Khoảng phân ly nghiệm


Xét phương trình 𝑓 𝑥 =0 (3.1)
Nếu f(x) liên tục và đơn điệu trên khoảng
[a, b], đồng thời f(a) và f(b) trái dấu
Định nghĩa: Giả sử 𝛼 là một nghiệm của phương

trình (3.1). Ta nói [𝑎, 𝑏] là khoảng phân ly nghiệm 𝛼

𝛼 của phương trình (3.1) nếu trong khoảng đó


𝑎 𝑏
phương trình (3.1) chỉ có một nghiệm thực 𝛼 duy
nhất.
Điều kiện: f(a).f(b)<0
Vd: [12, 16] là khoảng phân ly nghiệm của 𝛼 trong
hình bên
FETEL-HCMUS 2023 48

8.2 Khoảng phân ly nghiệm


Xét phương trình 𝑓 𝑥 =0 (3.1)
Nếu f(x) liên tục và đơn điệu trên khoảng
[a, b], đồng thời f(a) và f(b) trái dấu
Định nghĩa: Giả sử 𝛼 là một nghiệm của phương
𝛼1 𝛼2
trình (3.1). Ta nói [𝑎, 𝑏] là khoảng phân ly nghiệm 𝑎 𝛼3 𝑏

𝛼 của phương trình (3.1) nếu trong khoảng đó


phương trình (3.1) chỉ có một nghiệm thực 𝛼 duy
nhất.
Điều kiện: f(a).f(b)<0
Vd: [-4, 4] không là khoảng phân ly nghiệm của 𝛼
trong hình bên => chia 3 khoảng phân ly nghiệm
FETEL-HCMUS 2023 49

Các phương pháp tìm nghiệm chính xác cần thiết

Bước 3: Sau khi đã có x0 và [a,b]


• Phương pháp chia đôi
• Phương pháp lặp
• Phương pháp tiếp tuyến (PP Newton)
• Phương pháp dây cung
FETEL-HCMUS 2023 50

8.3 Phương pháp chia đôi


Phương pháp Điều kiện đầu: f(a).f(b)<0

B1: Tìm khoảng phân


ly nghiệm

B2: Tính x = (a+b)/2

B3: Xác định khoảng


phân ly nghiệm mới

B4: Lặp lại khi |b-a| < es


x = (a +b )/2
FETEL-HCMUS 2023 51

8.3 Phương pháp chia đôi


Phương pháp
Sai số ở lần lặp thứ n:
1
en  n−1 (b −a) (b  a)
2

Nếu ấn định sai số cần đạt là  thì số


lần lặp N cần thực hiện là:
FETEL-HCMUS 2023 52

8.3 Phương pháp chia đôi


VD: Có thể lấy 𝑎𝑛 = 14.5 hay 𝑏𝑛 = 15 làm giá trị gần đúng của nghiệm 𝛼 với sai số ≤
0.5 sau 3 lần chia đôi (n=4). [12 , 16] => [14, 16] => [14, 15] => [14.5, 15]
1 1
𝛼 − 14.5 ≤ 23 16 − 12 = 0.5; 𝛼 − 15 ≤ 23 16 − 12 = 0.5
𝑎 𝑏
14

𝑎 15 𝑏

14.5

𝑎 𝑎 𝑏
Ưu điểm: đơn giản, dễ lập trình
Nhược điểm: Hội tụ chậm
xn = (an+bn)/2
FETEL-HCMUS 2023 53

8.3 Phương pháp chia đôi

Dừng lại khi |b-a| < es


Hoặc n = limit −0.043
FETEL-HCMUS 2023 54
% function f(x) = exp(-x) - x = 0
% Ví dụ sử dụng hàm: chiadoi(-2, 4, 0.001,500)
function root = chiadoi(a, b, es, imax)
if ((exp(-a) - a)*(exp(-b) - b))>0
MATLAB code %kiem tra f(a) và f(b) trai dau
disp('Khong co khoang phan ly')
PP chia đôi return
end 𝑓 𝑥 = 𝑒 −𝑥 − 𝑥
for i=1:1:imax
Sai số tương đối thường dùng trong tt:
x=(b+a)/2;
%ea = abs((b-a)/(b+a));
%ea = ((xu-xl)/(2^(i-1)))
ea = (b-a);
test= (exp(-a) - a) * (exp(-x) - x);
if (test < 0)
b=x;
Điều kiện dừng:  < Epsilon else
a=x;
hay đạt tới số lần lặp tối đa end
if (test == 0)
ea=0;
end
Cách xác định sai số đơn giản if (ea < es)
- Hãy viết lại với e = |b-a| break;
end
KQ: Nghiệm= 0.567505; Số vòng end
lặp = 14; Sai số= 0.000732 s=sprintf('\n Nghiem= %f; So vong lap = %d; Sai
so= %f \n', x, i, ea);
disp(s);
Ưu điểm: đơn giản, dễ lập trình root=x; 34
Nhược điểm: Hội tụ chậm end
FETEL-HCMUS 2023 55

8.4 Phương pháp lặp đơn


Giả sử [𝑎, 𝑏] là khoảng phân ly nghiệm 𝛼 của
Hội tụ Hội tụ
phương trình 𝑓 𝛼 = 0, 𝛼 ∈ [𝑎, 𝑏]
Viết phương trình lại dưới dạng: 𝒙 = 𝒈(𝒙) trong
đó 𝑔(𝑥) liên tục trong [𝑎, 𝑏]
Chọn 𝑥0 là điểm bất kỳ trong [𝑎, 𝑏]. Tính dãy
lặp theo công thức (cho đến khi sai số thỏa mãn)
𝑔′ 𝑥 ≤𝑞<1
𝒙𝒏 = 𝒈 𝒙𝒏 − 𝟏 𝑛 = 1,2, …,k

Định lý: Giả thuyết tồn tại số 𝑞 > 0 sao cho


𝑔′ 𝑥 ≤ 𝑞 < 1. Khi đó quá trình lặp hội tụ
𝑞
Sai số ước lượng: |𝑥𝑛 − 𝛼| ≤ 1−𝑞 |𝑥𝑛 − 𝑥𝑛−1 | 𝑔′ 𝑥 >1
Ưu điểm: xấp xỉ đầu 𝑥0 không nhất thiết phải Không hội tụ Không hội tụ
gần 𝛼, có khả năng sửa sai, dễ lập trình
Nhược điểm: Khi 𝑞 gần 1 thì hội tụ rất chậm
FETEL-HCMUS 2023 56

8.4 Phương pháp lặp đơn


g(x)= 2 − 0.13. ln(𝑥)

𝑦=𝑥

𝒙𝒏 = 𝒈 𝒙𝒏 − 𝟏
FETEL-HCMUS 2023 57

8.4 Phương pháp lặp đơn

Tóm tắt thuật toán


Bước 1: Viết 𝑓 𝑥 = 0 trong dạng 𝑥 = 𝑔(𝑥);

Bước 2: Kiểm tra điều kiện 𝑔′ 𝑥 ≤𝑞<1


Bước 3: Chọn xấp xỉ ban đầu 𝑥0 ∈ 𝑎, 𝑏 .
Tính
𝑥𝑛 = 𝑔 𝑥𝑛 − 1 𝑛 = 1,2, …,k
Sau k lần lặp, được 𝑥𝑛 ≈ 𝛼 là nghiệm gần
đúng của phương trình.
Sai số được đánh giá theo công thức (hoặc
khi thỏa điều kiện sai số tính toán < sai số
cho phép 𝜀
FETEL-HCMUS 2023 58

8.4 Phương pháp lặp đơn

VD: Tìm nghiệm gần đúng của phương trình: 𝑥 = 𝑔 𝑥


𝑥2
Với: 𝑔 𝑥 = 1 + 𝑥 − trên đoạn 1, 3
4

Bước 1: Viết 𝑓 𝑥 = 0
𝑥 1
Bước 2: Kiểm tra điều kiện 𝑔′ 𝑥 = 1− ≤ ; 𝑞 < 1, ∀𝑥 ∈ [1,3]
2 2

Bước 3: Thực hiện lặp theo 2 cách


Cách 1: viết hàm g(x) dưới dạng m-file
>>[x,k]=pheplap(g,0.8,0.5,1e-5,100) %[x,k]=lapdon('g',q,x0,epsilon,k)

function temp=g(x)
Cách 2: Gán function_handle trực tiếp %chương trình g.m
>>g=@(x) 1+x-x^2/4 temp=1+x-x^2/4;
>>[x,k]=pheplap(g,0.5,1,1e-5,100) end
FETEL-HCMUS 2023 59

PP Lặp đơn
Tìm nghiệm f(x) = 0 theo phương pháp lặp đơn => x = g(x)
𝑓 𝑥 = 𝑥3 − 𝑥 − 1 = 0
𝑥 = 𝑥 3 − 1 hoặc 𝑥 = (𝑥 + 1)1/3
Khoảng phân li nghiệm [1,2]

𝑥 = 𝑔 𝑥 = 𝑥3 − 1
Xét hội tụ:
𝑔′ 𝑥 = 3𝑥 2
[1,2] => g’(x) <= 12 = q > 1
=> Không hội tụ

𝑥 = (𝑥 + 1)1/3
HOẠT ĐỘNG Xét hội tụ:
g′(𝑥) = 1/3. (𝑥 + 1)−2/3
Nhóm 1: dùng biểu thức lặp x= x3 - 1 [1,2]=> g’(x)=> q = 0.2 < 1
Nhóm 2: dùng biểu thức lặp x= (x+1)1/3 => Hội tụ

Lặp 5 lần với x0 =1 và cho nhận xét


FETEL-HCMUS 2023 60

ĐK hội tụ: 𝑔′ 𝑥 ≤𝑞<1


x
36

x= x3 – 1
x1 =
0 -1 -2 -9 -730 (không hội tụ) x3 - 1

clc
x=1
for i=1:5
x= x^3-1
x1(i)=x
end x
x= (x+1)1/3
x2 =
1.2599 1.3123 1.3224 1.3243 1.3246
(hội tụ) (x+1)1/3
clc
x=1
for i=1:5
x= (x+1)^(1/3)
x2(i)=x
end
FETEL-HCMUS 2023 61

Làm sao để chọn hàm lặp?


f(x) = 0 có nghiệm thực trong khoảng [a, b];

- Viết lại: x + f(x) – x = 0; Đặt φ(x) = x + f(x);


=> x = φ(x); (x) gọi là hàm lặp
Điều kiện hội tụ: chọn hàm φ(x) có đạo hàm thoả mãn
điều kiện:
 '(x)  q  1, a  x  b;
𝑓 𝑥 = 𝑥3 − 𝑥 − 1 = 0 q - hằng số;
f(x) = (x+1)1/3+x-x=0
x = (x+1)1/3+x= (x)
- Phương pháp lặp hội tụ với xn → α (nghiệm đúng) khi n → ∞
FETEL-HCMUS 2023 62

PP Tiếp tuyến (PP Newton-Raphson)


Giả sử [𝑎, 𝑏] là khoảng phân ly nghiệm 𝛼 của phương
trình 𝑓 𝑥 = 0 liên tục với 𝑓′ 𝑥 và 𝑓′′ 𝑥 không đổi dấu
trên 𝑎, 𝑏 . Nghiệm đúng của phương trình là hoành độ
giao điểm của đường cong 𝑦 = 𝑓 𝑥 với trục hoành Ox
Phương pháp: thay đường cong 𝑦 = 𝑓 𝑥 bằng tiếp
tuyến kẻ từ 𝐴(𝑎, 𝑓 𝑎 ) hay 𝐵(𝑏, 𝑓 𝑏 ) coi hoành độ giao
điểm của tiếp tuyến và Ox là nghiệm gần đúng. Chọn x0 = a hoặc b sao cho:
Đặt 𝑥0 = 𝑎 nếu tiếp tuyến kẻ từ A, 𝑥0 = 𝑏 nếu kẻ từ B. 𝑓 𝑥0 . 𝑓 ′′ 𝑥 > 0 ∀𝑥 ∈ [𝑎, 𝑏]

Phương trình tiếp tuyến tại (𝑥0, 𝑓 𝑥0 ) có dạng:


𝑓 𝑥0
𝑦 = 𝑓 𝑥0 + 𝑓 ′ 𝑥0 𝑥1 − 𝑥0 = 0 => 𝑥1 = 𝑥0 − 𝑓′ .
𝑥0
Tiếp tục vẽ tiếp tuyến tại (𝑥1, 𝑓 𝑥1, ), tương tự ta có xấp
𝑓 𝑥1
xỉ tiếp theo 𝑥2 = 𝑥1 − 𝑓′ .
𝑥1
𝑓 𝑥𝑛
Tổng quát 𝑥𝑛+1 = 𝑥𝑛 −
𝑓′ 𝑥
FETEL-HCMUS 2023 63

PP Tiếp tuyến (PP Newton-Raphson)

Lưu ý: Xấp xỉ đầu 𝑥0 được chọn là 𝑎 hay 𝑏 sao cho


𝑓 𝑥0 . 𝑓 ′′ 𝑥 > 0 ∀𝑥 ∈ [𝑎, 𝑏] Khi đó 𝑥0 sẽ hội tụ về
nghiệm 𝛼
Sai số của phương pháp:
|𝑓(𝑥𝑛 )|
|𝑥𝑛 − 𝛼| ≤
𝑚
Với 𝑓 ′ 𝑥 > 𝑚 ∀𝑥 ∈ [𝑎, 𝑏]
Trên thực tế thường dừng quá trình tính toán khi
|𝑥𝑛 − 𝑥𝑛−1 | < 𝜖 (sai số cho phép)
Phương pháp Newton-Raphson còn gọi là phương 𝑓 𝑥𝑛
𝑥𝑛+1 = 𝑥𝑛 − ′
𝑓 𝑥𝑛
pháp tuyến tính hóa, hội tụ rất nhanh so với phương
pháp lặp đơn và phương pháp chia đôi
FETEL-HCMUS 2023 64

PP Tiếp tuyến (PP Newton-Raphson)


Lưu ý: Điều kiện để hội tụ 𝑓′ 𝑥 và 𝑓′′ 𝑥 không đổi dấu trên 𝑎, 𝑏
- Xấp xỉ đầu 𝑥0 được chọn là 𝑎 hay 𝑏 sao cho 𝑓 𝑥0 . 𝑓 ′′ 𝑥 > 0 ∀𝑥 ∈ [𝑎, 𝑏]
𝑓 𝑥0 cùng dấu với 𝑓 ′′ 𝑥 khi đó 𝑥0 sẽ hội tụ

𝑓 𝑥𝑛
𝑥𝑛+1 = 𝑥𝑛 − ′
𝑓 𝑥𝑛

𝑓 𝑥0 3453
𝑥1 = 𝑥0 − = −11 −
𝑓 ′ 𝑥0 −5183
= −10.33378
𝑓 𝑥1
𝑥2 = 𝑥1 − ′ = −10.2673
𝑓 𝑥1
𝑓 𝑥2
𝑥3 = 𝑥2 − ′ = −10.261
𝑓 𝑥2
FETEL-HCMUS 2023 65

PP Tiếp tuyến (PP Newton-Raphson)


Tóm tắt thuật toán
• Bước 1: Tính 𝑓′(𝑥), 𝑓′′(𝑥) và xét dấu của chúng.
• Bước 2: Chọn 𝑥0 được chọn là 𝑎 hay 𝑏 sao cho
𝑓(𝑥0 ) cùng dấu với 𝑓 ′′ 𝑥
𝑓 𝑥0 . 𝑓 ′′ 𝑥 > 0, ∀𝑥 ∈ [𝑎, 𝑏].
• Bước 3: Từ xấp xỉ đầu 𝑥0, tính
𝑓 𝑥𝑛
𝑥𝑛+1 = 𝑥𝑛 − 𝑓′ 𝑥𝑛

Sau k lần lặp ta thu được 𝑥𝑘 ≈ 𝛼 là nghiệm gần đúng


của phương trình. Sai số |𝑥𝑘 − 𝛼| được đánh giá theo
công thức (3.10).
Vd: Tìm nghiệm gần đúng của phương trình
𝑓 𝑥 = 𝑥 4 − 3𝑥 2 + 75𝑥 − 10000 = 0 trong khoảng
−11, −10 . Chọn điểm xuất phát 𝑥0 = −11 , tìm
nghiệm 𝑥𝑛 sao cho sai số tuyệt đối không vượt quá
ε = 10−5
FETEL-HCMUS 2023 66

Áp dụng (nhóm 3 người)


f(x) = x3 – x – 1 = 0;
x ban đầu = 2. Lặp 5 lần
𝑓 𝑥𝑛
x f(x)=x3-x-1 f’(x)=3x2-1 𝑥𝑛 − ′
𝑓 𝑥𝑛
2,0 5,0 11,0 1,5454545
1,5454545 1,145755 6,165288 1,3596148
1,3596148 0,153704 4,545657 1,3258015
1,3258015 0,004625 4,273245 1,3247190
1,3247190 0,0000034 4,264641 1,3247182
1,3247182 0,0000010
clc
x3 = x=2
1.5455 1.3596 1.3258 1.3247 1.3247 for i=1:5
x= x-(x^3-x-1)/(3*x^2-1);
x3(i)= x;
end
FETEL-HCMUS 2023 67

Phương pháp dây cung


x0 được chọn sao cho
𝑓 𝑥0 . 𝑓 ′′ 𝑥 < 0
Giả sử [𝑎, 𝑏] là khoảng phân ly nghiệm 𝛼 của phương ቊ
𝑓 𝑑 . 𝑓 𝑥0 < 0
trình 𝑓 𝛼 = 0 liên tục với 𝑓′ 𝑥 và 𝑓′′ 𝑥 không đổi
dấu trên 𝑎, 𝑏 . Trong phương pháp tiếp tuyến ta
thay đường cong 𝑦 = 𝑓 𝑥 bằng tiếp tuyến của
đường cong. Trong phương pháp dây cung, ta thay
bằng dây cung nối 2 điểm 𝐴(𝑎, 𝑓 𝑎 ) và 𝐵(𝑏, 𝑓 𝑏 ). 𝑥0
Nghiệm đúng của phương trình là hoành độ giao 𝑑
điểm của dây cung 𝐴𝐵 với trục hoành Ox.
Phương trình dây cung qua A(a,f(a)) và B(b,f(b))
𝑓 𝑎 −𝑓 𝑏 𝑥 − 𝑎 + 𝑏 − 𝑎 𝑦 − 𝑓(𝑎) =0

𝑓 𝑏 −𝑓 𝑎 Lặp lại quá trình trên ta có:


𝑦= 𝑥 − 𝑎 + 𝑓 𝑎 (Cho y = 0 có nghiệm x1)
𝑏−𝑎
𝑑 − 𝑥𝑛−1
𝑏−𝑎 𝑎.𝑓 𝑏 −𝑏.𝑓 𝑎 𝑥𝑛 = 𝑥𝑛−1 − 𝑓 𝑥𝑛−1
⇒ 𝑥1 = 𝑎 − 𝑓 𝑏 −𝑓 𝑎
𝑓 𝑎 hoặc 𝑥1 = 𝑓 𝑏 −𝑓 𝑎
𝑓 𝑑 − 𝑓 𝑥𝑛−1
Chọn 𝑥0 = 𝑎, đặt 𝑑 = 𝑏 ta có
𝑑 − 𝑥0 𝑥0 . 𝑓 𝑑 − 𝑑. 𝑓 𝑥0 𝑥𝑛−1 . 𝑓 𝑑 − 𝑑. 𝑓 𝑥𝑛−1
𝑥1 = 𝑥0 − 𝑓 𝑥0 ℎ𝑜ặ𝑐 𝑥1 = 𝑥𝑛 =
𝑓 𝑑 − 𝑓 𝑥0 𝑓 𝑑 − 𝑓 𝑥0 𝑓 𝑑 − 𝑓 𝑥𝑛−1
FETEL-HCMUS 2023 68

Phương pháp dây cung


Tóm tắt thuật toán
• Bước 1: Tính 𝑓′(𝑥) , 𝑓′′(𝑥) và xét dấu của chúng.
Hội tụ khi f’(x) và f’’(x) không đổi dấu trong [a,b]

• Bước 2: Kiểm tra điều kiện


𝑓 𝑥0 . 𝑓 ′′ 𝑥 < 0

𝑓 𝑑 . 𝑓 𝑥0 < 0
Để chọn xấp xỉ ban đầu 𝑥0 là 𝑎 hay 𝑏

• Bước 3: Từ xấp xỉ ban đầu 𝑥0, tính


𝑑−𝑥𝑛−1
𝑥𝑛 = 𝑥𝑛−1 − 𝑓 𝑥𝑛−1
𝑓 𝑑 −𝑓 𝑥𝑛−1
Hoặc
𝑥𝑛−1 .𝑓 𝑑 −𝑑.𝑓 𝑥𝑛−1
𝑥𝑛 =
𝑓 𝑑 −𝑓 𝑥𝑛−1
Sau k lần lặp ta thu được 𝑥𝑘 ≈ 𝛼 là nghiệm gần đúng
của phương trình.
Nếu 𝑓 ′ 𝑥0 , 𝑓 ′′ 𝑥 cùng dấu: đơn điệu giảm tới
nghiệm đúng 𝛼 và ngược lại.
FETEL-HCMUS 2023 69

Phương pháp dây cung


𝑥𝑛−1 .𝑓 𝑑 −𝑑.𝑓 𝑛−1
𝑥𝑛 = . Hội tụ khi f’(x) và f’’(x) không đảo dấu trong [a,b]
𝑓 𝑑 −𝑓 𝑥𝑛−1

x0 được chọn sao cho


𝑓 𝑥0 . 𝑓 ′′ 𝑥 < 0

𝑓 𝑑 . 𝑓 𝑥0 < 0

Bài tập: 3.1-3.3 trang 103-104


Giáo trình PPT và Matlab,
𝑥𝑛−1 . 𝑓 𝑑 − 𝑑. 𝑓 𝑛 − 1 Lê Trọng Vinh
𝑥𝑛 =
𝑓 𝑑 − 𝑓 𝑥𝑛−1
FETEL-HCMUS 2023 70

Chương 9

Giải hệ phương trình tuyến tính


FETEL-HCMUS 2023 71

Bài toán: tìm dòng Is

IS
FETEL-HCMUS 2023 72

Bài toán: tìm dòng Is

Vòng I1
(1)

Vòng I2
Do (2)

Vòng I3
(3)
(1), (2), (3)

Giải hệ phương trình (1) (2) (3)


để tìm I1, I2,I3
FETEL-HCMUS 2023 73

Tổng quát
Hệ phương trình đại số tuyến tính có m phương trình và n nghiệm x dạng
𝑎11 𝑥1 + 𝑎12 𝑥2 +. . . +𝑎1𝑛 𝑥𝑛 = 𝑏1 𝑎11 𝑎12 … 𝑎1𝑛 𝑥1 𝑏1
𝑎21 𝑥1 + 𝑎22 𝑥2 +. . . +𝑎2𝑛 𝑥𝑛 = 𝑏2 𝑎21 𝑎21 … 𝑎2𝑛 𝑥2 𝑏2
൞ ↔ ⋮ … … ⋮ ⋮ =
....................................... ⋮
𝑎𝑚1 𝑥1 + 𝑎𝑚2 𝑥2 +. . . +𝑎𝑚𝑛 𝑥𝑛 = 𝑏𝑚 𝑎𝑚1 𝑎𝑚2 … 𝑎𝑚𝑛 𝑥𝑛 𝑏𝑚
Viết dưới dạng ma trận 𝐴. 𝑋 = 𝐵
𝑎11 𝑎12 … 𝑎1𝑛
𝑎21 𝑎21 … 𝑎2𝑛
𝐴= ⋮ … … ⋮ là ma trận hệ số (m hàng n cột)
𝑎𝑚1 𝑎𝑚2 … 𝑎𝑚𝑛 Khi m = n thì A là ma trận vuông cấp n.

𝑏1 𝑥1
𝑏 𝑥2
𝐵 = 2 vectơ hệ số (m hàng, 1 cột); 𝑋 = ⋮ vectơ nghiệm cần tìm (n hàng, 1 cột)

𝑏𝑚 𝑥𝑛
FETEL-HCMUS 2023 74

Sự tồn tại và duy nhất của nghiệm


Phương pháp Cramer ∆𝑖= det(𝐴i)
Xét hệ phương trình dưới dạng ma trận 𝑎11 𝑎12 … 𝑎1𝑛 𝑥1 𝑏1
𝐴𝑋 = 𝐵 𝑎21 𝑎22 … 𝑎2𝑛 𝑥2 𝑏2
⋮ … … ⋮ ⋮ =

Trong đó 𝐴 là ma trận vuông cấp n 𝑎n1 𝑎n2 … 𝑎𝑛𝑛 𝑥𝑛 𝑏𝑛
Để A không suy biến thì det(𝐴) ≠ 0
Khi đó nghiệm duy nhất được tính theo
công thức 𝑋 = 𝐴−1 𝐵 Matlab:
DET Determinant.
Hoặc theo công thức Cramer DET(X) is the determinant of the square matrix X.
𝛥𝑖 det(𝐴𝑖 )
𝑥𝑖 = = , (i=1,2,..n) n Số phép Số phép
𝛥 det(𝐴) nhân cộng
Trong đó ∆ = det(𝐴) và ∆𝑖 = det(𝐴i) là định 4 360 115
thức khi A thay bởi cột thứ i bằng cột B
5 2880 716
Khi n tăng thì số phép tính tăng rất nhanh
10 359,251,810 39,916,791
FETEL-HCMUS 2023 75

Giải hệ PT bằng PP Cramer

D: Định thức của ma trận A = Det(A)


FETEL-HCMUS 2023 76

Tính định thức a11 a12 a13


D = a21 a22 a 23
a31 a32 a33

Số phép tính tăng nhanh, cần có các phương pháp tính khác
=> Phương pháp giải số => nhanh (ít phép tính hơn)
FETEL-HCMUS 2023 77

Phương pháp giải số


➢ Phương pháp trực tiếp
1. Phương pháp Gauss
2. Phương pháp Gauss-Jordan
3. Phương pháp Gauss-trụ tối đại
4. Phương pháp phân tích LU
5. Phương pháp Cholesky

➢ Phương pháp lặp


6. Phương pháp lặp Jacobi
7. Phương pháp lặp Gauss-Seidel
FETEL-HCMUS 2023 78

Phương pháp Gauss: PP khử dần ẩn


Xét hệ phương trình 3 phương trình, 3 ẩn số Để khử 𝑥1 ở (1.b), ta nhân phương trình
𝑎11 𝑥1 + 𝑎12 𝑥2 + 𝑎13 𝑥3 = 𝑎14 (1. 𝑎) (2) cho 𝑎21 (hệ số 𝑥1 ở 1.b)
(1) (1) (1)
ቐ 𝑎21 𝑥1 + 𝑎22 𝑥2 + 𝑎23 𝑥3 = 𝑎24 (1. 𝑏) 𝑎21 𝑥1 + 𝑎21 . 𝑎12 𝑥2 + 𝑎21 . 𝑎13 𝑥3 = 𝑎21 . 𝑎14
𝑎31 𝑥1 + 𝑎32 𝑥2 + 𝑎33 𝑥3 = 𝑎34 (1. 𝑐) Lấy (1.b) trừ cho phương trình này ta có
Biến đổi tương đương về hệ tam giác: phương trình
(quá trình thuận) (1) (1)
𝑎22 𝑥2 + 𝑎23 𝑥3 = 𝑎24
(1)

𝑥1 + 𝑏12 𝑥2 + 𝑏13 𝑥3 = 𝑏14 (1) (1)


Trong đó: 𝑎2𝑗 = 𝑎2j − 𝑎21 . 𝑎1𝑗
ቐ 𝑥2 +𝑏23 𝑥3 = 𝑏24
𝑥3 = 𝑏34 Tương tự, để khử 𝑥1 ở (1.c), ta có
(1) (1) (1)
Sau đó giải tìm từ phương trình cuối ngược 𝑎32 𝑥2 + 𝑎33 𝑥3 = 𝑎34
lên trên (quá trình ngược) Hệ phương trình hai ẩn:
Quá trình thuận: 1 1
𝑎22 𝑥2 + 𝑎23 𝑥3 = 𝑎24
1
Bước 1: Khử 𝑥1 ቐ 1 1 1
Giả sử 𝑎11 ≠ 0, chia 2 vế của phương trình 𝑎32 𝑥2 + 𝑎33 𝑥3 = 𝑎34
(1.a) cho 𝑎11 Bước 2: Khử 𝑥2 (tương tự bước 1)
(1) (1) (1) 3
𝑥1 + 𝑎12 𝑥2 + 𝑎13 𝑥3 = 𝑎14 (2) Tìm được 𝑥3 = 𝑎34 = 𝑏34
(1)
Trong đó: 𝑎1𝑗 =
𝑎1𝑗
Quá trình ngược: Thế lần lượt 𝑥3 tìm 𝑥2
𝑎11
và 𝑥1
FETEL-HCMUS 2023 79

Phương pháp Gauss: PP khử dần ẩn


2.0𝑥1 + 1.0𝑥2 − 0.1𝑥3 + 1.0𝑥4 = 2.7
Xét hệ phương trình 0.4𝑥1 + 0.5𝑥2 + 4.0𝑥3 − 8.5𝑥4 = 21.9
Quá trình tính toán các hệ số được ghi vào 0.3𝑥1 − 1.0𝑥2 + 1.0𝑥3 + 5.2𝑥4 = −3.9
bảng như sau: 1.0𝑥1 + 0.2𝑥2 + 2.5𝑥3 − 1.0𝑥4 = 9.9
Hệ số 𝒙𝟏 Hệ số 𝒙𝟐 Hệ số 𝒙𝟑 Hệ số 𝒙𝟒 Hệ số 𝑏 Ghi chú
2.0 1.0 -0.1 1.0 2.7 Chia cho a11
0.4 0.5 4.0 -8.5 21.9
0.3 -1.0 1.0 5.2 -3.9
1.0 0.2 2.5 -1.0 9.9
1.0 0.5 -0.05 0.5 1.35 (trụ) (1) 𝑎1𝑗
𝑎1𝑗 =
0.4-0.4x1=0 0.5-0.4x0.5=0.3 4.0-0.4(-0.05)=4.02 -8.5-0.4x0.5=-8.7 21.9-0.4x1.35=21.36 𝑎11
(1) (1)
0.3-0.3x1=0 -1.0-0.3x0.5=-1.15 1.0-0.3x(-0.05)=1.015 5.2-0.3x0.5=5.05 -3.9-0.3x1.35=-4.305 𝑎2𝑗 = 𝑎2j − 𝑎21 . 𝑎1𝑗
1-1x1=0 0.2-1x0.5=-0.3 2.5-1x(-0.05)=2.55 -1.0-1x0.5=-1.5 9.9-1x1.35=8.55 (1) (1)
𝑎3𝑗 = 𝑎3j − 𝑎31 . 𝑎1𝑗
1 (chia cho 0.3) 4.02/0.3=13.4 -8.7/0.3=-29.00 21.36/0.3=71.20 (trụ 2) (2) (1) (1)
𝑎2𝑗 = 𝑎2𝑗 /𝑎22
-1.15 – (-1.15).1=0 1.015-(-1.15)x13.4=16.425 5.05-(-1.15)x(-29)=-28.3 -4.305-(-1.15)x71.2=77.575 (2) (1) (1) (2)
-0.3 – (-0.3).1 = 0 2.55-(-0.3)x13.4=6.57 -1.5-(-0.3)x(-29)=-10.2 8.55-(-0.3)x71.2=29.91 𝑎3𝑗 = 𝑎3𝑗 − 𝑎32 . 𝑎2𝑗
1 (chia cho 16.425) -28.3/16.425=-1.72298 77.575/16.425=4.72298
-10.2-6.57x(- 29.91-6.57x4.72298=-1.1198
1.72298)=1.1198
1 𝑥4 = −1.1198/1.1198=-1
𝑥1 + 0.5𝑥2 − 0.05𝑥3 + 0.5𝑥4 = 1.35 𝑥3 = 4.72298 − 1.77298
𝑥2 + 13.4𝑥3 − 29𝑥4 = 71.2 =3
𝑥3 −1.72298𝑥4 = 4.72298 𝑥2 = 2
1.1198𝑥4 = −1.1198 𝑥1 = 1
FETEL-HCMUS 2023 80

Ví dụ

1. Chia hàng 1 cho 6 4. Hàng 3 – (-4) x hàng 2, tương tự cho hàng 4


2. Hàng 2 – 12 x hàng 1, tương tự cho hàng 3,4 5. Chia hàng 3 cho 2
3. Chia hàng 2 cho (-4) 6. Hàng 4 – 2 x hàng 3.
(kiểm tra từng hàng lệnh trên Matlab)
FETEL-HCMUS 2023 81
FETEL-HCMUS 2023 82

Thuật toán: Khử ẩn

1. Chia hàng 1 cho (a11 =6)


2. Hàng 2 – hàng 1 x (ai1), tương tự cho hàng 3,4

3. Chia hàng 2 cho (a22 =-4)


4. Hàng 3 – hàng 2 x (ai2), tương tự cho hàng 4
FETEL-HCMUS 2023 83

Thuật toán: Khử ẩn (tiếp)


Tổng quát

5. Chia hàng 3 cho (a33 = 2)


6. Hàng 4 – hàng 3 x (ai3).

Khi lập trình = ghép A và b


thành ma trận Ab

Hàng đang đóng vai trò là trụ

Hàng đang tính


FETEL-HCMUS 2023 84

Thuật toán Gauss: khử ẩn

Ab= [A b]; % ma tran mo rong


% Qua trinh thuan
for i = 1:n-1
for j = i+1:n
Ab(j,i:nb)=Ab(j,i:nb)-Ab(j,i)*Ab(i,i:nb)/Ab(i,i)
end
end
FETEL-HCMUS 2023 85

Thuật toán Gauss : thế ngược

% Qua trinh nghich


x = zeros(n,1);
x(n)= Ab(n,nb)/Ab(n,n);
for i = n-1:-1:1
x(i)=(Ab(i,nb)-Ab(i,i+1:n)*x(i+1:n))/Ab(i,i);
end
FETEL-HCMUS 2023 86

Bài tập PP khử ẩn Gauss


Phương pháp khử ẩn Gauss:
Làm ví dụ: tính tay và trên Matlab, lưu ý khi aij=0
Viết hàm function x = gauss(A,b)

Thực hiện 2 ví dụ: các phép tính lấy đến 4 số lẻ thập phân
VD 1
A=[7.9 5.6 5.7 -7.2;
8.5 -4.8 0.8 3.5;...
4.3 4.2 -3.2 9.3;...
3.2 -1.4 -8.9 3.3];
B=[6.68;9.95;8.6;1];
gauss(A,B);

VD2: A=[1 2 3; 4 5 6; 7 8 9];


B=[14 32 50]';
gauss(A,B);
x =[ NaN NaN NaN]’
Nhận xét?
FETEL-HCMUS 2023 87

Phương pháp Gauss - Jordan


Phương pháp khử Gauss-Jordan dùng cách khử dần các ẩn để đưa hệ phương trình
đã cho về một dạng ma trận đường chéo rồi giải hệ phương trình này, không phải
tính một định thức nào.

Tuyến tính hóa hàng 2: chia hàng 2 cho 7.00333

Bước 1: Ghép A và B thành ma trận


Ab
Triệt tiêu x2 ở hàng 1,3: hàng 1 + 0.033333 x hàng 2,
hàng 3 + 0.19 x hàng 2
Chia hàng đầu tiên cho hệ số đầu tiên
=3, ta có

Tuyến tính hóa hàng 3: chia hàng 3 cho 10.012

Triệt tiêu x1 ở hàng 2,3:


- hàng 2 - 0.1 x hàng 1
- hàng 3 - 0.3 x hàng 1 Triệt tiêu x3 ở hàng 1,2
FETEL-HCMUS 2023 88

Phương pháp Gauss - Jordan


Ab= [A b]; % ma tran mo rong
% Step 1: chia hang cho he so theo xi
row = Ab(n,:);
Chia hàng đầu tiên cho hệ số đầu tiên =3 row = row/row(n);
Ab(n,:) = row;
% Step 2: triệt tiêu xi ở hàng ~=i
for k = 1:(length(Ab)-1)
Triệt tiêu x1 ở hàng 2,3: if k~=n
Hàng 2 = hàng 2 - 0.1 x hàng 1 Ab(k,:) = Ab(k,:)-1*Ab(k,n)*Ab(n,:);
Hàng 3 = hàng 3 - 0.3 x hàng 1 end
end

chia hàng 3 cho 10.012


chia hàng 2 cho 7.00333

Triệt tiêu x3 ở hàng 1,2


Triệt tiêu x2 ở hàng 1,3: hàng 1 + 0.033333 x hàng 2,
hàng 3 + 0.19 x hàng 2
FETEL-HCMUS 2023 89

Bài tập PP Gauss - Jordan

Làm ví dụ: tính tay và trên Matlab


Viết hàm function x = gauss_jordan(A,b)

Thực hiện 2 ví dụ: các phép tính lấy đến 4 số lẻ thập phân
VD1
A = [3 -0.1 -0.2; 0.1 7 -0.3; 0.3 -0.2 10];
b = [7.85; -19.3; 71.4];
gauss_jordan(A,b)

VD 2
A = [2 -6 -1; -3 -1 7; -8 1 -2];
b = [-38; -34; -20];
gauss_jordan(A,b)
Nhận xét?
Bài tập: 4.1-4.2/157,158 Giáo
trình PPT và Matlab – Lê Trọng
Vinh, Trần Minh Toàn
FETEL-HCMUS 2023 90

Phương pháp Gauss thay đổi trụ (trụ tối đại)

 Phương pháp Gauss nguyên thủy có vấn đề khi


thành phần trụ (Akk) có giá trị bằng 0 hay gần
bằng 0.  Do phép chia 0
 Khắc phục bằng cách hoán vị các hàng cho

nhau để thành phần trụ có độ lớn lớn nhất.


Gọi là PP Gauss hoán vị/thay đổi trụ

(Gaussian Elimination with Pivoting Method )


FETEL-HCMUS 2023 91

Phương pháp Gauss thay đổi trụ (trụ tối đại)

VD: PP Gauss hoán vị/thay đổi trụ: hoán vị các hàng cho
nhau để tính trên thành phần trụ có độ lớn lớn nhất
trụ

trụ

hàng 2 – 3x(hàng 1/8) hàng 3 - (-1.375)x(hàng 2/(-5.75))


hàng 3 + 2x(hàng 1/8)
FETEL-HCMUS 2023 92

Phương pháp Gauss thay đổi trụ (trụ tối đại)

Ví dụ : Giải hệ phương trình


3x1 − 0.1x2 − 0.2x3 = 7.85 (1)
0.1x1 + 7x2 − 0.3x3 =−19.3 (2)
0.3x1 − 0.2x2 + 10x3 = 71.4 (3)
(2)- (1)*0.1/3 7.00333x2 − 0.293333x3 = −19.5617 (4)
(3)- (1)*0.3/3 − 0.190000x2 + 10.0200x3 = 70.6150 (5)
(5) –(4)*(−0.190000/7.00333) 10.0120x3 = 70.0843 (6)
(1), (4), (6) ->
3x1 − 0.1x2 − 0.2x3 = 7.85 (1)
7.00333x2 − 0.293333x3 = −19.5617 (4)
10.0120x3 = 70.0843 (6)
x3 = 7.00003; x2=−2.50000; x1=3.00000
FETEL-HCMUS 2023 93

Bài tập PP Gauss thay đổi trụ (trụ tối đại)

Làm ví dụ: tính tay và trên Matlab


Viết hàm function x = gauss_part_pivoting(A,b)

Thực hiện 2 ví dụ: các phép tính lấy đến 4 số lẻ thập phân
VD 1
A=[3 -0.1 -0.2; 0.1 7 -0.3; 0.3 -0.2 10]
b=[7.85 -19.3 71.4]'
gauss_part_pivoting(A,b)

VD 2
A=[2.1 -4.5 -2; 3.0 2.5 4.3; -6.0 3.5 2.5]
b=[19.07 3.21 -18.25]'
gauss_part_pivoting(A,b)
VD 3
%A=[1 2 3; 4 5 6; 7 8 9];
%B=[14 32 50]';
%gauss(A,B);
gauss_part_pivoting(A,b)
FETEL-HCMUS 2023 94

Phương pháp phân tích LU


Để giải: A.X = B chuyển A thành ma trận L.U
L: Ma trận tam giác dưới
U: Ma trận tam giác trên

Tách: [L][U] = [A]

Xét: => [L][U].X = B


Đặt [U].X=Y Giải L.Y = B để tìm Y
=> [L].Y =B Giải U.X = Y để tìm X
FETEL-HCMUS 2023

Phương pháp phân tích LU


95

(LU decomposition, LU factorization)


Phương pháp phân tích ma trận A = L.U
Xét hệ phương trình dưới dạng ma trận 𝐴. 𝑋 = 𝐵
Tìm L và U sẽ giải được X theo các bước sau:

Bước 1: (LU decomposition) Nhân L với U, ta có

Cân bằng hàng thứ 1 của 2 ma


trận, ta có:
Cân bằng, thế giá trị hàng thứ
2, ta có:
FETEL-HCMUS 2023

Phương pháp phân tích LU


96

(LU decomposition, LU factorization)


Cân bằng, thế giá trị hàng thứ 3, ta có

Phân tích LU của ma trận A=L.U

Bước 2: (LU factorization) tìm nghiệm hệ phương trình


• Sau khi tìm được 𝐴 = 𝐿. 𝑈, hệ phương trình 𝐴. 𝑋 = 𝐵 tương
đương 𝐿. 𝑈. 𝑋 = 𝐵
• Cho 𝑌 = 𝑈. 𝑋 => tìm Y theo phương trình 𝐿. 𝑌 = 𝐵
• Giải hệ phương trình 𝑌 = 𝑈. 𝑋 để tìm 𝑋
FETEL-HCMUS 2023

Phương pháp phân tích LU


97

(LU decomposition, LU factorization)


VD: Xét hệ PT:

Bước 1: Phân tách A=L.U (đã tính ở trên) Giải hệ phương trình 𝑌=𝑈.𝑋 để tìm 𝑋

Bước 2: Cho 𝑌 = 𝑈. 𝑋 => A.X = L.U.X =B Ta có: 𝑥3 = −2, 𝑥2 = 4, 𝑥1 = 3


tìm Y theo phương trình 𝐿. 𝑌 = 𝐵 Nghiệm của hệ phương trình:

Ta có: 𝑦1 = 3,
𝑦2 = 13 − 3𝑦1 = 4,
𝑦3 = 4 − 2𝑦1 − 𝑦2 = −6
FETEL-HCMUS 2023 98

Triển khai trên Matlab

65

function [L,U,x]=LU_fact(A,b)
U=zeros(m,m); %m size (A)
L=eye(m,m);
...
end
FETEL-HCMUS 2023 99

Bài tập phương pháp phân tích LU

Làm ví dụ: tính tay và trên Matlab


Viết hàm function x = LU_fact(A,b)

Thực hiện 2 ví dụ: các phép tính lấy đến 4 số lẻ thập phân
VD 1
A=[8.64 1.71 5.42; -6.39 4.25 1.84; 4.21 7.92 -3.41];
b=[10.21 3.41 12.29]';
[L,U,x]=LU_fact(A,b)
VD 2
A=[2.1 -4.5 -2; 3.0 2.5 4.3; -6.0 3.5 2.5]
b=[19.07 3.21 -18.25]'
[L,U,x]=LU_fact(A,b)
FETEL-HCMUS 2023 100

Phương pháp Cholesky (khai căn)


Khi A: đối xứng và xác định dương, có thể viết
A xác định dương khi chỉ
khi các định thức con
chính của nó đều dương

1 1 −1
 = 1 2 0 = 2 0
−1 0 4
FETEL-HCMUS 2023 101

Ví dụ: Phân ly ma trận A thành L.L’


FETEL-HCMUS 2023 102

Ví dụ: Giải hệ PT bằng PP Cholesky


Cho A đối xứng và xác định dương Cho b=[6; -6; 16];
𝐴. 𝑋 = 𝐵 tương đương 𝐿. 𝐿′. 𝑋 = 𝐵
• Cho 𝑌 = 𝐿′. 𝑋 => tìm Y theo phương
trình 𝐿. 𝑌 = 𝐵

• Y=

Y=
Giải hệ phương trình 𝑌 = 𝐿′. 𝑋 để tìm 𝑋
(Giải tương tự LU)

• 𝑋=

𝑋=
FETEL-HCMUS 2023 103

Bài tập phương pháp Cholesky (khai căn)

Làm ví dụ: tính tay và trên Matlab


Viết hàm function x = cholesky(A,b)

Thực hiện 2 ví dụ: các phép tính lấy đến 4 số lẻ thập phân
VD 1
A=[5 3 2 1; 3 6 1 2; 2 1 5 1; 1 2 1 6];
b=[1 4 7 2]';
[L,y,x]=cholesky(A,b);

VD 2
A=[7 4 3 1; 4 8 2 5; 3 2 7 4; 1 5 4 11]
b=[7 10 9 9]'
[L,y,x]=cholesky(A,b);

VD 3
A=[4.9 1 1 0.1; 1 6.4 1.2 0.2; 0.1 1.2 3.6 1.1; 1.1 0.2 1.1
6.4]
b=[5.0 2.2 3.7 2.2]'
[L,y,x]=cholesky(A,b);
FETEL-HCMUS 2023 104

Phương pháp lặp Jacobi


Xét hệ phương trình dưới dạng ma trận 𝐴. 𝑋 = 𝐵
Biến đổi phương trình về dạng
𝑋 = 𝐶. 𝑋 + 𝐺
Trong đó 𝐶 là ma trận vuông cấp n; 𝐺 là vectơ cột n chiều.
𝐶 và 𝐺 được suy ra từ 𝐴 và 𝐵
Chọn vectơ 𝑥 (0) nào đó (𝑥 (0) = 𝐺) làm nghiệm gần đúng đầu tiên của hệ và
tính các nghiệm gần đúng tiếp theo theo công thức lặp
𝑥 (𝑘) = 𝐶. 𝑥 (𝑘−1) + 𝐺; (𝑘 ≥ 1)
Điều kiện hội tụ của quá trình lặp:
𝐶 < 1 ( 𝐶 :chuẩn của C = max 𝐶 𝑘 )
Sai số của hệ được tính như sau:
𝐶 𝑘
𝑥 (𝑘) − 𝛼 ≤ . 𝑥 (1) − 𝑥 (0)
1− 𝐶
Thông thường hàm lặp sẽ dừng khi sai số < sai số cho phép 𝜀
FETEL-HCMUS 2023 105

Phương pháp lặp Jacobi


VD: Giải hệ phương trình bằng phương pháp lặp đơn với 3 lần lặp, đánh giá
sai số 𝐴. 𝑋 = 𝐵
1.02𝑥1 − 0.05𝑥2 − 0.10𝑥3 = 0.795
ቐ−0.11𝑥1 + 1.03𝑥2 − 0.05𝑥3 = 0.849
−0.11𝑥1 − 0.12𝑥2 + 1.04𝑥3 = 1.398
Đưa hệ về dạng 𝑋 = 𝐶. 𝑋 + 𝐺
𝑥1 = −0.02𝑥1 + 0.05𝑥2 + 0.10𝑥3 + 0.795
ቐ 𝑥2 = 0.11𝑥1 − 0.03𝑥2 + 0.05𝑥3 + 0.849
𝑥3 = 0.11𝑥1 + 0.12𝑥2 − 0.04𝑥3 + 1.398
Với
−0.02 0.05 0.10 0.795
𝐶 = 0.11 −0.03 0.05 ; 𝐺 = 0.849
0.11 0.12 −0.04 1.398
FETEL-HCMUS 2023 106

Phương pháp lặp Jacobi


Với
−0.02 0.05 0.10 0.795
𝐶 = 0.11 −0.03 0.05 ; 𝐺 = 0.849
0.11 0.12 −0.04 1.398
Để kiểm tra điều kiện hội tụ, tính chuẩn ma trận C
3

෍ 𝐶1𝑗 = 0.02 + 0.05 + 0.10 = 0.17 < 1;


𝑗−1
3

෍ 𝐶2𝑗 = 0.11 + 0.03 + 0.05 = 0.19 < 1;


𝑗−1
3

෍ 𝐶3𝑗 = 0.11 + 0.12 + 0.04 = 0.27 < 1;


𝑗−1
Như vậy 𝐶 = max 0.17 0.19 0.27 = 0.27 < 1
=> Phương pháp lặp hội tụ
FETEL-HCMUS 2023 107

Phương pháp lặp Jacobi


𝑥1 = −0.02𝑥1 + 0.05𝑥2 + 0.10𝑥3 + 0.795
ቐ 𝑥2 = 0.11𝑥1 − 0.03𝑥2 + 0.05𝑥3 + 0.849 Kết quả như sau:
𝑥3 = 0.11𝑥1 + 0.12𝑥2 − 0.04𝑥3 + 1.398
𝒌 0 1 2 3
𝑘 0.795 0.962 0.978 0.980
Chọn xấp xỉ ban đầu 𝑥 (0) =𝐺 𝑥1
0.795 𝑥2
𝑘 0.849 0.982 1.002 1.004
𝑥 (0) = 0.849
𝑘 1.398 1.532 1.560 1.563
1.398 𝑥3
Tính các xấp xỉ tiếp theo bằng công Sai số: 𝑥 (3) − 𝛼 = 1−
𝐶 3
. 𝑥 3
−𝑥 2
thức lặp 𝐶
0.27
𝑥 (𝑘) = 𝐶. 𝑥 (𝑘−1) + 𝐺 ; (𝑘 ≥ 1) ≤ 0.003 = 1.1. 10−3
1 − 0.27
𝑘 𝑘−1 𝑘−1 𝑘−1
𝑥1 = −0.02𝑥1 + 0.05𝑥2 + 0.10𝑥3 + 0.795
𝑘 𝑘−1 𝑘−1 𝑘−1
𝑥2 = 0.11𝑥1 − 0.03𝑥2 + 0.05𝑥3 + 0.849
𝑘 𝑘−1 𝑘−1 𝑘−1
𝑥3 = 0.11𝑥1 + 0.12𝑥2 − 0.04𝑥3 + 1.398
FETEL-HCMUS 2023 108

Bài tập phương pháp lặp Jacobi

Làm ví dụ: tính tay và trên Matlab


Viết hàm function x = jacobi(A,b)
Thực hiện 2 ví dụ: các phép tính lấy đến 4 số lẻ thập phân
VD 1 (4.4/159 – GT PPT&Matlab - Lê Trọng Vinh, Trần Minh Toàn
A=[-8 1 1; 1 -5 1; 1 1 -4]; %x=[-1 -4 -3]’
b=[1 16 7]';
x0=b;
error=1e-4;
max1=15;
[x,num_loops]=jacobi_loop(A,b,x0,error,max1)

VD 2
A=[1.02 -0.25 -0.3; -0.41 1.13 -0.15; -0.25 -0.14 1.21];
b=[0.515 1.555 2.780]’ ; % x=[2, 2.5 3]
x0=b;
error=1e-4;
max1=15;
[x,num_loops]=jacobi_loop(A,b,x0,error,max1)
FETEL-HCMUS 2023 109

Phương pháp lặp Jacobi


VD: Giải hệ phương trình bằng phương pháp lặp đơn với 3 lần lặp, đánh giá
sai số 𝐴. 𝑋 = 𝐵 A=[-8 1 1; 1 -5 1; 1 1 -4] b=[1 16 7]';
−8𝑥1 + 𝑥2 + 1𝑥3 = 1
ቐ 𝑥1 − 5𝑥2 + 𝑥3 = 16
𝑥1 + 𝑥2 − 4𝑥3 = 7
Đưa hệ về dạng 𝑋 = 𝐶. 𝑋 + 𝐺
𝑥1 = 9𝑥1 − 𝑥2 − 𝑥3 + 1 𝑥1 = (−𝑥1 −𝑥2 − 𝑥3 + 1)/(−9)
ቐ𝑥2 = −𝑥1 + 6𝑥2 − 𝑥3 + 16 ቐ𝑥2 = (−𝑥1 − 𝑥2 − 𝑥3 + 16)/(−6)
𝑥3 = −𝑥1 − 𝑥2 + 5𝑥3 + 7 𝑥3 = (−𝑥1 − 𝑥2 − 𝑥3 + 7)/(−5)
Với
1/9 1/9 1/9 1/(−9)
𝐶 = 1/6 1/6 1/6 ; 𝐺 = 16/(−6)
1/5 1/5 1/5 7/(−5)

3
𝐶 = max 3/9 3/6 3/5 = <1
5
FETEL-HCMUS 2023 110

Bài tập phương pháp lặp Jacobi

Làm ví dụ: tính tay và trên Matlab


Viết hàm function x = jacobi(A,b)
Thực hiện 2 ví dụ: các phép tính lấy đến 4 số lẻ thập phân
(4.4/159 – GT PPT&Matlab - Lê Trọng Vinh, Trần Minh Toàn

VD 3 Không hội tụ (||C||>1)


A=[2 3 -4 1; 1 -2 -5 1; 5 -3 1 -4; 10 2 -1 2];
b=[3 2 1 -4]'
x0=b;
error=1e-4;
max1=100;
[x,num_loops]=jacobi_loop(A,b,x0,error,max1)
FETEL-HCMUS 2023 111

Phương pháp lặp Gauss-Seidel


Xét hệ phương trình có dạng: 𝐴. 𝑋 = 𝐵 A: phải là ma trận đường chéo trội
Nếu ma trận 𝐴 có tất cả các số hạng 𝑎𝑖𝑗 ≠ 0. Hệ phương trình sẽ được tính theo
công thức: 𝑏1 − 𝑎12 𝑥2 − 𝑎13 𝑥3
𝑥1 =
𝑎11 𝑥1 + 𝑎12 𝑥2 + 𝑎13 𝑥3 = 𝑏1 𝑎11
𝑏2 − 𝑎21 𝑥1 − 𝑎23 𝑥3
ቐ 𝑎21 𝑥1 + 𝑎22 𝑥2 + 𝑎23 𝑥3 = 𝑏2 𝑥2 =
𝑎31 𝑥1 + 𝑎32 𝑥2 + 𝑎33 𝑥3 = 𝑏3 𝑎22
𝑏3 − 𝑎31 𝑥1 − 𝑎32 𝑥2
𝑥3 =
𝑎33
Phương pháp lặp: tính các giá trị 𝑥𝑖 ở chu kỳ đầu tiên
• Tính 𝑥1 khi giả sử 𝑥2 = 0 và 𝑥3 = 0
• Tính 𝑥2 với nghiệm đã tính 𝑥1 và giả sử 𝑥3 = 0
• Tính 𝑥3 với nghiệm đã tính 𝑥1 và 𝑥2
• Tính 𝑥1 , 𝑥2 , 𝑥3 theo các chu kỳ tiếp theo
Sai số được tính theo công thức:
𝑗 𝑗−1
𝑥𝑖 − 𝑥𝑖
𝜀𝑎,𝑖 𝑗
100% < 𝜀𝑠
𝑥𝑖
FETEL-HCMUS 2023 112

Phương pháp lặp Gauss-Seidel


86

PP Gauss-Seidel là phương pháp lặp được dùng khá thông dụng.


PP này giống pp lặp Jacobi ngoại trừ:
Giá trị mới của x (nghĩa là xk) được thay thế vào các phương trình bên dưới
(các phương trình k+1, k+2, …, n) trong cùng bước lặp

Ví dụ: Xét trường hợp 3x3:

b1 − a12 x old − a x old


x1new = 2 13 3
• Chọn giá trị khởi tạo cho các biến x.
a11
(cách đơn giản là giả sử chúng bằng zero)
b2 − a 21 x1new − a 23 x3old
xnew
2
= • Tính x1 dùng các giá trị có được từ
a 22
bước lặp trước
b − a x new
− a x new
x3new = 3 31 1 32 2 • Giá trị x1 mới được dùng để tính x2 và x3
a 33
{ X }old  { X }new
FETEL-HCMUS 2023 113

Phương pháp lặp Gauss-Seidel


VD: Cho hệ phương trình giả sử 𝑥3 = 0

Vậy
Biến đổi ta có

Chu kỳ lặp tiếp theo

giả sử 𝑥2 = 0 và 𝑥3 = 0

Sai số
FETEL-HCMUS 2023 114

Bài tập phương pháp lặp Gauss-Seidel

Làm ví dụ: tính tay và trên Matlab


Viết hàm function x = gauss_seidel(A,b)

Thực hiện 2 ví dụ: các phép tính lấy đến 4 số lẻ thập phân
VD1
A=[3 -0.1 -0.2; 0.1 7 -0.3; 0.3 -0.2 10];
b=[7.85 -19.3 71.4]';
error = 0.001;
x = gauss_seidel(A,b,error)

VD 2 (3/76 – PPT trong kỹ thuật – Đặng Quốc Lương


A=[2 6 -1 -1; -2 1 -1 6; 4 1 1 1; 0 1 -4 1];
b=[11 11 9 0]';
error = 0.04;
x = gauss_seidel(A,b,error)
FETEL-HCMUS 2023 115

CHƯƠNG 10

Nội suy, khớp dữ liệu với đường cong/thẳng

Mục tiêu Chủ đề


Khảo sát các đa thức nội • Nội suy
suy và phương pháp làm • Khớp dữ liệu vào
khớp dữ liệu đo vào đường cong/thẳng
đường cong/thẳng
FETEL-HCMUS 2023 116

Các chủ đề PP Tính


FETEL-HCMUS 2023 117

Đặt vấn đề
Hai cách tiếp cận
 Tìm một (hay nhiều) đường đi qua các
điểm dữ liệu
=> Nội/ngoại suy
 Tìm một đường biểu diễn thể hiện khuynh
hướng thay đổi của dữ liệu
=> hồi quy (làm khớp/curver fitting)

Hai dạng bài toán ứng dụng trong kỹ thuật


 Phân tích khuynh hướng dữ liệu: Dự
đoán giá trị, dùng nội suy hay ngoại suy
 Kiểm tra giả thuyết: so sánh giá trị lý
thuyết của mô hình với dữ liệu đo thực tế
FETEL-HCMUS 2023 118

Đặt vấn đề:


 Hãy tìm vận tốc của tên lửa tại t=16s?

t (s) v(t) (m/s)


0 0
10 227.04
15 362.78
20 517.35
22.5 602.97
30 901.67

https://spaceflightnow.com
FETEL-HCMUS 2023 119

Giải pháp

Xây dựng hàm (t) đi


(t)
qua các nút giá trị và
tìm  (t=16s)

(16)
->Bài toán nội suy
 (t): là hàm nội suy
FETEL-HCMUS 2023 120

Nội suy và ngoại suy

Ngoại suy là phương pháp ước


tính giá trị (tương lai) chưa biết dựa
vào các giá trị (quá khứ) đã biết. ...

Nội suy, tức dự báo giá trị của biến


phụ thuộc từ giá trị của biến độc lập
nằm trong khoảng biến thiên của
kết quả quan sát cho nó, kết quả
dự báo đáng tin cậy hơn.
FETEL-HCMUS 2023 121

Nội suy
Trong thực tế ta thường gặp bài toán:
bằng đo đạc hay thực nghiệm ta có 𝐹(𝑥)
được giá trị của hàm số 𝑦 = 𝑓(𝑥) tại
các điểm 𝑥0 , 𝑥1 , … , 𝑥n trên đoạn [𝑎, 𝑏]
là 𝑦0 , 𝑦1 , … , 𝑦n trong khi chưa biết biểu
thức giải tích của hàm số đó. Yêu cầu
tìm giá trị của hàm tại một số điểm
trung gian khác.

Để giải bài toán trên, ta xây dựng


hàm 𝐹(𝑥) có biểu thức đơn giản, có
giá trị trùng với giá trị của hàm 𝑓(𝑥)
tại 𝑥0 , 𝑥1 , … , 𝑥n . Còn tại các điểm khác
thì 𝐹(𝑥) gần với 𝑓 𝑥 . Bài toán xây
dựng 𝐹(𝑥) là bài toán nội suy. Thông
thường chọn
𝐹 𝑥 = 𝑃𝑛 (𝑥): đa thức nội suy bậc n
FETEL-HCMUS 2023 122

Đa thức nội suy

  (t): là hàm nội suy. Thường chọn  (t) là đa


thức vì:

 Đa thức dễ tính toán


 Dễ lấy đạo hàm và nguyên hàm

  (t) => P(t) Polynomial

Đa thức nội suy có thể xây dựng theo nhiều cách nhưng
thường được chọn kiểu Polynomial do tính chất duy nhất
FETEL-HCMUS 2023 123

Các pp xây dựng đa thức nội suy

 Trực tiếp
 Đa thức Lagrange
 Đa thức Newton
 Đa thức Chebyshev
 Hàm Spline
FETEL-HCMUS 2023 124

Phương pháp trực tiếp


FETEL-HCMUS 2023 125

Phương pháp trực tiếp

Pn(x)
FETEL-HCMUS 2023 126

Nội suy bậc 1 (tuyến tính)

Đa thức bậc 1: P1(x) = a0 + a1x Tìm v(16) ?


FETEL-HCMUS 2023 127

Nội suy bậc 2 t


0
v(t)
0
10 227.04
15 362.78
Đa thức bậc 2: P2(x) = a0 + a1x+ a2x2 20 517.35
22.5 602.97
30 901.67
FETEL-HCMUS 2023 128

Nội suy bậc 3 t


0
v(t)
0
10 227.04
15 362.78
Đa thức bậc 3: P3(x) = a0 + a1t + a2t2 + a3t3 20 517.35
22.5 602.97
Cần 4 điểm dữ liệu: chọn t=10, 15, 20 và 22.5
30 901.67
FETEL-HCMUS 2023 129

Kết quả mở rộng

 Sau khi có được phương trình vận tốc theo


thời gian, có thể tính quãng đường và gia tốc.
 Ước tính quãng đường tên lửa bay được trong

thời gian từ 11s tới 16s? [KQ:1605 m]


Ước tính gia tốc của tên lửa tại t=16s?

[KQ: 29,6m/s2]
FETEL-HCMUS 2023 130

Đa thức nội suy Lagrange


Với các nút không cách đều

Xét bài toán nội suy có 𝑎 = 𝑥0 < 𝑥1 < ⋯ < 𝑥𝑛 = 𝑏 𝑥−2 𝑥−3 𝑥−4 𝑥−7
𝑃4 𝑥 = 17
Đa thức nội suy Largrange Pn(x) có dạng 1−2 1−3 1−4 1−7
𝑛
𝑥−1 𝑥−3 𝑥−4 𝑥−7
𝑃𝑛 𝑥 = ෍ 𝑦𝑗 𝐿𝑗 𝑥 +17.5
𝑗=0 2−1 2−3 2−4 2−7
𝑥 − 𝑥0 𝑥 − 𝑥1 . . . 𝑥 − 𝑥𝑗−1 𝑥 − 𝑥𝑗+1 . . . 𝑥 − 𝑥𝑛 𝑥−1 𝑥−2 𝑥−4 𝑥−7
𝐿𝑗 𝑥 = +76
𝑥𝑗 − 𝑥0 𝑥𝑗 − 𝑥1 . . . 𝑥𝑗 − 𝑥𝑗−1 𝑥𝑗 − 𝑥𝑗+1 . . . 𝑥𝑗 − 𝑥𝑛 3−1 3−2 3−4 3−7
1 𝑘ℎ𝑖 𝑖=𝑗 𝑥−1 𝑥−2 𝑥−3 𝑥−7
Tính chất: 𝐿𝑗 𝑥 = ቊ để 𝑃𝑛 𝑥𝑖 = 𝑦𝑖 +210.5
0 𝑘ℎ𝑖 𝑖≠𝑗 4−1 4−2 4−3 4−7
𝑥−1 𝑥−2 𝑥−3 𝑥−4
Sai số nội suy có biểu thức +1970
7−1 7−2 7−3 7−4
𝑀
𝑟𝑛 𝑥 ≤ ς 𝑥 = 2𝑥 4 − 17𝑥 3 + 81𝑥 2 − 153.5𝑥 + 104.5
𝑛+1 !

Với 𝑀 = max 𝑓 𝑛+1


𝑥 ; ∀𝑥 ∈ [a, b] Giá trị của hàm tại x = 5:
ς 𝑥 = 𝑥 − 𝑥0 𝑥 − 𝑥1 . . . 𝑥 − 𝑥𝑛 𝑃4 5 = 2.54 − 17.53 + 81.52 − 153.5x5 + 104.5
Vd: Cho bảng giá trị của hàm f(x), tìm đa thức nội suy = 487
và tính giá trị tại x=5 Hạn chế Largrange: Khi thêm mốc nội suy,
i 0 1 2 3 4 phải tính lại toàn bộ đa thức
𝑥𝑖 1 2 3 4 7 => Đa thức nội suy Newton khắc phục
𝑦𝑖 17.0 17.5 76.0 210.5 1970.0
FETEL-HCMUS 2023 131

Đa thức nội suy Lagrange


Với các nút không cách đều

𝑛
𝑃𝑛 𝑥 = ෍ 𝑦𝑗 𝐿𝑗 𝑥
𝑗=0
𝑥 − 𝑥0 𝑥 − 𝑥1 . . . 𝑥 − 𝑥𝑗−1 𝑥 − 𝑥𝑗+1 . . . 𝑥 − 𝑥𝑛
𝐿𝑗 𝑥 =
𝑥𝑗 − 𝑥0 𝑥𝑗 − 𝑥1 . . . 𝑥𝑗 − 𝑥𝑗−1 𝑥𝑗 − 𝑥𝑗+1 . . . 𝑥𝑗 − 𝑥𝑛

function [l, L] = noisuy_lagrange(x, y)



n = length(x) - 1; %bac cua da thuc
l = 0;
for m = 1:n + 1
p = 1;
for k = 1:n + 1
if k ~= m
p = conv(p,[1-x(k)])/(x(m)-x(k));
%conv: Hàm cộng và nhân đa thức
end
end
L(m,:) = p; %da thuc Lagrange
l = l + y(m)*p; % he so cua P
end
FETEL-HCMUS 2023 132

Bài tập phương pháp nội suy Lagrange


Với các nút không cách đều

Làm ví dụ: tính tay và trên Matlab


Viết hàm function [l, L] = noisuy_lagrange(x, y)

Dùng Matlab kiểm tra kết quả ví dụ trang 128

Thực hiện 2 ví dụ: các phép tính lấy đến 4 số lẻ thập phân
VD1: Cho bảng giá trị x và y, tính giá trị nội suy tại y(1.5).
Lưu ý sai số
𝑥+1 𝑥−1 𝑥−2
𝑃3 𝑥 = −6
x = [-2 -1 1 2]; −2 + 1 −2 − 1 −2 − 2
y = [-6 0 0 6]; Pn(x)? Tính tay. +0 𝑥+2 𝑥−1 𝑥−2
−1 + 2 −1 − 1 −1 − 2
l = noisuy_lagrange(x, y); 𝑥+2 𝑥+1 𝑥−2
+0
yx = polyval(l, 1.5) 1+2 1+1 1−2
𝑥+2 𝑥+1 𝑥−1
+6 = 𝑥3 − 𝑥
2+2 2+1 2−1
VD2: BT1/27 – PPT trong kỹ thuật – Đặng Quốc Lương
FETEL-HCMUS 2023 133

Đa thức nội suy Newton


Với các nút cách đều

Xét bài toán nội suy có 𝑎 = 𝑥0 < 𝑥1 < ⋯ < 𝑥𝑛 = 𝑏, các nút xi cách đều nhau
𝑏−𝑎
ℎ = 𝑥𝑖 − 𝑥𝑖−1 = , (𝑖 = 1: 𝑛) gọi là các bước từ mốc 𝑥𝑖−1 đến 𝑥𝑖
𝑛

Sai phân hữu hạn của 𝑦 = 𝑓(𝑥) như sau:


- Sai phân cấp 1: ∆𝑦𝑖 = 𝑦𝑖+1 − 𝑦𝑖
- Sai phân cấp 2: ∆2 𝑦𝑖 = ∆𝑦𝑖+1 − ∆𝑦𝑖
- Sai phân cấp 3: ∆3 𝑦𝑖 = ∆2 𝑦𝑖+1 − ∆2 𝑦𝑖
- Sai phân cấp n: ∆𝑛 𝑦𝑖 = ∆𝑛−1 𝑦𝑖+1 − ∆𝑛−1 𝑦𝑖
Sai số được đánh giá:
∆𝑦𝑖−1
𝛥𝑛+1 𝑦0 𝑛
𝑅𝑛 𝑥 ≈ ς𝑘=0 𝑡−𝑘
𝑛+1 !
Đặt 𝑥 = 𝑥0 + ℎ𝑡
suy ra
𝑥 − 𝑥0 = ℎ𝑡
𝑥 − 𝑥1 = ℎ 𝑡 − 1
...
𝑥 − 𝑥𝑘 = ℎ 𝑡 − 𝑘 𝑎 ℎ 𝑏
FETEL-HCMUS 2023 134

Đa thức nội suy Newton


Với các nút xi cách đều

Bảng sai phân hữu hạn xi yi


2 2 Newton tiến
- Sai phân cấp 1: ∆𝑦𝑖 = 𝑦𝑖+1 − 𝑦𝑖 𝑥ҧ yi 2
2
xi yi yi
- Sai phân cấp 2: ∆2 𝑦𝑖 = ∆𝑦𝑖+1 − ∆𝑦𝑖 1 1 2
3
yi 1 − yi 2
- Sai phân cấp n: ∆𝑛 𝑦𝑖 = ∆𝑛−1 𝑦𝑖+1 − ∆𝑛−1 𝑦𝑖 xi yi −
2
yi 1 −
4
yi 2
− yi 3
yi
− 1
𝑥ҧ − 𝑥0 xi yi −
2
yi
𝑡= 1 1

ℎ 𝑥ҧ yi 1

(𝑥ҧ là điểm cần xác định 𝑓(𝑥))


ҧ xi 2
yi 2
Newton lùi

Đa thức nội suy Newton tiến có mốc nội suy cách đều:
𝑡 𝑡 𝑡−1 2 𝑡 𝑡 − 1 ... 𝑡 − 𝑛 + 1 𝑛
𝑃𝑛 𝑥 = 𝑃𝑛 𝑥0 + ℎ𝑡 = 𝑦0 + 𝛥𝑦0 + 𝛥 𝑦0 +. . . + 𝛥 𝑦0
1! 2! 𝑛!
Đa thức nội suy Newton lùi có mốc nội suy cách đều:
𝑡 𝑡 𝑡+1 2 𝑡 𝑡 + 1 ... 𝑡 + 𝑛 − 1 𝑛
𝑃𝑛 𝑥 = 𝑃𝑛 𝑥n + ℎ𝑡 = 𝑦n + 𝛥𝑦n−1 + 𝛥 𝑦n−2 +. . . + 𝛥 𝑦0
1! 2! 𝑛!
FETEL-HCMUS 2023 135

Đa thức nội suy Newton


Với các nút cách đều

Đa thức nội suy Newton tiến có mốc nội suy cách đều:
𝑡 𝑡 𝑡−1 2 𝑡 𝑡 − 1 ... 𝑡 − 𝑛 + 1 𝑛
𝑃𝑛 𝑥 = 𝑃𝑛 𝑥0 + ℎ𝑡 = 𝑦0 + 𝛥𝑦0 + 𝛥 𝑦0 +. . . + 𝛥 𝑦0
1! 2! 𝑛!
VD: Tính giá trị của tích phân i 0 1 2 3 4 5 6
𝑥
2 2
𝒙 1.4 1.5 1.6 1.7 1.8 1.9 2.0
𝛷 𝑥 = න 𝑒 −𝑡 𝑑𝑡 y = 𝛷𝑥 𝑥 0.9523 0.9661 0.9763 0.9838 0.9891 0.9928 0.9953
𝑥
0
được cho trong bảng sau ℎ = 0.1
ҧ 0
𝑥−𝑥 1.43−1.4
Tìm giá trị gần đúng của 𝛷 1.43 gần đầu bảng => Dùng Newton tiến với 𝑡 = = = 0.3
ℎ 0.1
𝒙 𝛷𝑥 𝑥 ∆𝛷 ∆𝟐 𝛷 ∆𝟑 𝛷 ∆𝟒 𝛷 ∆𝟓 𝛷 ∆𝟔 𝛷
Lập bảng sai phân, 1.4 0.9523 … … … … … …
các cột ∆ được nhân hệ số 10−4 … … − 138 … … … … …
1.5 0.9661 … − -36 … … … …
Áp dụng công thức Newton tiến … … 102 … − 9 … … …
𝛷 1.43 ≈ 0.95686 1.6 0.9763 … -27 … − -4 … …
… … 75 … 5 … − 5 …
Nhận xét: sai số giữa đa thức 1.7 0.9838 … -22 … 1 … − -8
Nội suy và hàm thực có xu … … 53 … 6 … -3 …
1.8 0.9891 … -16 … -2 … …
hướng tăng tại hai mút nội suy … … 37 … 4 … … …
1.9 0.9928 … -12 … … … …
Bài tập: Tìm 𝛷 1.83 , 𝛷 1.62 … … 25 … … … … …
2.0 0.9953 … … … … … …
FETEL-HCMUS 2023 136

Đa thức nội suy Newton


Với các nút cách đều

Đa thức nội suy Newton tiến có mốc nội suy cách đều:
𝑡 𝑡 𝑡−1 2 𝑡 𝑡 − 1 ... 𝑡 − 𝑛 + 1 𝑛
𝑃𝑛 𝑥 = 𝑃𝑛 𝑥0 + ℎ𝑡 = 𝑦0 + 𝛥𝑦0 + 𝛥 𝑦0 +. . . + 𝛥 𝑦0
1! 2! 𝑛!
FETEL-HCMUS 2023 137

Đa thức Newton
Đa thức nội suy Newton tiến có mốc nội suy cách đều:
𝑡 𝑡 𝑡−1 2
𝑃𝑛 𝑥 = 𝑃𝑛 𝑥0 + ℎ𝑡 = 𝑦0 + 𝛥𝑦0 + 𝛥 𝑦0 + ⋯
1! 2!
𝑡 𝑡 − 1 ... 𝑡 − 𝑛 + 1 𝑛
+ 𝛥 𝑦0
𝑛!
N = length(x) - 1;
DD = zeros(N + 1, N + 1);
DD(1:N + 1, 1) = y';
for k = 2:N + 1
for m = 1: N+2-k
DD(m,k)=(DD(m+1,k-1)-DD(m,k-1))/(x(m+k-1)-x(m));
end
end
a = DD(1, :);
n = a(N+1);
for k = N:-1:1
n = [n a(k)] - [0 n*x(k)];
end
FETEL-HCMUS 2023 138

Bài tập phương pháp nội suy Newton

Làm ví dụ: tính tay và trên Matlab


Viết hàm function [l, L] = noisuy_newton(x, y)

Thực hiện 2 ví dụ: các phép tính lấy đến 4 số lẻ thập phân
VD1: Cho x và y, tính giá trị nội suy tại y(1.5)
x = [-2 -1 1 2 4];
y = [-6 0 0 6 60];
a = noisuy_newton(x, y)

x = 1.4:0.1:2;
y = [0.9523 0.9661 0.9763 0.9838 0.9891 0.9928 0.9953];
a = noisuy_newton(x, y)

VD2: BT2/27 – PPT trong kỹ thuật – Đặng Quốc Lương

So sánh các kết quả và sai số với nội suy Lagrange


FETEL-HCMUS 2023 139

Bài tập
t(s) v(m/s)
Tìm v(t=16s) như ở ví dụ trước bằng đa 10 227.04
thức Lagrange và Newton 15 362.78
20 517.35
22.5 602.97
to = 10, v (t o ) = 227.04 t1 = 15, v (t1 ) = 362.78
t = 20, v(t )= 517.35 t = 22.5, v(t ) = 602.97
2 2 3 3

3 t tj t t1  t t2  t t 3 
L0 (t) =  t = t1 t0 t 2  t0 t3 ;
j =0 0 tj  0t   t t  t t  t t   t t  t t  t t 
j 0 v (t ) =  1  2  3 
v (t1 )+   t t  t t v (t 2 )
0  2 3

 t0 t1  t0 t2  t0 t3   1 0  1 2  1 3 
t t
3 t tj  t t 0  t t 2  t t3  t  
L1 (t ) =  =      t t1  t t t2 
v(t )+ 2 v(t )
t0  t t1  t t3  1  t
 t t  +     
j =0 1 t tj  1 0  1 2 t1
t t t3  t t t t t t t t t t t t
3

j 1
 2 0  2 1  2 3   3 1  3 1  3 2 
v(16)=  16 
15 16 20 16 22.5 (
 
)+  16 10 16 20 16 22.5  362.78

( )
3 t tj t t0  t t1  t t3   10 15   10 20 
 10 22.5 
 227.04  15 10  15 20  15 22.5 
L2 (t ) =  t = t t  t 1 t t 2 t3 ;
j =0 tj 2 0  2  16 10  16 15  16 22.5   16 10  16 15  16 20 
(517.35 )+  (602.97 )
2
j 2 +    
 20 10  20 15  20 22.5   22.5 10  22.5 15  22.5 20 
    = ( 0.0416)(227.04)+ (0.832)(362.78)+ (0.312)(517.35)+ ( 0.1024)(602.97)
L3 (t) = 
t tj
=  t t0  t t1  t t2 
3

 t t  t t  t t = 392.06 m/s
 3 0  3 1  3 2 
j =0 t3 t j
j 3
FETEL-HCMUS 2023 140

Đa thức Chebyshev
Đa thức nội suy Chebyshev (chọn mốc nội suy tối ưu)
Khi nội suy bằng đa thức Newton hay Lagrange, nghĩa là thay hàm thực bằng đa thức
xấp xỉ, có khoảng cách cách đều thì sai số giữa đa thức nội suy và hàm thực có xu
hướng tăng tại hai mút nội suy. Do vậy ta nên chọn các điểm mốc nội suy ở hai mút
dày hơn ở giữa.
Một trong những cách chọn phân bố các điểm mốc là hình chiếu lên trục x của các
điểm cách đều trên đường tròn tâm tại điểm giữa của đoạn nội suy.

Trong khoảng [-1,1], điểm mốc x’:

Trong khoảng [a,b] bất kỳ


FETEL-HCMUS 2023 141

Đa thức Chebyshev
Với đoạn nội suy [‐1, 1] ta có đa thức Chebyshev loại 1
𝑇 𝑥 = 1, 𝑇1 𝑥 = 𝑥
ቊ 0
𝑇𝑛+1 𝑥 = 2. 𝑥. 𝑇𝑛 𝑥 − 𝑇𝑛−1 𝑥
Với đoạn [a, b] bất kì ta có đa thức Chebyshev loại 2
𝑈0 𝑥 = 1, 𝑈1 𝑥 = 1

𝑈𝑛+1 𝑥 = 2. 𝑥. 𝑈𝑛 𝑥 − 𝑈𝑛−1 𝑥 , ∀𝑛 ≥ 1
Các nút nội suy này được gọi là các nút Chebyshev. Đa
thức nội suy dựa trên các nút Chebyschev gọi là đa thức
nội suy Chebyshev Nội suy cách đều (Largrange, Newton)

Hệ số của đa thức nội suy Chebyshev

Nội suy với Chebyshev


FETEL-HCMUS 2023 142

Đa thức Chebyshev

Biểu diễn đa thức nội suy Chebyshev

So sánh kết quả dùng đa thức trên Matab


Lagrange – Newton - Chebyshev
FETEL-HCMUS 2023 143

Nội suy Spline


Nội suy dùng đa thức Spline bậc 1
bậc cao đôi khi dẫn tới
Spline bậc 3
sai số lớn do overshoot.
Giải pháp:
Dùng đa thức bậc thấp
cho một tập con dữ liệu.
Spline bậc 5 Các đa thức này gọi là Spline bậc 2

các hàm SPLINE


Spline là một hàm đặc biệt
được xác định từng phần bởi
các đa thức. Trong các bài toán
Spline bậc 7
nội suy, nội suy spline thường
Spline kết hợp
được ưu tiên hơn nội suy đa
thức vì nó cho kết quả tương tự
ngay cả khi sử dụng đa thức
bậc thấp, đồng thời tránh hiện
tượng Runge (dao động giữa
7 Spline tuyến các điểm dữ liệu) cho bậc cao
tính bậc 1 hơn
FETEL-HCMUS 2023 144

Nội suy Spline


Với n lớn, đa thức nội suy bậc rất lớn, khó xây dựng và khó ứng dụng.

Thay đa thức nội suy bậc n bằng các đa thức bậc thấp (≤ 3) trên từng
đoạn 𝑥𝑘 , 𝑥𝑘+1 , 𝑘 = 0,1, … , 𝑛 − 1

Cho hàm 𝑦 = 𝑓 𝑥 xác định trên đoạn [𝑎, 𝑏]


Gọi g(x) là Spline bậc 3 nội suy hàm f(x) thỏa các điều kiện sau:

• g(x) có đạo hàm đến cấp 2 liên tục trên [a,b]


• g(x)=gk(x) là 1 đa thức bậc 3 trên [xk, xk+1], k=0,1,..,n-1
• g(xk) = yk , k=0,1, …, n
FETEL-HCMUS 2023 145

Nội suy Spline


Cách xây dựng Spline bậc 3

Đặt ℎ𝑘 = 𝑥𝑘+1 − 𝑥𝑘
ℎ𝑘
𝑔𝑘 (𝑥) là đa thức bậc 3 nên có thể viết dưới dạng
2 3
𝑔𝑘 𝑥 = 𝑎𝑘 + 𝑏𝑘 𝑥 − 𝑥𝑘 + 𝑐𝑘 𝑥 − 𝑥𝑘 + 𝑑𝑘 𝑥 − 𝑥𝑘
Các hệ số 𝑎𝑘 , 𝑏𝑘 , 𝑑𝑘 được xác định theo các công thức (khi 𝑥 = 𝑥𝑘 thì 𝑔𝑘 𝑥𝑘 = 𝑎𝑘 = 𝑦𝑘 )
𝑎𝑘 = 𝑦𝑘 ;
𝑦𝐾+1 −𝑦𝑘 𝑐𝐾+1 +2𝑐𝑘 ℎ𝑘
𝑏𝑘 = − ;
ℎ𝑘 3

𝑐𝑘+1 −𝑐𝑘
𝑑𝑘 = 3ℎ𝑘

Và 𝑐𝑘 được tính bởi phương trình: A.c = b


3 𝑦𝑘+1 − 𝑦𝑘 3 𝑦𝑘 − 𝑦𝑘−1
ℎ𝑘−1 𝑐𝑘−1 + 2 ℎ𝑘−1 + ℎ𝑘 𝑐𝑘 + ℎ𝑘 𝑐𝑘+1 = − ;
ℎ𝑘 ℎ𝑘−1
∀𝑘 = 1,2, . . . , 𝑛 − 1
Spline có 2 trường hợp: điều kiện biên tự nhiên và biên ràng buộc
FETEL-HCMUS 2023 146

Nội suy Spline


2 3
𝑔𝑘 𝑥 = 𝑎𝑘 + 𝑏𝑘 𝑥 − 𝑥𝑘 + 𝑐𝑘 𝑥 − 𝑥𝑘 + 𝑑 𝑘 𝑥 − 𝑥𝑘
Spline bậc 3 với điều kiện biên tự nhiên
g”(x0)=0 và g”(xn)= 0 suy ra co = cn = 0
ℎ𝑘 = 𝑥𝑘+1 − 𝑥𝑘 ; 𝑘 = 0, 𝑛 − 1
Bước 1. Tính
𝑎𝑘 = 𝑦𝑘 ; 𝑘 = 0, 𝑛
Bước 2. Giải hệ 𝐴. 𝑐 = 𝑏 tìm 𝑐 = 𝑐0 , 𝑐1 , … , 𝑐𝑛 𝑇

Bước 3: Tính các hệ số 𝑏𝑘 , 𝑑𝑘


𝑦k+1 − 𝑦𝑘 𝑐k+1 + 2𝑐𝑘 ℎ𝑘 𝑐𝑘+1 − 𝑐𝑘
𝑏𝑘 = − ; 𝑑𝑘 =
ℎ 3 3ℎ
FETEL-HCMUS 2023

Nội suy Spline bậc 3


147

2 3
𝑔𝑘 𝑥 = 𝑎𝑘 + 𝑏𝑘 𝑥 − 𝑥𝑘 + 𝑐𝑘 𝑥 − 𝑥𝑘 + 𝑑𝑘 𝑥 − 𝑥𝑘

Ví dụ : Xây dựng spline tự nhiên nội suy hàm theo bảng số


Ta có: n=3 g”(x0)=0 và g”(xn)= 0 suy ra co = cn = 0
ℎ𝑘 = 𝑥𝑘+1 − 𝑥𝑘 ; 𝑘 = 0, 𝑛 − 1
Bước 1: Tính
𝑎𝑘 = 𝑦𝑘 ; 𝑘 = 0, 𝑛
Bước 2: Giải hệ 𝐴. 𝑐 = 𝑏 tìm 𝑐 = 𝑐0 , 𝑐1 , … , 𝑐𝑛 𝑇

=>

Giải ta được co = c3 = 0, c1 = 2/5, c2 = 7/5 Kết quả: spline điều kiện biên tự nhiên
Bước 3: Tính các hệ số 𝑏𝑘 , 𝑑𝑘 2 3
𝑔𝑘 𝑥 = 𝑎𝑘 + 𝑏𝑘 𝑥 − 𝑥𝑘 + 𝑐𝑘 𝑥 − 𝑥𝑘 + 𝑑𝑘 𝑥 − 𝑥𝑘
FETEL-HCMUS 2023 148

Nội suy Spline


Spline bậc 3 với điều kiện biên ràng buộc
g’(a) = α, g’(b) = β xác định theo hai phương trình

Bước 1. Tính
ℎ𝑘 = 𝑥𝑘+1 − 𝑥𝑘 ; 𝑘 = 0, 𝑛 − 1
𝑎𝑘 = 𝑦𝑘 ; 𝑘 = 0, 𝑛
Bước 2. Giải hệ 𝐴. 𝑐 = 𝑏 tìm 𝑐 = 𝑐0 , 𝑐1 , … , 𝑐𝑛 𝑇

Bước 3: Tính các hệ số 𝑏𝑘 , 𝑑𝑘 như spline tự nhiên


𝑦k+1 − 𝑦𝑘 𝑐k+1 + 2𝑐𝑘 ℎ𝑘 𝑐𝑘+1 − 𝑐𝑘
𝑏𝑘 = − ; 𝑑𝑘 =
ℎ𝑘 3 3ℎ𝑘
FETEL-HCMUS 2023 149

Nội suy Spline


Ví dụ : Xây dựng spline ràng buộc nội suy hàm theo bảng số
Với điều kiện g’(0) = α = 0 và g’(2) = β = 0, (n=2)
ℎ𝑘 = 𝑥𝑘+1 − 𝑥𝑘 ; 𝑘 = 0, 𝑛 − 1
Bước 1: Tính
𝑎𝑘 = 𝑦𝑘 ; 𝑘 = 0, 𝑛
Bước 2: Giải hệ 𝐴. 𝑐 = 𝑏 tìm 𝑐 = 𝑐0 , 𝑐1 , … , 𝑐𝑛 𝑇
=>

Bước 3: Tính các hệ số 𝑏𝑘 , 𝑑𝑘 Kết quả: spline ràng buộc


như spline tự nhiên 𝑔𝑘 𝑥 = 𝑎𝑘 + 𝑏𝑘 𝑥 − 𝑥𝑘 + 𝑐𝑘 𝑥 − 𝑥𝑘 2
+ 𝑑 𝑘 𝑥 − 𝑥𝑘 3
FETEL-HCMUS 2023 150

Nội suy Spline


Ví dụ 1: Trên Matlab khảo sát spline biên tự nhiên nội suy hàm theo bảng số
Với điều kiện g’’(0) = 0 và g’’(2) = 0, (n=3)

Ví dụ 2: Trên Matlab khảo sát spline ràng buộc nội suy hàm theo bảng số
Với điều kiện g’(0) = α = 0 và g’(2) = β = 0, (n=2)

Bài tập: 5.1-5.8/trang 189-191 – Giáo trình PPT và Matlab -


Lê Trọng Vinh, Trần Minh Toàn
FETEL-HCMUS 2023 151

Đặt vấn đề: Làm khớp dữ liệu


Hai cách tiếp cận
 Tìm một (hay nhiều) đường đi qua các
điểm dữ liệu
=> Nội/ngoại suy
 Tìm một đường biểu diễn thể hiện khuynh
hướng thay đổi của dữ liệu
=> Hồi quy (làm khớp/curver fitting)

Hai dạng bài toán ứng dụng trong kỹ thuật


 Phân tích khuynh hướng dữ liệu: Dự
đoán giá trị, dùng nội suy hay ngoại suy
 Kiểm tra giả thuyết: so sánh giá trị lý
thuyết của mô hình với dữ liệu đo thực tế
FETEL-HCMUS 2023 152

Hồi quy bình phương tối thiểu


Least Squares Regression
Đặt vấn đề y

Bảng dữ liệu đo
x 1 2 3
y 5.1 5.9 6.3

•Có dữ liệu đo (xi,yi)


x
•Chưa biết rõ biểu thức biểu 1 2 3
diễn quan hệ giữa y và x
•Tìm biểu thức giải tích
y=f(x) khớp tốt nhất với dữ
liệu đo
FETEL-HCMUS 2023 153

Làm khớp/Curve Fitting x


1
y
0.5
2 1.7
3 3.4
4 5.7
 Cho/biết: 5 8.4

1. Bảng dữ liệu đo (data)


Cần tìm: các
2. Dạng (form) của hàm
liên hệ giữa các dữ liệu hệ số của
đo biểu thức
3. Tiêu chuẩn làm khớp
Linear f (x) = a + bx
(criteria) =>hàm tiêu chuẩn Quadratic f (x) = a + bx + cx2
n
Polynomial f (x) =  a k xk
k =0

Thường dùng: bình phương a,b,c =???


tối thiểu/ Least squares
FETEL-HCMUS 2023 154

Phương pháp bình phương cực tiểu


Phương pháp xấp xỉ hàm bằng đa thức nội suy có các nhược
điểm:
- Nhiều nút => bậc đa thức nội suy lớn, gây khó khăn trong
tính toán
- Các giá trị yi thu được bằng tính toán hoặc thực nghiệm
=> không chính xác, dễ dẫn đến sai số khi nội suy
- Nếu f(x) là hàm tuần hoàn thì xấp xỉ bằng đa thức không
phù hợp => nên xấp xỉ bằng lượng giác
Phương pháp bình phương cực tiểu: chọn hàm xấp xỉ P(x)
đơn giản hơn f(x), phụ thuộc vào một số tham số sao cho:
𝑛
𝑆 = ෌𝑖=1 𝑓 𝑥𝑖 − 𝑃 𝑥𝑖 2 là bé nhất. (S: hàm tiêu chuẩn)
FETEL-HCMUS 2023 155

Bình phương tối thiểu


ei Error
Least-Squares Fit : Tối thiểu hoá
(minimize) tổng bình phương sai
lệch giữa giá trị đo và giá trị được
tính dựa trên đường hồi quy lý thuyết
𝑛 2
𝑆= ෌𝑖=1 𝑓 𝑥𝑖 − 𝑃 𝑥𝑖

Ví dụ: khớp dữ liệu đo vào đường thẳng Line equation


(x1, y1), (x2, y2),…,(xn, yn) y = a0 + a1 x
yi : là giá trị đo
ei : sai lệch/ sai số/ error
yi = a0 + a1 xi + ei
ei = yi - a0 - a1 xi VD: Hồi quy tuyến tính: khớp
dữ liệu vào đường thẳng
FETEL-HCMUS 2023 156

Hồi quy tuyến tính y = ax+b


Trường hợp 𝑦 = 𝑎𝑥 + 𝑏
Thay 𝑓 𝑥𝑖 = 𝑦𝑖 và 𝑃(𝑥) = 𝑎𝑥 + 𝑏
𝑛
𝑆 = ෌𝑖=1(𝑦𝑖 − 𝑎𝑥𝑖 − 𝑏)2
Với 𝑥𝑖 , 𝑦𝑖 đã biết (i = 1: n), S phụ thuộc vào a,b
𝜕𝑆 𝜕𝑆
Để S nhỏ nhất thì a, b phải thỏa mãn hệ phương trình = 0, =0
𝜕𝑎 𝜕𝑏
𝑎. ෌ 𝑥𝑖2 + 𝑏 σ 𝑥𝑖 = σ 𝑥𝑖 𝑦𝑖
Hay ൝
𝑎 σ 𝑥𝑖 + 𝑏. 𝑛 = σ 𝑦𝑖
Giải hệ phương trình sẽ tìm được a, b
VD: Tìm hàm y=ax+b xấp xỉ bảng số:
Giải hệ phương trình:
𝑎 ෍ 𝑥𝑖2 + 𝑏 ෍ 𝑥𝑖 = ෍ 𝑥𝑖 𝑦𝑖
109𝑎 + 29𝑏 = 140 n xi yi − x  y
=ቊ a= i i
29𝑎 + 10𝑏 = 39 n x − ( x )
2 2
𝑎 ෍ 𝑥𝑖 + 𝑏. 𝑛 = ෍ 𝑦𝑖 i i

𝑏 = 𝑦ത − 𝑎𝑥ҧ
𝑎 = 1.0803, 𝑏 = 0.7671 => P(x)=1.0803x+0.7671
𝑦ത và 𝑥ҧ là giá trị trung bình
FETEL-HCMUS 2023 157

Ví dụ
x 6 7 11 15 17 21 23 29 29 37 39
 y = ax+b y 29 21 29 14 21 15 7 7 13 0 3

n xi yi
35

a= − x  y
i i
=
11* 2380 − 234*159
= −0.78055 30
n x − ( x ) 11*6262 − (234)
2 2 2
i i 25

20
ҧ 31.0589
𝑏 = 𝑦ത − 𝑎𝑥=
15
y = − 0.78055x + 31.0589 10

𝑛 2
𝑆= ෌𝑖=1 𝑓 𝑥𝑖 − 𝑃 𝑥𝑖 5

0
Tham khảo: một số giá trị thống kê 0 10 20 30 40 50
FETEL-HCMUS 2023 158

Hồi quy đa thức bậc 2


Trường hợp 𝑦 = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 (hoặc bậc cao hơn)
Thay 𝑓 𝑥𝑖 = 𝑦𝑖 và 𝑃(𝑥) = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐
𝑛
𝑆 = ෌𝑖=1(𝑦𝑖 − 𝑎𝑥𝑖2 − 𝑏𝑥𝑖 − 𝑐)2
𝜕𝑆 𝜕𝑆 𝜕𝑆
Để S nhỏ nhất thì a, b, c phải thỏa mãn hệ phương trình = 0, = 0, =0
𝜕𝑎 𝜕𝑏 𝜕𝑐
𝑎 ෌ 𝑥𝑖4 + 𝑏 ෌ 𝑥𝑖3 + 𝑐 ෌ 𝑥𝑖2 = ෌ 𝑦𝑖 𝑥𝑖2
Hay 𝑎 ෌ 𝑥𝑖3 + 𝑏 ෌ 𝑥𝑖2 + 𝑐 σ 𝑥𝑖 = σ 𝑦𝑖 𝑥𝑖
𝑎 ෌ 𝑥𝑖2 + 𝑏 σ 𝑥𝑖 + 𝑐𝑛 = σ 𝑦𝑖
Giải hệ phương trình sẽ tìm được a, b, c
VD: Tìm hàm y= 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 xấp xỉ bảng số:
Giải hệ phương trình, ta có:
𝑎 ෌ 𝑥𝑖4 + 𝑏 ෌ 𝑥𝑖3 + 𝑐 ෌ 𝑥𝑖2 = ෌ 𝑦𝑖 𝑥𝑖2
1061𝑎 + 253𝑏 + 65𝑐 = 61.70
𝑎 ෌ 𝑥𝑖3+ 𝑏 ෌ 𝑥𝑖2 + 𝑐 σ 𝑥𝑖 = σ 𝑦𝑖 𝑥𝑖 = ቐ 253𝑎 + 65𝑏 + 19𝑐 = 211.04 =>
𝑎 ෌ 𝑥𝑖2 + 𝑏 σ 𝑥𝑖 + 𝑐𝑛 = σ 𝑦𝑖 65𝑎 + 19𝑏 + 7𝑐 = 61.70

𝑎 = 0.69, 𝑏 = −0.71, c = 4.3 => P(x)=0.69𝑥 2 − 0.71𝑥 + 4.3


FETEL-HCMUS 2023 159

Hồi quy hàm lượng giác


Nếu f(x) là hàm tuần hoàn => nên xấp xỉ bằng lượng giác
Trường hợp 𝑦 = 𝑎 + 𝑏𝑐𝑜𝑠𝑥 + 𝑐𝑠𝑖𝑛𝑥
𝑛
𝑆 = ෌𝑖=1(𝑦𝑖 − 𝑎 − 𝑏. 𝑐𝑜𝑠𝑥𝑖 − 𝑐. 𝑠𝑖𝑛𝑥𝑖 )2
𝜕𝑆 𝜕𝑆 𝜕𝑆
Để S nhỏ nhất thì a, b, c phải thỏa mãn hệ phương trình 𝜕𝑎 = 0, 𝜕𝑏 = 0, =0
𝜕𝑐
𝑎. 𝑛 + 𝑏 σ cos𝑥𝑖 + 𝑐 σ sin𝑥𝑖 = σ 𝑦𝑖
2
Hay 𝑎 σ cos𝑥𝑖 + 𝑏 ෌ cos 𝑥𝑖 + 𝑐 σ sin𝑥𝑖 cos𝑥𝑖 = σ 𝑦𝑖 cos𝑥𝑖
𝑎 σ sin𝑥𝑖 + 𝑏 σ sin𝑥𝑖 cos𝑥𝑖 + 𝑐 ෌ sin2 𝑥𝑖 = σ 𝑦𝑖 sin𝑥𝑖
Giải hệ phương trình sẽ tìm được a, b, c
𝑃 𝑥 = 𝑎 + 𝑏𝑐𝑜𝑠𝑥 + 𝑐𝑠𝑖𝑛𝑥
VD:
x = [0 0.15 0.3 0.45 0.6…
0.75 0.9 1.05 1.2 1.3];
y = [2.2 1.595 1.031 0.722 0.786…
1.2 1.81 2.369 2.678 2.614];
[a, b, c, omega] = hoiquyluonggiac(x, y, T)
FETEL-HCMUS 2023 160

Hồi quy hàm mũ


Hàm xấp xỉ phụ thuộc tham số một cách phi tuyến (hàm mũ)

Nguyên tắc: tìm cách tuyến tính hóa

d. Trường hợp 𝑦 = 𝑎𝑒 𝑏𝑥
Log 2 vế ta có lg𝑦 = x. 𝑏lg𝑒 + lg𝑎
Đặt Y = lg𝑦, A = 𝑏lg𝑒, B = lg𝑎, X=x .
Ta có: Y = A.X + B (trường hợp a – tuyến tính)

e. Trường hợp 𝑦 = 𝑎𝑥 𝑏
Log 2 vế ta có lg𝑦 = 𝑏lgx + lg𝑎
Đặt Y = lg𝑦, A = 𝑏, B = lg𝑎, X=lgx .
Ta có: Y = A.X + B (trường hợp a – tuyến tính)
FETEL-HCMUS 2023 161

Ví dụ

Trường hợp 𝑦 = 𝑎𝑒 𝑏𝑥
Log 2 vế ta có lg𝑦 = x. 𝑏lg𝑒 + lg𝑎
Đặt Y = lg𝑦, A = 𝑏lg𝑒, B = lg𝑎, X=x .
Ta có: Y = A.X + B (trường hợp a – tuyến tính)

Xi 0.65 0.75 0.85 0.95 1.15


Yi -0.0177 0.0253 0.0682 0.1106 0.1987

3.9325𝐴 + 4.35𝐵 = 0.3989


𝐴 ෍ 𝑋𝑖2 + 𝐵 ෍ 𝑋𝑖 = ෍ 𝑋𝑖 𝑌𝑖 =ቊ
4.35𝐴 + 5𝐵 = 0.3850
𝐴 = 0.4321
=ቊ
𝐴 ෍ 𝑋𝑖 + 𝐵. 𝑛 = ෍ 𝑌𝑖 𝐵 = −0.2989
𝑛 𝑆1 = ?

A = 𝑏lg𝑒 = 0.4321 ⇒ 𝑏 =
0.4321
= 0.995, a = 0.5025 𝑆 = ෍(𝑦𝑖 − 𝑎𝑥𝑖 − 𝑏)2
lge 𝑖=1
𝑃(x) = 0.5025𝑒 0.995𝑥
FETEL-HCMUS 2023 162

Ví dụ

𝑆2 = ?
𝑛

𝑆 = ෍(𝑦𝑖 − 𝑎𝑥𝑖 − 𝑏)2


𝑖=1
FETEL-HCMUS 2023 163

Ví dụ
Khớp dữ liệu vào hàm mũ

y = axb
Y= A X + B
 log y = b log x + log a

xi yi Xi Yi
y = axb
1 0.5 0 -0.301
2 1.7 0.301 0.226
3 3.4 0.477 0.531
4 5.7 0.602 0.756
5 8.4 0.699 0.924

Hồi quy tuyến tính thu được:


log y = 1.75*log x – 0.300

b = 1.75 log(a) = - 0.3 => a = 0.5 Y= A X + B


FETEL-HCMUS 2023 164

Chọn dạng hàm phụ thuộc vào vị trí nghiệm trên đồ thị

Bài tập:
5.14-5.16/trang 191-192
– Giáo trình PPT và
Matlab - Lê Trọng Vinh,
Trần Minh Toàn
FETEL-HCMUS 2023 165

Bài tập 5.14/191


Trường hợp 𝑦 = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 (hoặc bậc cao hơn)
Thay 𝑓 𝑥𝑖 = 𝑦𝑖 và 𝑃(𝑥) = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐
𝑛
𝑆 = ෌𝑖=1(𝑦𝑖 − 𝑎𝑥𝑖2 − 𝑏𝑥𝑖 − 𝑐)2
𝜕𝑆 𝜕𝑆 𝜕𝑆
Để S nhỏ nhất thì a, b, c phải thỏa mãn hệ phương trình = 0, = 0, =0
𝜕𝑎 𝜕𝑏 𝜕𝑐
𝑎 ෌ 𝑥𝑖4 + 𝑏 ෌ 𝑥𝑖3 + 𝑐 ෌ 𝑥𝑖2 = ෌ 𝑦𝑖 𝑥𝑖2
Hay 𝑎 ෌ 𝑥𝑖3 + 𝑏 ෌ 𝑥𝑖2 + 𝑐 σ 𝑥𝑖 = σ 𝑦𝑖 𝑥𝑖
𝑎 ෌ 𝑥𝑖2 + 𝑏 σ 𝑥𝑖 + 𝑐𝑛 = σ 𝑦𝑖
Giải hệ phương trình sẽ tìm được a, b, c
VD: Tìm hàm y= 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 xấp xỉ bảng số:
Giải hệ phương trình, ta có:
𝑎 ෌ 𝑥𝑖4 + 𝑏 ෌ 𝑥𝑖3 + 𝑐 ෌ 𝑥𝑖2 = ෌ 𝑦𝑖 𝑥𝑖2
86996𝑎 + 7840𝑏 + 728𝑐 = 4088.4
𝑎 ෌ 𝑥𝑖3
+ 𝑏 ෌ 𝑥𝑖2 + 𝑐 σ 𝑥𝑖 = σ 𝑦𝑖 𝑥𝑖 = ቐ 7840𝑎 + 728𝑏 + 70𝑐 = 383.6 =>
𝑎 ෌ 𝑥𝑖2 + 𝑏 σ 𝑥𝑖 + 𝑐𝑛 = σ 𝑦𝑖 728𝑎 + 70𝑏 + 7𝑐 = 37.2

𝑎 = −0.1476, 𝑏 = 3.3667, c = −13=> P(x)=−0.1476𝑥 2 + 3.3667𝑥 − 13


FETEL-HCMUS 2023 166

CHƯƠNG 11

Tính gần đúng đạo hàm và tích phân


FETEL-HCMUS 2023
167

Tính gần đúng các đạo hàm và tích phân xác định

Integration
y f (xi + x) − f (xi )
b
= I =  f (x)dx
x x
a
dy f (xi + x) − f (xi )
= lim
dx x→0 x
Vi phân: Differentiation
Đạo hàm:
Derivative

Đạo hàm của hàm số f(x) tại điểm x0 biểu diễn sự biến thiên (hệ số góc
của đường tiếp tuyến) của hàm số y = f(x) tại điểm M0 (x0 ,f (x0 ))
FETEL-HCMUS 2023 168

Bài toán tính đạo hàm


t v(t) a(t) = v’(t)
s m/s m/s2  Hãy tìm gia tốc tại t =16s
 Gia tốc = a(t)=v’(t)
0 0 ?
10 227.04 ?
15 362.78 ?  tìm đạo hàm v’(t) tại t=16s
20 517.35 ?
22.5 602.97 ?
30 901.67 ?

Cần có các phương pháp tính (gần đúng) đạo


hàm f’(x) tại một điểm trung gian
• PP. Chuỗi Taylor (chiều tiến, chiều lùi, chiều
trung tâm)
• Ngoại suy Richardson
FETEL-HCMUS 2023 169

Khai triển chuỗi Taylor


Công thức khai triển Taylor: Cho hàm số 𝑓(𝑥) xác định và có đạo hàm đến cấp 𝑛 + 1
tại một lân cận của điểm 𝑥0. Khi đó ta có công thức khai triển Taylor bậc 𝑛 của 𝑓(𝑥i+1)
tại 𝑥i là

Theo công thức Taylor ta có


(1)

Khi ℎ bé thì ta có thể bỏ qua phần đạo hàm bậc 2 và cao hơn, công thức gần đúng
tính đạo hàm cấp một

Trong trường hợp không bỏ qua thành


phần đạo hàm bậc 2, ta có công thức
gần đúng tính đạo hàm cấp hai

Thay vào phương trình (1) ta có:

O(h) diễn tả sai số cắt cụt, tỉ lệ với h


O(h2) diễn tả sai số cắt cụt, tỉ lệ với h2
FETEL-HCMUS 2023 170

Khai triển chuỗi Taylor


Phương pháp sai phân thuận: xấp xỉ theo chiều tiến (từ xi -> xi+1 , xi+2 …)

sai số cắt cụt O(h)

sai số cắt cụt O(h2)

sai số cắt cụt O(h)

sai số cắt cụt O(h2)


FETEL-HCMUS 2023 171

Khai triển chuỗi Taylor


Phương pháp sai phân thuận: xấp xỉ theo chiều tiến (từ xi -> xi+1 , xi+2 …)

sai số cắt cụt O(h)

sai số cắt cụt O(h2)

sai số cắt cụt O(h)

sai số cắt cụt O(h2)


FETEL-HCMUS 2023 172

Khai triển chuỗi Taylor


Phương pháp sai phân ngược: xấp xỉ theo chiều lùi (từ xi -> xi-1 , xi-2 …)

sai số cắt cụt O(h)

sai số cắt cụt O(h2)

sai số cắt cụt O(h)

sai số cắt cụt O(h2)


FETEL-HCMUS 2023 173

Khai triển chuỗi Taylor


Phương pháp sai phân ngược: xấp xỉ theo chiều lùi (từ xi -> xi-1 , xi-2 …)

sai số cắt cụt O(h)

sai số cắt cụt O(h2)

sai số cắt cụt O(h)

sai số cắt cụt O(h2)


FETEL-HCMUS 2023 174

Khai triển chuỗi Taylor


Phương pháp sai phân trung tâm (xi+1 - xi-1 , xi+2 - xi-2 , ….) có độ chính xác cao hơn

sai số cắt cụt O(h2)

sai số cắt cụt O(h4)

sai số cắt cụt O(h2)

sai số cắt cụt O(h4)


FETEL-HCMUS 2023 175

Khai triển chuỗi Taylor


Phương pháp sai phân trung tâm (xi+1 - xi-1 , xi+2 - xi-2 , ….)

sai số cắt cụt O(h2)

sai số cắt cụt O(h4)

sai số cắt cụt O(h2)

sai số cắt cụt O(h4)


FETEL-HCMUS 2023 176
Bảng hệ số biểu thức xấp xỉ đạo hàm theo chiều tiến, sai số cắt cụt O(h)

54

Bảng hệ số biểu thức xấp xỉ đạo hàm theo chiều lùi, sai số cắt cụt O(h)

Sai số cắt cụt ở hai bảng trên là O(h), không thông dụng.
Thực tế hay dùng O(h2) => dùng nhiều hệ số hơn trong chuỗi Taylor
FETEL-HCMUS 2023 177

Khai triển chuỗi Taylor


Bảng hệ số của biểu thức xấp xỉ đạo hàm theo chiều tiến sai số cắt cụt O(h2)

Bảng hệ số của biểu thức xấp xỉ đạo hàm theo chiều lùi, sai số cắt cụt O(h2)
FETEL-HCMUS 2023 178

Khai triển chuỗi Taylor


VD: Cho giá trị hàm 𝑓(𝑥), tính đạo hàm tại x = 0.5 theo khai triển Taylor các chiều
khác nhau với h = 0.25 (Giá trị đúng là -0.9125) theo O(h2)
xi-2 = 0 f(xi-2) = 1.2
f(x) = - 0.1x4 - 0.15x3 - 0.5x2 - 0.25x + 1.2 xi-1 = 0.25 f(xi-1) = 1.1035156
xi = 0.5 f(xi) = 0.925
xi+1 = 0.75 f(xi+1) = 0.6363281
Khai triển Taylor theo chiều tiến với O(h2) xi+2 = 1 f(xi+2) = 0.2

Khai triển Taylor theo chiều lùi với O(h2)

Khai triển Taylor theo chiều giữa với O(h4)


FETEL-HCMUS 2023 179

Khai triển chuỗi Taylor


VD: Cho giá trị hàm 𝑓(𝑥) tại một số điểm bởi bảng sau
x 0.1 0.2 0.3 0.4
f(x) 0.09983 0.19867 0.29552 0.38942

Tính đạo hàm của hàm 𝑓′(0.2); 𝑓 ′′(0.2) với h=0.1 khai triển Taylor theo chiều tiến
với sai số cắt cụt O(h)

=>
FETEL-HCMUS 2023 180

Ví dụ:
cho bảng số liệu

Tìm f ’(x) tại x = 0 với O(h2) và f ’’(x) tại x = 0 với O(h)


Tìm f ’(x) tại x = 0.2 với O(h2) và f ’’(x) tại x = 0.2 với O(h)
FETEL-HCMUS 2023 181

Khai triển chuỗi Taylor


f(x) f(x)

forward
true derivative
finite divided
difference approx.
Độ chính xác?
Nên dùng phương pháp nào?
x x

f(x) f(x)

backward centered
finite divided finite divided
difference approx. difference approx.
x x
FETEL-HCMUS 2023 182

Trong Matlab

x f(x)
i-2 0 1.2 y =@(x) 1.2 - .25*x - .5*x.^2 - .15*x.^3 -.1*x.^4
i-1 0.25 1.1035
x=0:.25:1
i 0.50 0.925
y1=feval(y,x)
i+1 0.75 0.6363
diff(y1)./diff(x)
i+2 1 0.2

% Tinh dao ham cap n cua f tai x


clear all, clc
f = inline('x.^2 + atan(x)','x’);
%y =@(x) 1.2 - .25*x - .5*x.^2 - .15*x.^3 -.1*x.^4
df = daoham_taylor(f, 5, 0)
FETEL-HCMUS 2023 183

Ngoại suy Richardson

 Có hai cách để giảm sai số


Tăng bước tính (giảm h = xi+1 - xi) (tăng bậc sai số cắt cụt O(h))
Dùng biểu thức bậc cao với nhiều điểm
 Cách thứ ba là dựa trên ngoại suy Richardson, trong đó dùng hai xấp xỉ đạo hàm có cỡ
bậc h1 và h2 (với sai số O(h2)) để tính xấp xỉ thứ ba có độ chính xác cao hơn (với sai
số O(h4))
4 1
Thường chọn h2 = h1 / 2  D  D(h2 ) − D(h1)
3 3

Phép ngoại suy của Richardson tổng quát để cải thiện sự xấp xỉ đạo hàm
FETEL-HCMUS 2023 184

Ngoại suy Richardson

Ví dụ: Cho bảng giá trị có giá trị đúng x f(x)


f’(0.5) = -0.9125 i-2 0 1.2
i-1 0.25 1.1035
i 0.50 0.925
i+1 0.75 0.6363
2.4% i+2 1 0.2

Dùng công thức Richardson, ước lượng đạo hàm bậc 1 tại x=0.5 dùng công
thức xấp xỉ ở vị trí trung tâm với sai số O(h2), h1=0.5 và h2=0.25:

4 1
h2 = h1 / 2  D  D(h2 ) − D(h1)
3 3
Dh1=0.5 (x=0.5) = (0.2-1.2)/(2.0.5) = -1 [ εt=|(-0.9125+1)/-0.9125| = 9.6% ]
Dh2=0.25(x=0.5) = (0.6363-1.103)/(2*0.25)= - 0.9343 [ εt=|(-0.9125+0.9343)/-0.9125| = 2.4% ]

Ngoại suy Richardson:


D = (4/3).(-0.9343) – (1/3)(-1) = -0.9125 [ εt=(-0.9125+0.9125)/-0.9125 = 0%]
FETEL-HCMUS 2023 185

Bài toán tính tích phân


𝑏

න(𝑓 𝑥 − 0)𝑑𝑥 f(x)


y
𝑎

Diện tích phần tô màu


đen?

Tính tích phân f(x) – 0


trên [a,b]

a b x

165
FETEL-HCMUS 2023 186

Tính gần đúng tích phân


Nếu hàm f(x) liên tục trên [a,b] và có Đa thức nội suy Lagrange của f(x) có
nguyên hàm F(x), công thức Newton – dạng:
Lepnit tính tích phân:

n=2: hình thang


Chia thành 2 nhóm: n=3: Simpson
• Các phương pháp Newton ‐ Cotes
(khoảng lấy tích phân được chia đều:
phương pháp hình thang, Simpson)
• Phương pháp Gauss: các điểm chia
được chọn để đạt độ chính xác cao
nhất
Các công thức Newton ‐ Cotes
Chia [a, b] thành (n‐1) đoạn bằng nhau
có chiều dài h = (b ‐ a)/(n ‐ 1) và kí hiệu
x1, x2,.., xn. Sau đó ta xấp xỉ hàm f(x)
bằng đa thức bậc (n ‐ 1) đi qua các 165
nút
FETEL-HCMUS 2023
187

Phương pháp Newton-Cotes


Ý tưởng: Thay các biểu thức
hàm phức tạp hay các bảng dữ
liệu bằng các hàm xấp xỉ dễ
lấy tích phân. => Sai số ???
Zero order approximation First-order Second-order
hình thang
FETEL-HCMUS 2023 188

VD: tìm tích phân của f(x) trong đoạn 0 -> 0.8
f(x) = 0.2 +25x – 200x2 + 675x3 – 900x4 + 400x5
b=0.8

Giá trị đúng: I =  f ( x)dx = 1.64053 y=int(f(x),[0 0.8])


a=0

f(a)=f(0) = 0.2 and f(b)=f(0.8) = 0.232

f (a) + f (b)
Tính trực tiếp: I = (b − a)
2
0.2 + 0.232
= 0.8 = 0.1728
2
Sai số
E t = 1.64053 − 0.1728 = 1.46773 =>  t = 89.5%

Tính trực tiếp [a,b] => sai số lớn, không chính tích phân hình thang
xác => Chia nhỏ [a,b] thành nhiều phần
FETEL-HCMUS 2023 189

Công thức hình thang


Phân đoạn [a,b] thành n đoạn con bằng Trên đoạn [xi, xi+1], xấp xỉ f(x) bởi đa
nhau: a=x0<x1<…<xn=b với h=xi+1-xi=1/n thức bậc 1 P1(x), tích phân từng phần
Nối các điểm yi và yi+1 bằng các đường Ii gần bằng diện tích hình thang
thẳng xiABxi+1

Công thức tính tích phân hình thang

Khi đó: Giá trị tích phân là tổng diện tích các
tích phân từng phần hình thang
Sai số địa phương (từng phần)
FETEL-HCMUS 2023 190

Công thức hình thang dạng tổng quát


Công thức hình thang dạng tổng quát

Ta có công thức hình thang dạng tổng quát:

Sai số toàn phần: nếu tăng số đoạn gấp 2 lần,


sai số tổng cộng giảm 4 lần

Với
FETEL-HCMUS 2023 191

VD: Tích phân hình thang


VD: Tính gần đúng các tích phân sau bằng công thức hình thang
với phân hoạch [1,5] thành n=4 phần bằng nhau. Đánh giá sai số

Giải:
X 1 2 3 4 5
f(x)=1/x 1/1 1/2 1/3 1/4 1/5

Áp dụng công thức hình thang tổng quát

Sai số toàn phần

Kiểm tra trên


Matlab
FETEL-HCMUS 2023 192

Công thức Simpson (Simpson’s 1/3)


Phân hoạch [a,b] thành n=2m đoạn con bằng nhau: (số chẵn)
a=x0<x1<……<x2m=b. Qua 3 điểm, hàm f(x) được xấp xỉ bằng
một hàm bậc hai (một parabol) x = x + t.h i

t=0 t=2
h

xi Xi+1 Xi+2
h h

Trên đoạn [xi, xi+2], xấp xỉ f(x) bởi đa thức nội suy bậc 2 P2(x)
Đổi biến: Đặt x = xi + t.h, dx = hdt; f(x) = f(xi + t.h)
Tại hai cận: x =xi => t=0; x = xi+2 => t=2
FETEL-HCMUS 2023 193

Công thức Simpson (Simpson’s 1/3)


Khai triển Taylor của hàm bậc 2 P2(x) ta có tích phân địa phương
theo công thức Simpson (theo biến t)

t=0 t=2
Ta có công thức Simpson dạng tổng quát (i = 0:2n):

Sai số toàn phần:

Với
FETEL-HCMUS 2023 194

Ví dụ: Các PP tính tích phân


VD: Tính tích phân theo 3 cách: Tích phân theo công thức hình thang
5
𝑑𝑥
𝐼=න 5−1 1 2 2 2 1
1 + 𝑥2 𝐼≈ + + + + ≈ 0.6281
1 2.4 2 5 10 17 26
Giải:
Cách 1: Nguyên hàm
5 𝜋 Cách 3: Theo công thức Simpson 1/3
𝐼 = 𝑎𝑟𝑐𝑡𝑔𝑥 ቚ = 𝑎𝑟𝑐𝑡𝑔 5 − ≈ 0.588
1 4
Cách 2: Theo công thức hình thang Ta có công thức Simpson tổng quát:
Chia đoạn [1,5] thành 4 đoạn (n=4) bằng
nhau với các điểm chia (h=1)

X 1 2 3 4 5 1 1 1 1 1 1
I≈ + +4 + +2
f(x) 1/2 1/5 1/10 1/17 1/26 3 2 26 5 17 10
≈ 0.591
Công thức hình thang tổng quát Kiểm tra trên Matlab. Sai số các pp?
FETEL-HCMUS 2023 195

Công thức Simpson’s 3/8


Kết hợp Simpson’s 1/3 và
Dùng đa thức nội suy Lagrange bậc 3 Simpson’s 3/8 cho trường hợp
Tích phân Simpson’s 3/8: có số lẻ các đoạn.

Simpson’s 3/8
(4 điểm)

Simpson’s 1/3
(3 điểm)

174
FETEL-HCMUS 2023 196

Tóm lược các công thức

Segments Points Name Formula Truncation


(n) Error

1 2 Hình thang (b-a) * (f(x0)+ f(x1))/2 -(1/12)(b-a)3f’’(ξ)

2 3 Simpson’s (b-a) * (f(x0)+ 4f(x1)+f(x2))/6 -(1/2880)(b-a)5f(4)(ξ)


1/3
3 4 Simpson’s (b-a) * (f(x0)+ 3f(x1)+ 3f(x2)+ f(x3))/8 -(1/6480)(b-a)5f(4)(ξ)
3/8

Cùng bậc, nhưng Simpson’s 3/8 chính xác hơn.

Trong thực tế ít khi dùng công thức bậc cao (lớn hơn 4 điểm).
175
FETEL-HCMUS 2023 197

Các công thức cầu phương Gauss


• Các phương pháp Newton ‐ Cotes (khoảng lấy tích phân
được chia đều: hình thang, Simpson)
• Phương pháp cầu phương Gauss: các điểm chia được chọn
để đạt độ chính xác cao nhất

a b a b
Công thức hình thang Cải thiện bằng cách lấy diện tích dưới
đường thẳng đi qua hai điểm trung gian
=> sai số giảm, cải thiện độ chính xác
(cầu phương Gauss)
FETEL-HCMUS 2023 198

Phương pháp hệ số không xác định


Biểu diễn công thức hình thang dưới
dạng hai đường thẳng tuyến tính y=1 và
y=x như hình vẽ

Với c0 và c1 là hằng số
Ta có 𝑏−𝑎
𝑐0 = 𝑐1 =
2

Tích phân được biểu diễn


FETEL-HCMUS 2023 199

Công thức Gauss-Legendre hai điểm


Biểu diễn công thức tích phân dưới dạng

Với c0 và c1 là hệ số không xác định do các giá trị


x0 và x1 không nằm tại các điểm cận [-1, 1].
Giải phương trình nghiệm giữa hàm hình thang
(y=1, y=x) với hàm mũ giả định bậc 2 (y=x2) và
bậc 3 (y=x3) để xác định x0, x1, c0, c1
Ta có
Giải hệ pt với [a,b]=[-1,1]
Hàm y=1

Hàm y=x Công thức tính tích phân


Gauss-Legendre hai điểm
Hàm y=x2 4 pt, 4 ẩn

Hàm y=x3
FETEL-HCMUS 2023 200

Công thức Gauss-Legendre hai điểm


Trong trường hợp tổng quát VD: Tính tích phân
(cận [a, b] khác [-1,1]).
Đặt biến xd thay cho x sao cho
𝑥 = 𝑎0 + 𝑎1 𝑥𝑑 Giải: 𝑎 = 0, 𝑏 = 0.8 , cận khác [-1,1], đổi biến
𝑏+𝑎 𝑏−𝑎
• Khi 𝑥 = 𝑎 , 𝑥𝑑 = −1 => 𝑎0 = 2 = 0.4; 𝑎1 = 2 = 0.4
=> 𝑎 = 𝑎0 + 𝑎1 −1 𝑥 = 0.4 + 0.4𝑥𝑑
• Khi 𝑥 = 𝑏 , 𝑥𝑑 = 1 𝑏−𝑎
=> 𝑏 = 𝑎0 + 𝑎1 1 𝑑𝑥 =
2
𝑑𝑥𝑑 = 0.4𝑑𝑥𝑑

Giải hai phương trình trên ta có


𝑏+𝑎 𝑏−𝑎
𝑎0 = ; 𝑎1 =
2 2
Công thức đổi biến
𝑏 + 𝑎 + 𝑏 − 𝑎 𝑥𝑑
𝑥= Gauss-Legendre hai điểm
2
𝑏−𝑎
Đổi cận: 𝑑𝑥 = 𝑑𝑥𝑑
2
Kiểm tra trên Matlab
FETEL-HCMUS 2023 201

Tích phân kép

Ta khảo sát tích phân của hàm


z = f(x, y) trên miền R{(x,y|a ≤ x ≤ b,
c(x) ≤ y ≤ d(x)} như hình vẽ.
Ta cần tính tích phân:

Công thức gần đúng của tích phân là


𝑀 𝑁

𝐽 𝑎, 𝑏, 𝑐 𝑥 , 𝑑 𝑥 = ෍ 𝑤𝑚 ෍ 𝑣𝑛 𝑓(𝑥𝑚 , 𝑦𝑚,𝑛 )
m=1 n=1

với các trọng số wm, vn tuỳ thuộc vào


cách tính tích phân hàm một biến
FETEL-HCMUS 2023 202

Tính tích phân với các đoạn không đều

Tích phân hình thang


FETEL-HCMUS 2023 203

Tính tích phân trong Matlab

g = @(x) 0.2+25*x-200*x.^2+675*x.^3-900*x.^4+400*x.^5
x f(x) x f(x)
0.0 0.2 0.44 2.842 >> Q=quad(g, 0, 0.8)
0.12 1.309 0.54 3.507

0.22 1.305 0.64 3.181


Q =1.6405
1.743 2.363
>> x=[0 .12 .22 .32 .36 .4 .44 .54 .64 .7 .8]
0.32 0.70
2.074 0.232
>> y = feval(g,x)
0.36 0.80
0.40 2.456
y = 0.200 1.309 1.305 1.743 2.074 2.456
2.843 3.507 3.181 2.363 0.232

>> Integral = trapz(x,y) % Tích phân hình thang


Bài tập:1-3/trang 41 –
Phương pháp tính trong kỹ Integral =1.5948
thuật – Đặng Quốc Lương So sánh kết quả giữa tích phân từng phần và tích phân
hình thang!
FETEL-HCMUS 2023 204

CHƯƠNG 12

Giải gần đúng phương trình vi phân


FETEL-HCMUS 2023 205

Đạo hàm

Đạo hàm

Đạo hàm thường Đạo hàm riêng


dv u
dt y
v là hàm của 1 biến u là hàm của 2 biến
độc lập độc lập trở lên
FETEL-HCMUS 2023 206

Phương trình vi phân


Phương trình vi
phân

Phương trình vi phân Phương trình vi phân


thường => v(t) ??? đạo hàm riêng

u u
2 2
− =0
2
d v
+ 6tv = 1 y x
2 2
2
dt
FETEL-HCMUS 2023 207

Phương trình vi phân thường

Ordinary Differential Equations (ODEs) chứa đạo hàm


của hàm chưa biết theo 1 biến độc lập

VD :
dv(t)
− v(t) = e t x(t): hàm chưa biết
dt
d 2 x(t) dx(t)
−5 + 2x(t) = cos(t)
2
dt dt
t: biến độc lập
FETEL-HCMUS 2023

Ví dụ ODE:
208

Vận động viên nhảy dù

Vận tốc rơi của vận động viên là: Phương trình vi
phân thường
Cần tìm hàm v
dv c
= 9.8 − v t là biến độc lập
dt M
M: khối lượng VĐV
c: hệ số
v: vận tốc
FETEL-HCMUS 2023 209

Bậc của phương trình vi phân


Là bậc của đạo hàm cao nhất

Examples:
dx(t) PT vi phân bậc 1
− x(t) = et
dt
d 2 x(t) dx(t)
2
−5 + 2x(t) = cos(t) PT vi phân bậc 2
dt dt
 d 3 x(t) dx(t)
 3

 − + 2x 4
(t) = 1 PT vi phân bậc 3
 dt  dt
FETEL-HCMUS 2023 210

Lời giải của phương trình vi phân

c: hằng số tích phân


FETEL-HCMUS 2023 211

Tính duy nhất của lời giải

Để xác định lời giải duy nhất cho phương trình


bậc n cần n điều kiện phụ

d 2 x(t)
+ 4x(t) = 0 PT vi phân bậc 2
dt2
Cần 2 điều kiện để xác định
lời giải duy nhất
FETEL-HCMUS 2023 212

Auxiliary Conditions (Điều kiện phụ)

Điều kiện phụ

Initial Conditions Boundary Conditions


(Điều kiện khởi tạo/ban đầu) (Điều kiện biên)
Điều kiện bổ sung cho tại không Điều kiện bổ sung cho tại nhiều
quá 1 điểm hơn 1 điểm

x''+2x'+x = e−2t x''+2x'+x = e−2t


x(0) = 1, x'(0) = 2.5 x(0) = 1, x(2) = 1.5

Bài toán Cauchy: có x0 ban đầu giống nhau Bài toán biên: có x0 ban đầu khác nhau
Tìm x = ?
FETEL-HCMUS 2023 213

Ví dụ giải phương trình vi phân cấp 1:

Cho phương trình vi phân cấp 1: y’ = 2x + 1;

- Nghiệm tổng quát : y = x2 + x + C;


- C: hằng số tích phân, phụ thuộc điều kiện ban đầu
- Mỗi giá trị của C => 1 nghiệm xác định.
-Xác định C cần biết thêm 1 điều kiện ban đầu,
ví dụ y(1) = 2; ➔ C = 0;

Nghiệm của pt là y = x2 + x + 0
FETEL-HCMUS 2023 214

Phương pháp giải bài toán Cauchy


Bài toán Cauchy: có x0 ban đầu giống nhau

Phương pháp giải tích: nghiệm dưới dạng giải tích


 Chuỗi Taylor

Phương pháp số: nghiệm dưới dạng bảng số tại


một số điểm
 Phương pháp Euler

 Phương pháp trung điểm và hình thang (Heun’s

method - Karl Heun)


 Phương pháp Runge-Kutta
FETEL-HCMUS 2023 215

Chuỗi Taylor

Tìm nghiệm pt: y’ = f(x, y); x0  x  X thõa mãn đk: y(x0) = η (hằng số)
Khai triển Taylor

Chuỗi Taylor đơn giản nhưng tính toán mất nhiều công sức, bán kính hội tụ khó
xác định
FETEL-HCMUS 2023 216

Ví dụ giải PT vi phân dùng chuỗi Taylor

Tìm nghiệm xấp xỉ của: y' = y với điều kiện ban đầu: y(1) = 2;
Chuỗi Taylor x +y (x0 = 1; y(x0) = η = 2)

12
=> Tương tự cho y’’’(1) =
81

nghiệm giải
tích
Từ đó có thể dùng chuỗi Taylor để tính y(x) tại điểm x nào đó, ví dụ với x=1.1
FETEL-HCMUS 2023 217

Ví dụ 2: Dùng khai triển Taylor

Dùng khai triển Taylor, tìm xi (i=0,1..,n) của hàm


dx
+ 2x 2 + t = 1, với x(0) = 1, t(0)=0, h = 0.01
dt h = x – x0
dx
= f (t, x) =1− 2x 2 − t
dt

Chuỗi Taylor

x – x0 = h, khai triển Taylor theo x đến đạo hàm bậc 2 khi t=0:0.01:end
2019
FETEL-HCMUS 2023 218

f (t, x) = 1− 2x 2 − t , t = 0, x(0)= 1, h = 0.01

Chuỗi Taylor:
• Đơn giản
• Mất nhiều công sức
• Bán kính hội tụ khó
xác định
FETEL-HCMUS 2023 219

Phương pháp Euler

 Chính là khai triển chuỗi Taylor bậc 1


 Sai số cắt cụt là O(h2).
 Nghiệm dưới dạng bảng số

Chuỗi Taylor

yi+1 = yi + h.f (x i, y i)
dy(x)
= f (x, y), y(x 0 ) = y0 (hay =  )
dx
FETEL-HCMUS 2023 220

Phương pháp Euler

Bài toán: trên đoạn [𝑥0 , 𝑥]ҧ


PT vi phân bậc 1: y'(x) = f (x, y)
Điều kiện đầu: y0 = y(x0 )
Xác định: yi = y(x0 + ih) với i = 1,2,...

ҧ 0
𝑥−𝑥
PP Euler : Chia [𝑥0 , 𝑥]ҧ thành n đoạn ℎ =
𝑛
x0, x1=x0+h, x2=x1+h… , xi+1=xi+h
y0 = y(x0 )
yi+1 = yi + h.f (x i, y i) với i = 0,1,...
FETEL-HCMUS 2023 221

Ý nghĩa của PP Euler

y2 y2 = y1+hf(x1,y1)
Slope=f(x1,y1)
hf(x1,y1) ước lượng độ dốc
Slope=f(x0,y0)

y1 y1 = y0+hf(x0,y0)
hf(x0,y0) ước lượng độ dốc
y0 y0 = y(x 0 )

x0 x1 x2 x
h h

yi+1 = yi + h.f (x i, y i)
Đạo hàm y(x): hệ số góc tại điểm x
f(x,y) = dy/dx [x0, x]
FETEL-HCMUS 2023 222

Ví dụ

Dùng pp Euler để giải PT:

Tìm y(1.01), y(1.02) và y(1.03).


f (x, y) = 1+ x , 2
x0 = 1, y0 = −4, h = 0.01
Euler method: yi+1 = yi + h f (xi , yi )

2019
FETEL-HCMUS 2023 223

Kết quả

f (x, y) = 1+ x 2 , x0 = 1, y0 = −4, h = 0.01

i xi yi True value of yi
0 1.00 -4.00 -4.00
1 1.01 -3.98 -3.97990
2 1.02 -3.9598 -3.95959
3 1.03 -3.9394 -3.93909

So sánh với giá trị đúng


Kiểm tra trên Matlab
FETEL-HCMUS 2023 224

Phương pháp hình thang (Heun)

 Mục tiêu: tăng độ chính xác


của việc ước lượng độ dốc
Gồm 2 bước: dự đoán và điều chỉnh

Sai số cắt cụt địa phương O(h3 )


Sai số cắt cụt toàn phần O(h2 )
FETEL-HCMUS 2023 225

Ví dụ
Dùng PP hình thang để giải PT vi phân: y'(x) = 1+ x2 + y
với y(0) = 1, h = 0.1. Tìm y(0.1) và y(0.2)

=1+(0.1/2)*(2+(1+0.1^2+1.2))= 1.2105

=1.2105+0.1*(1+0.1^2+1.2105)

1.2105+(0.1/2)*((1+0.1^2+1.2105)+(1+0.2^2+1.4326))
FETEL-HCMUS 2023 226

Phương pháp hình thang (Heun)

Để tính nghiệm chính xác hơn khi đã biết yi, có thể


dùng phép lặp đơn:
(0)
yi+1 = yi + hf (xi , yi )
h
 (k −1)
yi+1 = yi + f (x i , yi ) + f (xi+1 , yi+1
(k )

2
) 
Quá trình lặp dừng lại ở bước k khi
(k )
yi+1 − y (ki+1−1)   y = -0.5x4+ 4x3- 10x2 + 8.5x + 1
y’= - 2x3 + 12x2 - 20x + 8.5
ε – sai số cho phép.
FETEL-HCMUS 2023 227

Phương pháp trung điểm (Euler cải tiến)

1. Dùng PP Euler để ước


lượng y tại điểm giữa
2. y’ tại điểm giữa được tính qua
biểu thức f(x,y)
3. Giá trị vừa tính được
dùng để ước lượng yi+1.
FETEL-HCMUS 2023 228
Ví dụ: Dùng PP trung y'(x) = 1+ x 2 + y
điểm để giải PT vi phân
y(0) = 1
Với h = 0.1. Tìm y(0.1) và y(0.2)
Bài toán : f ( x, y) = 1 + x 2 + y, y0 = y(0) = 1, h = 0.1
Bước 1:
h
y 1
= y0 + f ( x0 , y0 ) = 1 + 0.05(1 + 0 + 1) = 1.1
0+
2 2
y1 = y0 + h f ( x0+ 1 , y0+ 1 ) = 1 + 0.1(1 + 0.0025 + 1.1) = 1.2103
2 2

Bước 2 :
h
y 1
= y1 + f ( x1, y1 ) = 1.2103 + .05(1 + 0.01 + 1.2103) = 1.3213
1+ 2 2
y2 = y1 + h f ( x1+ 1 , y1+ 1 ) = 1.2103 + 0.1(2.3438) = 1.4446
2 2
FETEL-HCMUS 2023 229

Tóm tắt
 Các phương pháp Euler, Heun (hình thang),
trung điểm dùng công thức có dạng:

yi+1 = yi + h  slope
Các phương pháp khác nhau ở các ước lượng
slope

Nhược điểm của PP Euler là bậc của độ chính xác giảm


dần. Muốn có độ chính xác cao đòi hỏi h phải rất nhỏ
FETEL-HCMUS 2023 230

So sánh
FETEL-HCMUS 2023 231

Phương pháp Runge-Kutta


Để đạt được độ chính xác cao hơn, Runge-Kutta đưa ra công thức tìm nghiệm
số của bài toán Cauchy cấp 1: Biết 𝑦(𝑥) tìm 𝑦(𝑥 + ℎ)
𝑞

𝑦 𝑥 + ℎ = 𝑦 𝑥 + ෍ 𝑝𝑟 𝑘𝑟 (ℎ)
𝑟=1
Trong đó:
𝑘1 ℎ = ℎ. 𝑓 𝑥, 𝑦 𝑥
𝑘2 ℎ = ℎ. 𝑓 𝑥 + 𝛼2 ℎ, 𝑦 𝑥 + 𝛽21 𝑘1 (ℎ)
𝑘3 ℎ = ℎ. 𝑓 𝑥 + 𝛼3 ℎ, 𝑦 𝑥 + 𝛽31 𝑘1 (ℎ) + 𝛽32 𝑘2 (ℎ)

𝑞−1
𝑘𝑞 ℎ = ℎ. 𝑓(𝑥 + 𝛼𝑞 , 𝑗=1 𝛽𝑞𝑗 𝑘𝑗 (ℎ) % kr: hàm độ dốc
σ

Các hệ số 𝑝𝑟 , (𝑟 = 1, 𝑞), 𝛼𝑗 , (j = 2, 𝑞); 𝛽𝑝𝑗 , (p = 2, 𝑞, j = 1, 𝑞 − 1) được xác định


để phương trình thỏa mãn và khai triển Taylor trùng nhau tới cấp cao nhất của
h mong muốn.
FETEL-HCMUS 2023 232

Phương pháp Runge-Kutta


Công thức: Runge-Kutta tổng quát
𝑞

𝑦 𝑥 + ℎ = 𝑦 𝑥 + ෍ 𝑝𝑟 𝑘𝑟 (ℎ)
𝑟=1

Khi q=1:
Runge-Kutta bậc 1:
𝑦 𝑥 + ℎ = 𝑦 𝑥 + ℎ. 𝑓 𝑥, 𝑦 𝑥
𝑘1 ℎ = ℎ. 𝑓 𝑥, 𝑦 𝑥 ,
𝑝1 = 1

=> Công thức Euler, sai số O(h2)


FETEL-HCMUS 2023 233

PP Runge-Kutta (cont.)
PP Runge-Kutta bậc 2: 𝑘1 ℎ = ℎ. 𝑓 𝑥, 𝑦 𝑥
𝑘2 ℎ = ℎ. 𝑓 𝑥 + 𝛼2 ℎ, 𝑦 𝑥 + 𝛽21 𝑘1 (ℎ)

yi+1 = yi + p1.k1(h) + p2.k2(h)


Khai triển Taylor k1(h) và k2(h) theo lũy thừa của h

k1(h) = h.f (xi , yi )


k2(h) = h.f(xi +𝛼2 ℎ ,yi + 𝛽21 k1(h))
 Các giá trị p1, p2, 𝛼2 , và 𝛽21 được tìm bằng cách cho phương trình ở trên
tương đương với khai triển Taylor bậc 2. Theo phương pháp này sẽ có 3
phương trình để tìm 4 ẩn.

Giả định biết 1 p1 + p2 = 1 VD: chọn p1 = 0, p2 = 1, 𝛼2 = 𝛽21 = 1/2


ẩn, dùng 3 PT để
tìm 3 ẩn còn lại 𝛼2 p2 = 1/2 𝑘1 ℎ = ℎ. 𝑓 𝑥, 𝑦 𝑥
ℎ 𝑘1 (ℎ)
𝛽21 p2 = 1/2 𝑘2 ℎ = ℎ. 𝑓 𝑥 + , 𝑦 𝑥 +
2 2
FETEL-HCMUS 2023 234
PP Runge-Kutta bậc 2 (tt)
yi+1 = yi + p1.k1(h) + p2.k2(h) p1 + p2 = 1
k1(h) = h.f (xi , yi ) 𝛼2 p2 = 1/2
k2(h) = h.f(xi +𝛼2 ℎ ,yi + 𝛽21 k1(h)) 𝛽21 p2 = 1/2

Giả sử chọn p2 trước. Do có thể chọn vô số giá trị p2


nên sẽ có vô số công thức Runge - Kutta bậc 2.
Một số PP thông dụng được áp dụng:
PP Heun (p2 = 1/2)
PP trung điểm (p2 = 1)
PP Ralston (p2 = 2/3)

Heun’s Method (chọn p2 = 1/2)➔ p1 = 1/2, 𝛼2 = 1, 𝛽21 = 1


1 1
yi+1 = yi + .k1(h) + . k2(h)
2 2
k1( h ) = h . f ( x i , yi )
k2 (h) = h . f (xi + h, yi + k1(h))
FETEL-HCMUS 2023 235
PP Runge-Kutta bậc 2 (tt)
yi+1 = yi + p1.k1(h) + p2.k2(h) p1 + p2 = 1
k1(h) = h.f (xi , yi ) 𝛼2 p2 = 1/2
k2(h) = h.f(xi +𝛼2 ℎ ,yi + 𝛽21 k1(h)) 𝛽21 p2 = 1/2

PP trung điểm (chọn p2 = 1)➔ p1 = 0, 𝛼2 = 1/2, 𝛽21 = 1/2


1 1
yi+1 = yi + 0.k1(h) + . k (h) = yi + . k (h)
2 2 2 2
k1( h ) = h . f ( x i , yi )
k2 (h) = h . f (xi + 2. h, yi + 2. k1(h))
1 1

PP Ralston (chọn p2 = 2/3)➔ p1 = 1/3, 𝛼2 = 3/4, 𝛽21 = 3/4


1 2
yi+1 = yi + .k1(h) + . k2(h)
3 2
k1( h ) = h . f ( x i , yi )
k2 (h) = h . f (xi + 34 .h, yi + 34 .k1(h))
FETEL-HCMUS 2023 236
PP Runge-Kutta bậc 2 (tt)
yi+1 = yi + p1.k1(h) + p2.k2(h) p1 + p2 = 1
k1(h) = h.f (xi , yi ) 𝛼2 p2 = 1/2
k2(h) = h.f(xi +𝛼2 ℎ ,yi + 𝛽21 k1(h)) 𝛽21 p2 = 1/2

PP Heun (p2 = 1/2) Comparison of Various


PP trung điểm (p2 = 1) Second-Order RK Methods
PP Ralston (p2 = 2/3)
FETEL-HCMUS 2023 237

Công thức Runge-Kutta bậc cao

Công thức Runge-Kutta bậc 3 thường dùng


𝑘1 = ℎ. 𝑓 𝑥, 𝑦𝑖
1 ℎ 𝑘1
𝑦𝑖+1 = 𝑦𝑖 + (𝑘1 + 4𝑘2 + 𝑘3 ) 𝑘2 = ℎ. 𝑓 𝑥 + , 𝑦𝑖 +
2 2
6
𝑘3 = ℎ. 𝑓 𝑥 + ℎ, 𝑦𝑖 − 𝑘1 + 2𝑘2

Công thức Runge-Kutta bậc 4 thường dùng.


Được dùng chủ yếu trong kỹ thuật

𝑘1 = ℎ. 𝑓 𝑥, 𝑦𝑖
1 ℎ 𝑘1
𝑦𝑖+1 = 𝑦𝑖 + (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 ) 𝑘2 = ℎ. 𝑓 𝑥 + , 𝑦𝑖 +
2 2
6
ℎ 𝑘2
𝑘3 = ℎ. 𝑓 𝑥 + , 𝑦𝑖 +
2 2
Sai số địa phương is O(h 5 ) và sai số toàn cục O(h 4 )
𝑘4 = ℎ. 𝑓 𝑥 + ℎ, 𝑦𝑖 + 𝑘3
223
FETEL-HCMUS 2023 238

Ví dụ: Áp dụng công thức Runge-Kutta bậc 4

1 𝑘1 = ℎ. 𝑓 𝑥, 𝑦𝑖
Công thức RK4: 𝑦𝑖+1 = 𝑦𝑖 + (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 ) ℎ 𝑘1
6 𝑘2 = ℎ. 𝑓 𝑥 + , 𝑦𝑖 +
2 2
Bài toán :giải pt vi phân Bước 1: h = 0.2

𝑘3 = ℎ. 𝑓 𝑥 + , 𝑦𝑖 +
𝑘2
2 2
dy 𝑘4 = ℎ. 𝑓 𝑥 + ℎ, 𝑦𝑖 + 𝑘3
= 1+ y + x 2 , y(0) = 0.5 f ( x, y) = 1 + y + x 2
dx
x0 = 0, y0 = 0.5
Dùng RK 4 tìm y(0.2), y(0.4)
𝑘1 = ℎ. 𝑓 𝑥0 , 𝑦0 = 0.2 1 + 0.5 + 0^2 = 0.3
2
ℎ 𝑘1 0.3 0.2
𝑘2 = ℎ. 𝑓 𝑥0 + , 𝑦0 + = 0.2 1 + 0.5 + + 0+ = 0.332
2 2 2 2
2
ℎ 𝑘2 0.332 0.2
𝑘3 = ℎ. 𝑓 𝑥0 + , 𝑦0 + = 0.2 1 + 0.5 + + 0+ = 0.3352
2 2 2 2
𝑘4 = ℎ. 𝑓 𝑥0 + ℎ, 𝑦0 + 𝑘3 = 0.2 1 + 0.5 + 0.3352 + 0 + 0.2 2 = 0.3750
1 1
𝑦1 = 𝑦0 + 6 𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 = 0.5 + 6 0.3 + 2(0.332) + 2(0.3352) + 0.3750 =
0.8349 = y(0.2)
FETEL-HCMUS 2023 239

Ví dụ: Áp dụng công thức Runge-Kutta bậc 4

1 𝑘1 = ℎ. 𝑓 𝑥, 𝑦𝑖
Công thức RK4: 𝑦𝑖+1 = 𝑦𝑖 + (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 ) ℎ 𝑘1
6 𝑘2 = ℎ. 𝑓 𝑥 + , 𝑦𝑖 +
2 2
Bài toán :giải pt vi phân Bước 2: h = 0.2 ℎ
𝑘3 = ℎ. 𝑓 𝑥 + , 𝑦𝑖 +
𝑘2
2 2
dy f ( x, y) = 1 + y + x 2
𝑘4 = ℎ. 𝑓 𝑥 + ℎ, 𝑦𝑖 + 𝑘3
= 1+ y + x 2 , y(0) = 0.5
dx
x1 = 0.2, y1 = 0.8349
Dùng RK 4 tìm y(0.2), y(0.4)
𝑘1 = ℎ. 𝑓 𝑥1 , 𝑦1 = 0.2 1 + 0.8349 + 0.22 = 0.3750
2
ℎ 𝑘1 0.3750 0.2
𝑘2 = ℎ. 𝑓 𝑥1 + , 𝑦1 + = 0.2 1 + 0.8349 + + 0.2 + = 0.4225
2 2 2 2
2
ℎ 𝑘2 0.4225 0.2
𝑘3 = ℎ. 𝑓 𝑥1 + , 𝑦1 + = 0.2 1 + 0.8349 + + 0.2 + = 0.4272
2 2 2 2
𝑘4 = ℎ. 𝑓 𝑥1 + ℎ, 𝑦1 + 𝑘3 = 0.2 1 + 0.8349 + 0.4272 + 0.2 + 0.2 2 = 0.4844
1 1
𝑦2 = 𝑦1 + 6 𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 = 0.8349 + 6 (0.3750 + 2(0.4225) + 2(0.4272) +
0.4844) ≈ 1.2614 = y(0.4)
FETEL-HCMUS 2023 240

Ví dụ: Áp dụng công thức Runge-Kutta bậc 4

Bài toán :
dy
= 1+ y + x 2 , y(0) = 0.5
dx
Dùng RK 4 tìm y(0.2), y(0.4)

Kết quả
xi yi

0.0 0.5

0.2 0.8349

0.4 1.2614
FETEL-HCMUS 2023 241

So sánh các phương pháp

f(y,t) ‘-’
Euler ‘o’
Heun ‘x’
RK4 ‘*’

Bài tập
6.2-6.8/221-222 Giáo
So sánh và kiểm tra trình PPT và Matlab –
Lê Trọng Vinh,
trên Matlab Trần Minh Toàn

Hàm f(t,y) = -y+1 (nguyên hàm) => y(t)=1-exp(-a*t) (a=1)


FETEL-HCMUS 2023 242

Giải đáp thắc mắc

Câu hỏi ?
FETEL-HCMUS 2023 243

Bài thi cuối kỳ

You might also like