NGUYỄN THẾ HÙNG PHƯƠNG PHÁPTÍNH NUMERICAL METHODS FOR ENGINEERS *********** DANANG UNIVERSITY OF TECHNOLOGY Danang 2010... Nội suy Newton với mốc không cách đều Khoảng cách xi+1 -
Trang 1
Prof NGUYỄN THẾ HÙNG
PHƯƠNG PHÁPTÍNH
NUMERICAL METHODS
FOR ENGINEERS
***********
DANANG UNIVERSITY OF TECHNOLOGY
Danang 2010
Trang 2CÁC CÔNG THỨC TÍNH (Được phép mang vào phòng thi)
Chương 2: Nội suy
2.1 Đa thức nội suy Lagrăng
Cho bảng các giá trị x x1 x2 x3 xn
y y1 y2 y3 .yn
Ký hiệu: (x) = (x - x1)(x - x2) (x - xn)
Ta có được đẳng thức:
) x x ) (
x x )(
x x )(
x
x
(
) x ( y
) x x ) (
x x )(
x x )(
x x (
(x) y )
x x ) (
x x )(
x x )(
x
-(x
(x) y )
x
(
1 n n 2
n 1 n n
n
n 2 3 2 1 2 2
2 n
1 3 1 2 1 1
1
Hay: f(x)=
) x x ).(
x (
) x ( y
k k
' k n
1
k
Đây là đa thức nội suy Lagrange
2.2 Nội suy Newton
(a) Nội suy Newton với mốc cách đều
Giả sử y0 , y1 , y2 , là những giá trị nào đó của hàm y = f(x) tương ứng với các giá trị cách đều nhau của các đối số x0 , x1 , x2
Ký hiệu: y1 - y0 = y0 ; y2 - y1 = y1 ; ; yn - yn - 1 = yn - 1 là sai phân cấp 1 y1 - y0 = 2
y0 ; y2 - y1 = 2
y1 ; là sai phân cấp 2 n
y1 - n
y0 = n + 1
y0 ; n
y2 - n
y1 = n + 1
y1 ; là sai phân cấp n + 1
Ta có công thức nội suy Newton:
h
! 2
) h x x )(
x x ( y h
x x
0 2 2
0 0
0
(b) Nội suy Newton với mốc không cách đều
Khoảng cách xi+1 - xi = hi không phải là hằng số
Đa thức nội suy có dạng:
Các điểm dữ liệu được sử dụng để tính các hệ số b0, b1, bn Được tính:
0 ( )0
b f x
1 [ ,1 0]
b f x x
[ , , ]
b f x x x
Trang 31 1 0
[ , , , , ]
Tỷ sai phân cấp 1 của f tại xi, xj là:
[ ,i j] ( )i ( j)
i j
f x f x
f x x
x x
Tỷ sai phân cấp 2 của f tại xi, xj, xk là:
[ ,i j, k] [ ,i j] [ ,j k]
i k
f x x f x x
f x x x
x x
Tương tự như vậy, tỷ sai phân cấp n của f là:
1 1 0
0
n n
n
Thay các hệ số trên vào phương trình (2.9) ta nhận được đa thức nội suy Newton:
0 0 1 0 0 1 2 1 0
( ).( ) ( ) [ , , , ]
n
P f x x x f x x x x x x f x x x
x x x x x x f x x x
(2.29)
2.3 Nội suy Spline
y = fi(x) =
1 1
3 1 3
1
6
) (
"
6
) (
"
6
) )(
(
"
6
) )(
(
"
i
i i
i i i
i i
i i
i
i
i
x x x x f x
y x x x x f x
y x
x x x f x
x x
x
f
Với xi = xi - xi – 1, với i = 1,2,….,n (dạng sai phân lùi)
) x ( f
) x ( f ) x x
( 2 0
0
0 )
x x
( 2 x
0
0 x
) x x
( 2 x
0 0
x )
x x
(
2
1 n
"
2
"
1
"
n 1
n
4 3
3
3 3
2 2
2 2
1
6
n n 1
n
1 n
3 3 2
2
2 2 1
1
x
y x
y
x
y x
y
x
y x
y
Trang 4
Chương 3: Tính gần đúng đạo hàm và tích phân
3.1 Tính gần đúng đạo hàm
Ta cũng có thể áp dụng khai triển Taylor:
f(x + h) = f(x) + h f’(x) +
! 2
2
h
f”(c), với c = x + h, 0 < < 1
f’(x)
h
) x ( f ) h x (
3.2 Tính gần đúng tích phân xác định
3.2.1 Công thức hình thang
1 n 2
1 n 0 T
n 1 n 2
1 1
0 T
y
y y 2
y y h I
) y y
(
) y y ( y y 2
h I
Sai số: I - IT h ( b a )
12
M 2 , với M = max f”(x), a x b
3.2.2 Công thức Simpson
)]
( 2 )
( 4 ) [(
3
)]
4 (
) 4
( ) 4
[(
3 )
(
2 2 4
2 1
2 3
1 2
0
2 1 2 2 2 4
3 2 2 1 0
n n
n
n n n
b
a
y y
y y
y y y
y
h
I
y y y
y y y y y y
h dx x
f
180
4
a b
h M I
I S
Với: M = max fiv(x) , a x b
3.2.3 Công thức của Gauss
3.2.3.1 Liên hệ giữa các hệ tọa độ tổng thể và hệ tọa độ địa phương
y
x J y
x y x
y x
Hay:
1
J y
x
ở đây J là ma trận Jacobian biến đổi toạ độ
+ Cho phần tử tứ giác tuyến tính:
e
d d J dxdy
1
1 1
1
det
Trang 5+ Cho phần tử tam giác tuyến tính:
e
d d J dxdy
1
0 1
0
det
3.2.3.2 Tích phân số
Với phần tử tứ giác:
1
1 1
, ,
n
i n
j
j i j
i w f w d
d
f
Với phần tử tam giác:
1
0 1
, 2
1 ,
i
i i
i f w d
d
Bảng 1: Điểm tích phân cho phần tử tam giác
3
1/ 2 1/ 2
0
1/ 2
0 1/ 2
1/ 3 1/ 3 1/ 3 Bảng 2: Trọng số và điểm tích phân Gauss – Legendre
Điểm tích phân i Số điểm tích phân r Trọng số w i
5773502692
0
0000000000
7745966692
0
3399810
0
8611363116
0
0000000000
5384693101
0
9061798459
0
2386191861
0
6612093865
0
9324695142
0
Chương 4: Giải gần đúng phương trình và
hệ phương trình phi tuyến
Trang 64.1 Giải gần đúng phương trình
4.1.1 Phương pháp dây cung
x1 = a -
) a ( f ) b ( f
) a ( bf ) b ( af ) a ( f ) b ( f
) a ( f a b (
)]
x ( ' f
) x (
"
f max 2
) b ( f ).
a ( f
4.1.2 Phương pháp Newton-Raphson
Nhiệm : x1 = x0 -
) x ( ' f
) x (
0 0
Sai số: xn <
m
) x (
, với: 0 < m < f ,( xn) và x b
4.2 Giải hệ phương trình phi tuyến
i
i i 1 i i
i i 1 i i 1 i
i
i i 1 i i
i i 1 i i 1 i
y
v ).
y y ( x
v ).
x x ( v v
y
u ).
y y ( x
u ).
x x ( u u
x
v y
u y
v x u
x
v u x
u v y
y
x
v y
u y
v x u
y
u v y
v u x
x
i i i i
i i i i i
i
i i i i
i i i i i
i
.
.
1 1
Chương 5: Các phương pháp số của đại số tuyến tính
5.1 Phương pháp lặp đơn hệ phương trình
)
0 (
) 1 m ( )
m (
x
g Bx
x
x
y
O
A
B
a
b
P
Trang 7Trong đó: (Bx)i =
n
1 j
j
b , x(0)
cho trước
5.2 Phương pháp lặp Seidel
Giả sử cho hệ: A x b xi = i +
n
j
j
ijx
1
với i = 1, 2, , n
Lấy xấp xỉ ban đầu là x1(0) , x2(0) , , xn(0)
Tiếp theo, giả sử ta đã biết xấp xỉ thứ k là xi(k) theo Seiden, ta sẽ tìm xấp xỉ thứ ( k+1) của nghiệm theo công thức:
1 1
) ( )
1 ( )
1 (
) ( 1
1
) 1 ( )
1 (
2
) ( 2 )
1 ( 1 21 2 ) 1 ( 2
1
) ( 1 1
) 1 ( 1
n
j
k n nn
k j ij n
k n
n
i j
k j ij i
j
k j ij i
k i
n
j
k j j k
k
n
j
k j j k
x x
x
x x
x
x x
x
x x
A PHƯƠNG TRÌNH VI PHÂN THƯỜNG
6.2.1 Phương pháp xấp xỉ liên tiếp Pica
Mục đích của phương pháp này là xây dựng nghiệm cần tìm là y= y(x)
x
x x
0 x
dt ) y , ( f ) x ( y ) x ( y dt
) y , ( f dy
Hay: x
x 0
0
dt ) y , t ( y
) x (
y (6.2.4)
Giả sử f(x,y) là hàm liên tục theo x,y và
y
f
< K
Để tìm xấp xỉ liên tiếp, trong (6.2.4) thay y bằng y0, ta có xấp xỉ thứ nhất:
x
x
0 0
1
0
dt ) y , ( f y
Trang 8Tương tự có xấp xỉ thứ hai: x
x
1 0
2
0
dt ) y , ( f y
y
Tổng quát, ta có: x
x
1 n 0
n
0
dt ) y , ( f y
x
1 n 0
n
0
dt ) y , ( f y
) x ( y ) x ( y
lim y ( x ) y ( x )
n
Sai số:
! n K
) KC ( M ) x ( y ) x
(
y
n
n , trong đó f ( x , y ) = M
Với: x x0 < a , y y0 < b , thì C = min
M
b , a
II 6.2.2 Phương pháp Euler
`
Xét phương trình vi phân: u’ = f(x , u)
) k u , h x ( f h
k
) k 5 0 u , h 5 0 x ( f h
k
) k 5 0 u , h 5 0 x ( f h
k
) u , x ( f
h
k
3 i i
4
2 i
i 3
1 i
i 2
i i 1
ui +1 = ui + ( k 2 k 2 k k )
6
1
4 3 2
1
Với sai số: ui Y ( xi) 0 ( h4)
6.2.4 Phương pháp Adam
Giả sử cần giải phương trình vi phân:
Y’ = f(x , y), với điều kiện ban đầu: y(x0) = y0
Cho biến số thay đổi bởi bước h nào đó; xuất phát từ điều kiện ban đầu Y(x0) = Y0 bằng phương pháp nào đó (ví dụ: phương pháp Runghe-Kutta bậc 4), ta tìm được 3 giá trị tiếp theo của hàm cần tìm y(x): Y1 = Y(x1) = Y(x0+h),
Y2 = Y(x0+2h), Y3 = Y(x0 + 3h)
Nhờ các giá trị x0 , x1 , x2 , x3 và Y0 , Y1 , Y2 , Y3 , ta tính được q0, q1, q2, q3
Trong đó: q0 = h.Y0’ = h.f(x0 , y0), q1 = h.f(x1 , y1), q2 = h.f(x2 , y2),
x
y
O xo x1 x2 x3
A2
A3
y=f(x)
Trang 9q3 = h.f(x3 , y3), sau đó ta lập bảng sai phân hữu hạn của các đại lượng y và q
x y y q q 2
q 3
q -
xo yo qo yo q0 x1 y1 q1 2
q0 y1 q1 3
q0 x2 y2 q2 2
q1 -
y2 q2 -
x3 y3 q3 -
-
- - - - - - -
Biết các số ở đường chéo dưới, ta tìm y3 theo công thức Adam như sau: 0
3 1 2 2 3 3 q 8 3 q 12 5 q 2 1 q y Tiếp đó ta có: Y4 = Y3 + Y3 q4 = h.f(x4, Y4) Sau đó viết đường chéo tiếp theo như sau: q3 = q4 - q3 , 2 q2= q3 - q2 , 3 q1 = 2 .q2 - 2 .q Đường chéo mới cho phép ta tính Y4 : Y4 = q4 + 1/2 q3 + 5/12 2 q2 + 3/8 3 q1 Vì vậy ta có: Y5 = Y4 + Y4