1 Đặt vấn đề2 Nội suy Nội suy Lagrange Nội suy spline 3 Hồi qui Hồi qui tuyến tính Đương cong khớp bậc cao Đường cong khớp tổng quát... Hồi quy Regression dùng tiêu chí bình phương bé nh
Trang 1Nguyễn Đức Nghĩa, Vũ Văn Thiệu, Trịnh Anh Phúc 1
1 Bộ môn Khoa Học Máy Tính, Viện CNTT & TT, Trường Đại Học Bách Khoa Hà Nội.
Ngày 13 tháng 12 năm 2012
Trang 21 Đặt vấn đề
2 Nội suy
Nội suy Lagrange
Nội suy spline
3 Hồi qui
Hồi qui tuyến tính
Đương cong khớp bậc cao
Đường cong khớp tổng quát
Trang 3Vấn đề đặt ra là :
Giả sử cần tính xấp xỉ hàm f (x ) không biết rõ công thức, tuy nhiên bằngthực nghiệm ta xác định được giá trị f (x ) tại n + 1 điểm rời rạc
fi = f (xi) i = 0, 1, · · · , NCho bộ dữ liệu {(xi, fi), i =0, N}, cần tìm cách xấp xỉ hàm f (x ) bởi mộthàm (có thể được tính theo công thức giải tích) p(x ) sao cho ’khoảngcách’ giữa chúng trên bộ dữ liệu nhỏ nhất có thể
Trang 4Hồi quy (Regression) dùng tiêu chí bình phương bé nhất (least
squares) : cho trước dạng f (x ) có tham số, ta phải điều chỉnh cáctham số này bằng cách cực tiểu nó theo tiêu chí nào đó
Trang 6Nội suy
Định nghĩa : Ta nói hàm p(x ) là hàm nội suy bộ dữ liệu
{(xi, fi), i = 0, N} nếu thực hiện các điều kiện sau
pi = fi i = 0, 1, · · · , N
hệ N + 1 đẳng thức gọi là điều kiện nội suy Sở dĩ hàm đa thức đượcchọn vì việc tính giá trị, đạo hàm, vi phân dễ dàng (tính chất giải tích củahàm rõ ràng)
Đa thức nội suy bộ dữ liệu được gọi là đa thức nội suy (interpolatingpolynominal)
Định nghĩa : Ta gọi đa thức bậc không quá K là hàm
pK(x ) = a0+ a1x + · · · + aKxKtrong đó a0, a1, · · · , aK là các hằng số
Trang 7Nội suy tuyến tính
Ta có hai điểm dữ liệu (x0, f0) và (x1, f1) cần nội suy bởi đa thức
p1(x0) ≡ a0+ a1x0= f0
p1(x1) ≡ a0+ a1x1= f1Giải ra, ta có
Khi x06= x1 xảy ra hai trường hợp
Trang 8Nội suy tuyến tính (tiếp)
x
f
(4,3)
(9,6)p1(x ) = 0.6 + 0.6x
Trang 9Công thức nội suy Lagrange
Cần xây dựng đường cong đi qua 3,4 hay nhiều điểm (xem hình)
Trang 10Công thức nội suy Lagrange (tiếp)
Xét đa thức
pM(x ) = a0+ a1x + a2x2+ · · · + aMxMVậy đa thức pM(x ) nội suy bộ dữ liệu {(xi, fi), i = 0, N} nếu các điều kiệnnội suy :
pM(x0) ≡ a0+ a1x0+ a2x02+ · · · + aMx0M = f0
pM(x1) ≡ a0+ a1x1+ a2x12+ · · · + aMx1M = f1
· · ·pM(xN) ≡ aN+ a1xN+ a2xN2 + · · · + aMxNM = fNĐây là một hệ phương trình tuyến tính nên ta có thể biểu diễn bằng côngthức dạng ma trận
Trang 11Công thức nội suy Lagrange (tiếp)
Như vậy dạng ma trận của điều kiện nội suy
N=M : hệ phương trình có nghiệm duy nhất
M<N : có thể chọn bộ dữ liệu để nó vô nghiệm
M>N : nếu hệ có nghiệm thì nó có vô số nghiệm
Trang 12Công thức nội suy Lagrange (tiếp)
Khi N = M ma trận hệ số của hệ phương trình trên là ma trận
Vandermonde (Không phải Voldemort)
suy ra hệ có nghiệm khi x0, x1, · · · , xN là phân biệt từng đôi
Trang 13Công thức nội suy Lagrange (tiếp)
Định lý (Tính duy nhất của đa thức nội suy) : Nếu các nút dữ liệu
x0, x1, · · · , xN là khác nhau từng đôi thì tồn tại duy nhất đa thức nội suy
pN(x ) bậc không quá N nội suy bộ dữ liệu {(xi, fi), i = 0, N}
Bậc của đa thức nội suy có thể nhỏ hơn N
Ví dụ, khi 3 điểm dữ liệu (x0, f0), (x1, f1), (x3, f3) thằng hàng thì phươngtrình nội suy trở thành bậc không quá hai do nó là đường thẳng
Trang 14Ví dụ 1 :
Xác định các hệ số của đa thức nội suy p2(x ) = a0+ a1x + a2x2 nội suy
bộ dữ liệu {(-1,0),(0,1),(1,3)}, ta có điều kiện nội suy
Trang 15Công thức nội suy Lagrange (tiếp)
Việc dùng giải trực tiếp hệ phương trình điều kiện nội suy dùng phép khử
thừa của hệ số x có thể rất cao nên độ sai số lại càng lớn do hiệu ứng việclàm tròn số, thậm chí còn tràn số (nhớ lại là số dấu phẩy động IEEE754/85 độ chính xác kép chỉ là ≈ ±1038)
⇒ ta có thể dùng công thức nội suy Lagrange để tính hằng số của đathức nội suy mà không cần giải hệ phương trình tuyến tính trên
Trang 16Công thức nội suy Lagrange (tiếp)
Xét bộ dữ liệu {(xi, fi), i = 0, N} dạng Lagrange của đa thức nội suy đốivới bộ dữ liệu là như sau :
pN(x ) = f0V0(x ) + f1V1(x ) + · · · + fNVN(x )trong đó Vi(x ) : i = 0, 1, · · · , N là các đa thức bậc N thỏa mãn điều kiện :
Vi(xj) =
(
1, i = j
0, i 6= j
Họ các đa thức Vi(x ) : i = 0, 1, · · · , N được gọi là họ các đa thức cơ sở
Dễ dàng kiểm tra được rằng :
pN(xi) = fi i = 0, 1, · · · , N
Trang 17Công thức nội suy Lagrange (tiếp)
Một trong lớp đa thức cơ sở có thể xây dựng theo công thức như sau
Vi(x ) =
Q
i 6=j(x − xj)Q
i 6=j(xi − xj)
Trang 18Công thức nội suy Lagrange (tiếp)
Vậy công thức nội suy Lagrange
Trang 20Cài đặt Vi(x ) bẳng Matlab (tiếp)
Hai vectơ x,y chứa hoàng độ và tung độ của bộ dữ liệu
u là vec tơ chứa các hoàng độ của các điểm cần tính theo công thứcnội suy Lagrange
v là vectơ chứa giá trị hàm nội suy tại các điểm cho trong u
Trang 23Sai số nội suy
Định nghĩa : Sai số của đa thức nội suy g (x ) được xác định bởi công thức :
e(x ) = f (x ) − g (x )
Độ lớn của e(x) phụ thuộc vào
Hoàng độ của các điểm dữ liệu
Kích thước của miền nội suy D = xn− x0
Bậc của đa thức nội suy
Đối với đa thức nội suy Lagrange, sai số được xác định bới công thức :
e(x ) = f (x ) − g (x ) = L(x )f(N+1)(ξ)
L(x ) = (x −x0 )(x −x 1 )···(x −x n )
(N+1)!
Trang 24Sai số nội suy (tiếp)
tiếp tục công thức :
e(x ) = f (x ) − g (x ) = L(x )f(N+1)(ξ)
ξ phụ thuộc x nhưng thỏa mãn điều kiện x0 < ξ < xN Cũng theo công
tiêu, nghĩa là sai số bằng không Do L(x ) = (x −x0 )(x −x 1 )···(x −x n )
các kết luận sau
Với một lưới cách đều, biên độ dao động của L(x ) nhỏ nhất tại tâm
và tăng dần về biên của miền nội suy
Kích thước nội suy tăng lên, độ lớn của dao động tăng nhanh chóng
Trang 26Đặt vấn đề
Trong trường hợp này ta xét phép nội suy bởi một tập các các đa thứcbậc thấp thay vì một đa thức bậc cao duy nhất
Nội suy bởi spline tuyến tính
Nội suy bởi spline bậc ba
Nhớ lại công thức đánh giá sai số nội suy Lagrange
f (x ) − pN(x ) = [wN+1(x )/(N + 1)!]f(N+1)(ξx)trong đó wN+1(x ) = (x − x0)(x − x1) · · · (x − xN) và ξx là một giá trịtrong khoảng (x0, xN).
Trang 27approximation) : Như vậy đoạn [a, b] sẽ được chia thành nhiều đoạn nhỏkhông đè nhau và các đa thức khác nhau sẽ được xấp xỉ trên từngđoạn con.
Trang 29Spline tuyến tính từng khúc (tiếp)
f N −fN−1
x N −x N−1(x − xN) + fN, nếux ∈ [xN−1, xN]
Trang 30Spline tuyến tính từng khúc (tiếp)
Sử dụng công thức sai số cho đa thức nội suy với x ∈ [a, b] cho từng đoạn[xi −1, xi] ta được
Trang 36pi(x ) = ai ,0+ ai ,1x + ai ,2x2+ ai ,3x3, nếux ∈ [xi −1, xi]
pN(x ) = aN,0+ aN,1x + aN,2x2+ aN,3x3, nếux ∈ [xN−1, xN]S3,N(x ) là hàm liên tục có đạo hàm cấp một và hai liên tục trên đoạn[x0, xN] (kể cả tại các nút)
Trang 37Điều kiện về tính trơn tại điểm x i thì
pi0(x i ) = p0i +1(x i ); p i ”(x i ) = p i +1 ”(x i ); i = 1, 2, · · · , N − 1 Điều kiện nội suy dữ liệu đảm bảo
p i (x i ) = p i +1 (x i ) = f i ; i = 0, 1, 2, · · · , N − 1
Trang 41» yy = polyval(coef,xx);
» plot(x,y,’o’,xx,yy,’r’)
Trang 42Như vậy khi ta nôi suy bằng spline bậc 3 thì tốt hơn nội suy đa thức vớihàm sin(10x)
Trang 46k=1(f (xk) − yk)2
!1/2
Trang 47Hồi qui tuyến tính
Hồi qui tuyến tính là việc tìm một đường thẳng khớp với các điểm dữ liệutheo nghĩa bình phương tối thiểu
Cho tập N cặp điểm dữ liệu {(xi, fi) : i = 1, · · · , N}
Tìm hệ số m và hằng số tự do b của đường thẳng
y (x ) = mx + bsao cho đường thẳng này khớp với dữ liệu theo tiêu chí bình phươngtối thiểu
L(m, b) =
NX
i =1(fi − (mxi + b))2
Trang 48Hồi qui tuyến tính (tiếp)
Nghĩa là ta cần tìm m và b để đạt cực tiểu hàm
L(m, b) =
NX
i =1(fi − (mxi + b))2
để tìm cực tiểu này, ta cần giải hệ phương trình tìm điểm dừng
∂L
NX
i =12(fi − (mxi+ b))(−xi) = 0
∂L
NX
i =12(fi − (mxi+ b))(−1) = 0
Trang 49Hồi qui tuyến tính (tiếp)
" NX
i =1
xifi
" NX
i =11
#
b =
NX
! mb
!
=
PN
i =1xifiPN
i =1fi
!
Giải hệ phương trình ta có được hệ số m và b
Trang 50từ đó tìm được b = 107/35 và m = −6/35, đường thẳng cần tìm là
y = (−6/35)x + 107/35
Trang 51Đường cong khớp bậc cao
Xây dựng đường cong khớp
pM(x ) = a0+ a1x + a2x2+ · · · + aMxMkhớp với bộ dữ liệu {(xi, fi)i = 1, · · · , N} theo tiêu chí bình phương tốithiểu
σM ≡ (pM(x1) − f1)2+ (pM(x2) − f2)2+ · · · + (pM(xN) − fN)2Giải hệ phương trình tìm điểm dừng
Trang 52Đường cong khớp bậc cao (tiếp)
Viết dưới dạng ma trận hệ phương trình chuẩn
i =1fixi
.PN
Trang 53Ví dụ 7 :
Xác định các tham số a, b, c ccủa đường cong
y = ax2+ bx + ckhớp với bộ dữ liệu sau
Trang 56Đường cong khớp tổng quát
Giả sử ta muốn khớp N điểm đa cho {(xi, fi) : i = 1, · · · , N} bởi họ gồm
m hàm độc lập tuyến tính ϕj(x ), j = 1, 2, · · · , m tức là hàm f (x ) cần tìm
có dạng
f (x ) =
mX
Trang 57Đường cong khớp tổng quát (tiếp)
Ta cần xác định các số c1, c2, · · · , cm để cực tiểu hóa sai số căn bậc haicủa tổng các bình phương sai số :
E (c1, c2, · · · , cm) =
nX
k=1(f (xk) − fk)2 =
nX
Để tìm các hệ số c1, c2, · · · , cm, ta cần giải hệ phương trình
∂E
∂cj = 0, j = 1, 2, · · · , m