Professional Documents
Culture Documents
Phan 2 Phuong Phap Tinh
Phan 2 Phuong Phap Tinh
Phần 2
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
Chương 7
Sai số
FETEL-HCMUS 2023 4
Time (s) 5 8 12
Vel (m/s) 106 177 600
FETEL-HCMUS 2023 5
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
• Vi phân
FETEL-HCMUS 2023 9
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
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:
d. f1 f2 f3 f4 10n
sign mantissa exponent
d 0, n : signed exponent
2
FETEL-HCMUS 2023 21
Hệ nhị phân
(11.1875)10 = (1011.0011)2
FETEL-HCMUS 2023 23
1. f1 f 2 f3 f 4 2 n
sign mantissa signed exponent
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
(10100010) −127
= (−1) (1.10100000)2
1 2
2
= (−1) (1.625) 2162−127
= (−1)(1.625) 235 = −5.58341010
Example#2
Biểu diễn -5.5834x1010 dưới dạng số chấm động 32 bit.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
e = 0 all zeros
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.4010 38
Số nhỏ nhất:
(1.00......0)2 2 −126
= 2.1810 −38
Sai biệt:
machine = 2-23 = 1.1910-7
Câu hỏi: với số 64 bit IEEE-754, kết quả như thế nào?
3.141592653
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: 𝑎 ≈ 𝐴
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
∆𝑎
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
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
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:
Hàm 𝑥 𝛿𝑓 = 𝛿𝑥 + 𝛿𝑦 𝒙, 𝒚 > 𝟎
𝑓=
thương 𝑦
Hàm mũ 𝑓 = 𝑥𝛼 𝛿𝑓 = |𝛼|𝛿𝑥 𝛼: hằng số
FETEL-HCMUS 2023 41
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 (𝑐)
Chương 8
𝑎 < 𝑥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
𝑎 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
𝑦=𝑥
𝒙𝒏 = 𝒈 𝒙𝒏 − 𝟏
FETEL-HCMUS 2023 57
Bước 1: Viết 𝑓 𝑥 = 0
𝑥 1
Bước 2: Kiểm tra điều kiện 𝑔′ 𝑥 = 1− ≤ ; 𝑞 < 1, ∀𝑥 ∈ [1,3]
2 2
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ụ
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
𝑓 𝑥𝑛
𝑥𝑛+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
Chương 9
IS
FETEL-HCMUS 2023 72
Vòng I1
(1)
Vòng I2
Do (2)
Vòng I3
(3)
(1), (2), (3)
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ố 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
Ví dụ
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);
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
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ụ
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
Bước 1: Phân tách A=L.U (đã tính ở trên) Giải hệ phương trình 𝑌=𝑈.𝑋 để tìm 𝑋
Ta có: 𝑦1 = 3,
𝑦2 = 13 − 3𝑦1 = 4,
𝑦3 = 4 − 2𝑦1 − 𝑦2 = −6
FETEL-HCMUS 2023 98
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
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
1 1 −1
= 1 2 0 = 2 0
−1 0 4
FETEL-HCMUS 2023 101
• Y=
Y=
Giải hệ phương trình 𝑌 = 𝐿′. 𝑋 để tìm 𝑋
(Giải tương tự LU)
• 𝑋=
𝑋=
FETEL-HCMUS 2023 103
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
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
3
𝐶 = max 3/9 3/6 3/5 = <1
5
FETEL-HCMUS 2023 110
Vậy
Biến đổi ta có
giả sử 𝑥2 = 0 và 𝑥3 = 0
Sai số
FETEL-HCMUS 2023 114
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)
CHƯƠNG 10
Đặ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)
https://spaceflightnow.com
FETEL-HCMUS 2023 119
Giải pháp
(16)
->Bài toán nội suy
(t): là hàm nội suy
FETEL-HCMUS 2023 120
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.
Đ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
Trực tiếp
Đa thức Lagrange
Đa thức Newton
Đa thức Chebyshev
Hàm Spline
FETEL-HCMUS 2023 124
Pn(x)
FETEL-HCMUS 2023 126
[KQ: 29,6m/s2]
FETEL-HCMUS 2023 130
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 !
𝑛
𝑃𝑛 𝑥 = 𝑦𝑗 𝐿𝑗 𝑥
𝑗=0
𝑥 − 𝑥0 𝑥 − 𝑥1 . . . 𝑥 − 𝑥𝑗−1 𝑥 − 𝑥𝑗+1 . . . 𝑥 − 𝑥𝑛
𝐿𝑗 𝑥 =
𝑥𝑗 − 𝑥0 𝑥𝑗 − 𝑥1 . . . 𝑥𝑗 − 𝑥𝑗−1 𝑥𝑗 − 𝑥𝑗+1 . . . 𝑥𝑗 − 𝑥𝑛
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
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 𝑥𝑖
𝑛
ℎ 𝑥ҧ yi 1
Đ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 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 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
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)
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.
Đ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)
Đa thức Chebyshev
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
Đặ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ℎ𝑘
2 3
𝑔𝑘 𝑥 = 𝑎𝑘 + 𝑏𝑘 𝑥 − 𝑥𝑘 + 𝑐𝑘 𝑥 − 𝑥𝑘 + 𝑑𝑘 𝑥 − 𝑥𝑘
=>
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
Bước 1. Tính
ℎ𝑘 = 𝑥𝑘+1 − 𝑥𝑘 ; 𝑘 = 0, 𝑛 − 1
𝑎𝑘 = 𝑦𝑘 ; 𝑘 = 0, 𝑛
Bước 2. Giải hệ 𝐴. 𝑐 = 𝑏 tìm 𝑐 = 𝑐0 , 𝑐1 , … , 𝑐𝑛 𝑇
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ảng dữ liệu đo
x 1 2 3
y 5.1 5.9 6.3
𝑏 = 𝑦ത − 𝑎𝑥ҧ
𝑎 = 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
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)
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 = ?
𝑛
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
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
CHƯƠNG 11
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
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
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
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
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
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
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
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% ]
a b x
165
FETEL-HCMUS 2023 186
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
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
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
Với
FETEL-HCMUS 2023 191
Giải:
X 1 2 3 4 5
f(x)=1/x 1/1 1/2 1/3 1/4 1/5
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
t=0 t=2
Ta có công thức Simpson dạng tổng quát (i = 0:2n):
Với
FETEL-HCMUS 2023 194
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
Simpson’s 3/8
(4 điểm)
Simpson’s 1/3
(3 điểm)
174
FETEL-HCMUS 2023 196
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
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
Với c0 và c1 là hằng số
Ta có 𝑏−𝑎
𝑐0 = 𝑐1 =
2
Hàm y=x3
FETEL-HCMUS 2023 200
𝐽 𝑎, 𝑏, 𝑐 𝑥 , 𝑑 𝑥 = 𝑤𝑚 𝑣𝑛 𝑓(𝑥𝑚 , 𝑦𝑚,𝑛 )
m=1 n=1
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
CHƯƠNG 12
Đạo hàm
Đạo hàm
u u
2 2
− =0
2
d v
+ 6tv = 1 y x
2 2
2
dt
FETEL-HCMUS 2023 207
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 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
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
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
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
Nghiệm của pt là y = x2 + x + 0
FETEL-HCMUS 2023 214
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
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
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
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
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
ҧ 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
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ụ
2019
FETEL-HCMUS 2023 223
Kết quả
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
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
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
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
So sánh
FETEL-HCMUS 2023 231
𝑦 𝑥 + ℎ = 𝑦 𝑥 + 𝑝𝑟 𝑘𝑟 (ℎ)
𝑟=1
Trong đó:
𝑘1 ℎ = ℎ. 𝑓 𝑥, 𝑦 𝑥
𝑘2 ℎ = ℎ. 𝑓 𝑥 + 𝛼2 ℎ, 𝑦 𝑥 + 𝛽21 𝑘1 (ℎ)
𝑘3 ℎ = ℎ. 𝑓 𝑥 + 𝛼3 ℎ, 𝑦 𝑥 + 𝛽31 𝑘1 (ℎ) + 𝛽32 𝑘2 (ℎ)
…
𝑞−1
𝑘𝑞 ℎ = ℎ. 𝑓(𝑥 + 𝛼𝑞 , 𝑗=1 𝛽𝑞𝑗 𝑘𝑗 (ℎ) % kr: hàm độ dốc
σ
𝑦 𝑥 + ℎ = 𝑦 𝑥 + 𝑝𝑟 𝑘𝑟 (ℎ)
𝑟=1
Khi q=1:
Runge-Kutta bậc 1:
𝑦 𝑥 + ℎ = 𝑦 𝑥 + ℎ. 𝑓 𝑥, 𝑦 𝑥
𝑘1 ℎ = ℎ. 𝑓 𝑥, 𝑦 𝑥 ,
𝑝1 = 1
PP Runge-Kutta (cont.)
PP Runge-Kutta bậc 2: 𝑘1 ℎ = ℎ. 𝑓 𝑥, 𝑦 𝑥
𝑘2 ℎ = ℎ. 𝑓 𝑥 + 𝛼2 ℎ, 𝑦 𝑥 + 𝛽21 𝑘1 (ℎ)
𝑘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
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
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
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
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
Câu hỏi ?
FETEL-HCMUS 2023 243