Tải bản đầy đủ (.pdf) (27 trang)

Bài tiểu luận môn phương pháp tính nhóm 03

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1006.3 KB, 27 trang )

GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2



BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP. HỒ CHÍ MINH
KHOA TOÁN


MÔN: PHƯƠNG PHÁP TÍNH
Chủ Đề 3:

THUẬT TOÁN XÁC ĐỊNH CÔNG THỨC TÍNH GIÁ TRỊ
CỦA ĐA THỨC, GHI Ở DẠNG CHÍNH TẮC, TRÊN CƠ SỞ
DÙNG CÔNG THỨC NỘI SUY NEWTON

Giảng viên hướng dẫn: TS. TRỊNH CÔNG DIỆU
Sinh viên thực hiện:

1. BÙI THỊ THƠM
2. TRẦN VĂN TÂN
3. NGUYỄN THỊ CHÍ THANH


BÀI TIỂU
LUẬN
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

TÓM TẮT NỘI DUNG


Phần 1: MỞ ĐẦU
Phần 2: CƠ SỞ LÝ LUẬN
I. Lũy thừa suy rộng bậc n của số thực a với bước nhảy h
II. Các dạng biểu diễn đa thức
III. Định lý 1 (Định lý Bezout)
IV. Định lý 2
V. Hệ quả
VI. Xây dựng bài toán chuyển đa thức từ dạng chuẩn tắc suy rộng về chính tắc bằng
phương pháp Hoocne ngược
VII. Sai phân:
1. Định nghĩa
2. Bảng sai phân dùng tính sai phân các cấp của hàm f tại điểm
0
x

3. Công thức tính sai phân
VIII. Nội suy NEWTON:
1. Đa thức nội suy NEWTON
2. Đa thức nội suy NEWTON có mốc nội suy cách đều
a. Định lý của công thức nội suy NEWTON thứ nhất
b. Công thức nội suy NEWTON thứ hai
IX. Cách chuyển từ bài toán có các mốc nội suy không đều về bài toán có mốc cách đều
Phần 3: THUẬT TOÁN
I. Dạng bảng:
1. Dạng bảng của công thức tìm giá trị của đa thức ở dạng chuẩn tắc suy rộng bằng
phép nội suy Newton.
2. Dạng bảng của thuật toán chuyển từ dạng chuẩn tắc suy rộng về dạng chính
tắc bằng phương pháp Hoocne ngược.
3. Dạng bảng của thuật toán chuyển từ dạng chuẩn tắc suy rộng về dạng chính
tắc theo nhóm 2

GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

II. Thuật toán:
1.Trường hợp 1: Khi các mốc nội suy cách đều (bước nhảy h đều)
2. Trường hợp 2: Khi các mốc nội suy không cách đều
III. Mã giả
Phần 4: MỘT SỐ VÍ DỤ CHI TIẾT
Phần 5: ĐOẠN CHƯƠNG TRÌNH
NHẬN XÉT CHUNG
















GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

PHẦN 1: MỞ ĐẦU

Trong toán học, ta thường gặp những bài toán khảo sát và tính giá trị của hàm số y = f(x) nhưng
trên thực tế, nhiều trường hợp ta chỉ nhận được những giá trị rời rạc: y
0
, y
1
, … y
n
tại các điểm
tương ứng x
0
, x
1
, … x
n
. (Các giá trị này được cung cấp qua thực nghiệm hay tính toán). Vấn đề đặt
ra là xác định giá trị của hàm số tại các điểm còn lại.
Cần xây dựng hàm
()gx
sao cho:
( ) ( ), 0,
( ) ( ), , ,
i i i
i i i i
g x y f x i n
g x y f x x a b x x

Vì vậy cần xây dựng hàm
()gx
. Do đó nhóm đã sử dụng công thức nội suy Newton để tìm ra công
thức của hàm để giải quyết bài toán sau:

Bài toán: Cho
 
Px
là đa thức bậc
n
biết:
x
0
x

1
x

…….
……
n
x

 
Px

0
y

n
y

……
…….
n

y


Mục tiêu của đề tài là sử dụng công thức nội suy Newton thứ nhất để tìm công thức xác định giá trị
P(x) ghi ở dạng chuẩn tắc suy rộng và chuyển công thức trên về dạng chính tắc.

PHẦN 2: CƠ SỞ LÝ LUẬN
I. Lũy thừa suy rộng bậc n của số thực a với bước nhảy h :
Cho
*
,,a h n
. Ta gọi lũy thừa suy rộng bậc
n
của số thực
a
với bước nhảy
h
là số:





ế


 

ế 




Quy ước: Trường hợp h =1 ta viết a
(n)
thay cho a
(n;h)
và đọc vắn tắt là lũy thừa suy rông bậc
n của a
II. Các dạng biểu diễn đa thức:
Cho
 
Px
là đa thức bậc n theo biến x
Dạng chính tắc của P(x) là:
 
0
n
i
i
i
P x a x



với
01
,a , ,a
n
a
là các hằng số.

Dạng chuẩn tắc của
 
Px
là:
   
0
0
n
i
i
i
P x b x x



với
01
, , ,
n
b b b
là các hằng số.
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

Dạng chính tắc suy rộng của
 
Px
là:
 
 

0
n
i
i
i
P x c x



với
01
,c , ,c
n
c
là các hằng số.
Dạng chuẩn tắc suy rộng của
 
Px
là:
   
 
,
0
0
n
ih
i
i
P x d x x




với
01
,d , ,d
n
d
là các hằng số.

Nhận xét : Dạng chuẩn tắc suy rộng là dạng tổng quát của 3 dạng trên.
 Khi
0
0, 0xh
thì dạng chuẩn tắc suy rộng trở thành dạng chính tắc.
 Khi
0h 
thì dạng chuẩn tắc suy rộng trở thành dạng chuẩn tắc.
 Khi
0
0, 1xh
thì dạng chuẩn tắc suy rộng trở thành dạng chính tắc suy rộng.
Vì vậy nếu đã có thuật toán tính giá trị đa thức có dạng biểu diễn chuẩn tắc suy rộng thì ta
cũng tính được giá trị đa thức có dạng biểu diễn thuộc ba dạng còn lại.
III. Định lý 1 (Định lý Bezout):
Cho
 
 
,P x R x

 

là đa thức ở dạng chính tắc
 
1
0
n
n
i
i
P x a x




. Khi đó dư của phép chia
P(x) cho
 
x



 
P

.
Chứng minh:
Nếu ta chia P(x) cho
 
x



dư hoặc bằng 0 hoặc một đa thức bậc 0 vì bậc
 
x


bằng 1. Vậy dư
là một phần tử
r
. Ta có
     
P x x q x r

  

Thay x bằng

ta được:
   
0.P q x r


hay
 
Pr




IV. Định lý 2:
Cho P(x) là một đa thức dạng chính tắc

1
0
n
n
i
i
ax



,

là một số thực bất kỳ. Khi đó, ta có đẳng thức:
   
1
1
00
nn
n i n i
i i n
ii
P x a x b x x b


  


   





Trong đó:
00
1
,i 1,2, ,n
i i i
ba
b a b





  


Chứng minh:
Theo định lý Bezout thì đẳng thức trên tồn tại.
Ta chỉ cần chứng minh đẳng thức truy hồi:
 
1 1 1
1
0 0 1
0 0 1 0 1
n n n n n
n i n i n n i n i n n i
i i n i n i i i
i i i i i
VP b x b x b b x b x b b x b x b b x

  
  
     

    

         


    

GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

Đồng nhất hệ số của hai vế, ta có:
00
1
,i 1,2, ,n
i i i
ba
b a b





  


V. Hệ quả:

Cho Q(x) là đa thức hệ số thực có dạng chính tắc
1
1
0
,
n
ni
i
i
ax







Khi đó, ta có đẳng thức:
 
1
1
00
nn
n i n i
i n i
ii
a x x a b x


  



  



(I)
+ Biến đổi từ vế trái sang vế phải của (I) đó chính là dùng phương pháp dùng sơ đồ hoocner ngược
với các hệ số cho bởi :
00
1
,i 1,2, ,n
i i i
ba
b a a





  


+ Biến đổi từ vế phải sang vế trái (I) đó chính là phương pháp dùng sơ đồ hoocner với các hệ số
cho bởi
00
1
b ,i 1,2, ,n
i i i
ab

aa





  


VI. Xây dựng bài toán chuyển đa thức từ dạng chuẩn tắc suy rộng về chính tắc bằng
phương pháp Hoocne ngược:
Xây dựng thuật toán:
Dạng chuẩn tắc suy rộng:
( ; )
0
0
( ) ( )
n
ih
i
i
P x d x x




Dạng chính tắc:
0
()
n

i
i
i
P x a x




Bước 1:
Đặt
 
 
       
 
,
0 0 0 0 0 0 0
00
1 1
nn
ih
i
ii
x x P x x x x x x h x x x x h x x n h

                


Đặt:
 
0

10
2 0 0
0 0 0
1
( )( )

( )( h) ( 1 h)
n
P
P x x
P x x h x x
P x x x x x x n






   



      



GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

Dùng so đồ Hoocne ngược để chuyển các

i
P
về dạng chính tắc
0
, 0,1, ,
i
ij
i ij
j
P a x i n





Áp dụng định lý 2 ta có:
0 00
11Pb  

10 00
1 0 0 0 0
11 0 00 0
1
( ) ( ) ,
.
bb
P x x x x P x
b x b x




     

   


   
   
2 0 0 0 1 0
20 10
21 0 0 0 10 11
22 0 0 0 11
( h)( ) ( h) ,
1
h ( h).
h . ( h). 0
P x x x x x x P x h
bb
b x x x b b
b x x x b

        



        



       



……
1
1 2 1
1 ( 1)0 ( 1)1 ( 1)(n 1) ( 1) j
0

n
n n n j
n n n n n
j
P b x b x b b x

   
     

    


1
0 1 n j
0

n
n n n j
n n n n n
j
P b x b x b b x



    


Với
 
 
    
0 ( 1)0
0
1 1 1
1
1 , 0,1, ,
nn
nj
n j n j
bb
b x n h b b j n

  




     



Sau đó ta tính
0

, 0,1, ,
i
ij
i ij
j
P a x i n





Để đơn giản khi tính toán ta trình bày dạng bảng như sau:
0
0



1
0



10
x

  

1
0
x


0


 
20
xh

   

1
 
00
x h x  

 
00
x h x

0

…….
1

…….
….

………
1
( 1)1i

b


( 1)2i
b




 
 
0
1
i
x i h

    

1
2 ( 1)1
.1
i i i
bb


  

2 ( 1)1 ( 1)2
.
i i i i

b b b


  



………
1


…….

 
 
0
1
n
x n h

    

1
1n
b

2n
b



nn
b


Bảng 1:Ttính các hệ số
ij
b
của đa thức
i
P
viết ở dạng chính tắc bằng sơ đồ Hoocne ngược
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

Bước 2:
Ta có:
 
 
,
0
00
nn
ih
i
ii
x x P






0
, 0,1, ,
i
ij
i ij
j
P a x i n





 
 
,
0
00
nn
ih
i i i
ii
d x x d P




Đặt
0
, 0,1, ,

i
ij
i i i ij
j
Q d P c x i n


  


, (0,1, , ),i 0,1, ,n
ij i ij
c d b j i   

Bảng tính các hệ số của
i
Q
:

0
d

00
c





1

d

10
c

11
c





….
….
….


i
d

0i
c

1i
c


….

……


….
….

….
n
d

0n
c

1n
c

……
…….
nn
c


Bảng 2: xác định các hệ số
ij
c
của
i
Q

Bước 3 Ta tính các hệ số
i
a

bằng công thức
  
0
, 0,1, ,
i
ij
n j i j
j
a c i n




ta có bảng tính sau:
0

00
c





1
10
c


11
c






….
….
….


I
0i
c


1i
c


….

……

….
….


n-1
( 1)0n
c




( 1)1n
c





n
0n
c


1n
c


2n
c

…….

nn
c


i
a



0n
a



1n
a



2n
a




nn
a


GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

Bảng 3: xác định các hệ số
ij
a
của
 

Px

Ta tính các
i
a
bằng cách cộng các
i
c
theo đường chéo như bảng phía trên.
Như vậy sau 3 bước ta được công thức ở dạng chính tắc của
 
Px
như sau:

 
1
0 1 1

nn
nn
P x a x a x a x a


    
=
0
n
i
i
i

ax



VII. Sai phân:
1. Định nghĩa:
Định nghĩa 1:
Cho f là hàm số thực, biến số thực:
0
,xh

 Giả sử f xác định tại
00
,x x h
. Sai phân của f tại
0
x
, bước nhảy h, là số định bởi công thức:
      
0 0 0h
f x f x h f x   
. (Để đơn giản ghi
 
0h
fx
thay cho
  
0h
fx
)

 Hàm số thực định bởi
: ( )
hh
f x f x
được gọi là hàm sai phân của f với bước nhảy h
 Toán tử sai phân bước nhảy h là ánh xạ:
:
hh
ff

Chú ý: Khi f là hàm hằng, ta có:
  
0
0
h
fx
tại mọi x
Định nghĩa 2:
 Sai phân cấp hai của f tại
0
x
, bước nhảy h của hàm f là:
    
2
00h h h
f x f x   
.
 Hàm sai phân cấp hai bước nhảy h là:
 
22

:
hh
f x f x
.
 Toán tử sai phân cấp hai, bước nhảy h là ánh xạ:
22
:
hh
ff
.
Định nghĩa tương tự cho các sai phân cấp cao hơn.
Khi cần nhấn mạnh cấp của sai phân, ta gọi sai phân của hàm f trong định nghĩa là sai phân
cấp một của hàm f, hơn nữa để đơn giản trong trình bày ta quy ước gọi hàm f là sai phân cấp 0
của hàm f. Ký hiệu: hàm sai phân cấp i (
0,in
), bước nhảy h, của hàm f là:
i
h
f

Quy ước: Khi h = 1 ta bỏ bớt nhóm từ “bước nhảy h” trong các thuật ngữ trên và khi đó ta ký hiệu
f
thay cho
1
f

2. Bảng sai phân dùng tính sai phân các cấp của hàm f tại điểm
0
x
:

Giả sử cần tính sai phân các cấp 1, 2, , n của hàm f, bước nhảy h, tại
0
x
.Đặt:
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

 
0
; 1,
; 0,
i
ii
x x ih i n
y f x i n

  





.
Sai phân các cấp của hàm f tại
0
x
có thể được xác định bởi bảng sau:
i
x


 
ii
y P x

 
hi
Px

 
2
hi
Px


 
1n
hi
Px



 
n
hi
Px

0
x

0

y

0 1 0
t y y

0 1 0
u t t

….
0 1 0
s r r

0 1 0
z s s

1
x

1
y

1 2 1
t y y

1 2 1
u t t

….
1 2 1
s r r


….
….
….





2n
x


2n
y


2 1 2n n n
t y y
  


2 1 2n n n
u t t
  






1n
x


1n
y


11n n n
t y y




….


n
x

n
y







Ví dụ 1: Lập bảng sai phân của hàm f biết:

i
x

4
6
8
i
y

93
259
569

Giải:
Áp dụng công thức tính sai phân, ta có bảng sai phân của hàm f như sau:
i
x

i
y

 
2 i
fx

 
2
2 i
fx


4
93
166
144
6
259
310

8
569



3. Công thức tính sai phân:
 Mệnh đề 1:
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

i.
 
h h h
f g f g
   
     
với
,

là các hằng số.
ii.
                  

.
h h h h h
f g x f x h g x f x g x f x g x f x g x h          

iii.
 
 
 
     
 
   
hh
h
f x g x - f x g x
f
x=
g g x g x+h






iv.
 
m n m n
ff

   
với

, , , 0m n m n


 Mệnh đề 2 ( Sai phân hàm lũy thừa ) :
i. Cho
   
,
n
f x x n h  
. Khi đó:
 
!,
nn
h
f x n h x  

 
0,
i
h
f x i n   

ii. Cho
   
 
 
,
*
00
,,

nh
f x x x n x h   
. Khi đó:
   
 
1,
0
nh
n
f x nh x x

  
.
Chứng minh:
i. Ta chứng minh
 
0,
i
h
f x i n   
(*)bằng phương pháp quy nạp
Với
1n 
, ta có
()f x x
. Khi đó:
2
( ) ( )
( ) ( ( )) 0
h

h h h h
f f x h f x h
f x f x h
    
      

Do đó (*) đúng.
Giả sử (*) đúng với
1nk
, tức là ta có
()
k
f x x
thì
( ) 0
i
h
fx
,
ik

Ta cần chứng minh
 
1k
f x x


thì
 
0

i
h
fx
,
1ik  

Ta có:
       
1
1
11
1
1
k
k
k j j k j
hk
j
f x f x h f x x h x C h x


  


       


Suy ra:
   
 

 
11
2 1 1 1 1 1
11
11
0
kk
k k k j j k j j j k k j
h h h h k k h
jj
f x f x C h x C h x

       



        




(do giả thiết quy nạp)
Như vậy ta đã chứng minh được (*)
Ta chứng minh:
( ) !
nn
h
f x n h
(**) bằng phương pháp quy nạp
Với

0, ( ) 1n f x
. Khi đó:
00
( ) ( ) 1 0!
h
f x f x h   

Với
0nk
, giả sử (**) đúng. Nghĩa là ta có:
( ) !
kk
h
F x k h
với
()
k
f x x
(1)
Với
1nk
, ta chứng minh (**) đúng
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

Tức là ta chứng minh:
11
( ) ( 1)!
kk
h

f x k h

  
với
1
()
k
f x x


(2)
Ta có:
11
1 1 1 1
11
11
( ) ( ) ( )
kk
k k i i k i i
h k k i
ii
f x x h x C h x C h g x

   


     


Với

1
( ) , 1, 1
ki
i
g x x i k

  

Theo cách đặt thì
deg( ) , 1, 1
i
g k i k  

Theo giả thiết quy nạp và theo (*) ta có:
! ,( 1)
()
0, 2, 1
k
k
hi
k h k
gx
ik










Suy ra:
1
1 1 1 1
1 1 1
1
( ) ( ( )) ( ) ( ) ( 1). . !. ( 1)!.
k
k k i i k k k k
h h h k h i k h
i
f x f x C h g x C h g x k hk h k h




           


Do đó, (2) đúng
Vậy ta đã chứng minh
( ) !.
nn
h
f x n h

ii. Giả sử
[ . ]
0

( ) ( )
nh
F x x x
=
1
0
0
()
n
i
x x ih





Suy ra:
( ) ( ) ( )
h
F x F x h F x   


11
00
00
( ) ( )
nn
ij
x h x ih x x jh



      



11
00
00
( ( 1) ) ( )
nn
ij
x x i h x x jh


      



0 0 0 0 0 0 0 0
( )( )( 3 ) ( ( 1) ) ( )( )( 2 ) ( ( 1) )x x h x x x x h x x n h x x x x h x x h x x n h                 
0 0 0 0 0 0
[( )( )( 2 ) ( ( 2) )][( ) ( ( 1) )]x x x x h x x h x x n h x x h x x n h              

2
0
0
( ). .
n
i
x x ih n h



  


[ 1, ]
0
( ) . .
nh
x x nh



VIII. Nội suy Newton :
1. Đa thức nội suy Newton:
Theo cách của Newton, ta có:
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2


0
0
0
( ) ( )
[ , ]
f x f x
xx
f x x




, do đó:
0 0 0
( ) ( ) ( ) [ , ]f x f x x x f x x
(1)
Ta lại có:
01
0 0 1
1
,
,,[ ] [ ]
[ , ]
f x x f x x
xx
f x x x



, từ đó ta có:

0 0 1 1 0 1
[ , ] [ , ] ( ) [ , , ]f x x f x x x x f x x x  

Tương tự như trên:

0 1 0 1 2 2 0 1 2
, , ,[ , ] [ , ] ( ) [ , , ]f x x x f x x x x x f x x x x  




0 1 0 1 0 11
, , , , , , ,[ , ] [ , ] ( ) [ , , ]
n n n n
f x x x x f x x x x x f x x x x

  

Lần lượt thay vào (1) ta được:

0 0 0 1 0 1 0 1 2
0 1 1 0 1
0 1 1 0 1
( ) ( ) ( ) [ , ] ( )( ) [ , , ]
( )( ) ( ) [ , , , ]
( )( ) ( )( ) [ , , , , ]
nn
n n n
f x 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
x x x x x x x x f x x x x


      
    
   
(2)
Trong công thức (2) nếu đặt:

0 0 0 1 0 1 0 1 2
0 1 1 0 1

( ) ( ) ( ) [ , ] ( )( ) [ , , ]
( )( ) ( ) [ , , , ]
nn
n
x 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
P

      
   
(3)

0 1 1 0 1
( ) ( )( ) ( )( ) [ , , , , ]
n n n
x x x x x x x x x f x x x xR

    
(4)
Thì
( ) ( ) ( )
n
f x x xPR
(5)
()
n
xP
là đa thức bậc n. Ta cần chứng minh
()
n

xP
thoả mãn điều kiện (*)
Thật vậy, từ (5) ta có:

0,
0,
( ) ( ) ( ) ( )
( ) ( ) ( )
i i i
i i i
n
n
n
ny
f x x x i
x x i
PR
PR
  


Mặt khác, dễ dàng thấy được
0,( ) 0 ( )
i
nxiR 

Nên
0, ( ) ( )
iin
ny xiP 

(thoả điều kiện (*))
Công thức (3) được viết lại như sau:
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2


0
1
1 1 0
0
0
( ) ( ) [ , , , ] ( )
i
n
n
j
ii
i
j
x f x f x x x x xP




  



2. Đa thức nội suy Newton có mốc nội suy cách đều:
a. Định lý của công thức nội suy Newton thứ nhất:

Cho bộ
( , )
ii
xy
trong đó
0i
x x ih
(
, 0,h i n
). Giả sử P là một hàm đa thức có bậc bé
hơn hoặc bằng n sao cho
()
ii
P x y
. Khi đó:
    
 
,
00
0
1
!
n
ih
i
h
i
i
P x P x x x
ih



  



.
Chứng minh:
Ta xây dựng công thức tính P(x) ở dạng:
 
 
 
 
 
 
 
 
, 1, 2, ,
0 0 1 0 2 0 0
0
( )
n
i h h h n h
in
i
P x d x x d d x x d x x d x x

         



Như vậy, ta chỉ cần xác định
( 0, )
i
d i n
.
Ta có thể thấy ngay
 
00
d P x
.
 Ta xác định
1
d
:
Theo mệnh đề 1 và 2 ta có:
   
 
 
 
 
 
 
 
0, 1, 1,
1 0 2 0 0
1
0
0 1 1
.1. .2. . .
h h n h

hn
h
h
P x d h x x d h x x d n h x x
Px
P x d h d
h

       

    

 Ta xác định
2
d
:
   
 
 
 
   
 
 
 
 
0, 1, 2,
2 2 2 2
2 0 3 0 0
1
2

0
2 2 2
0 2 2 0
22
.2.1. 3.2. . . 1 .
1
.2.1.
2.1. 2!
h h n h
hn
h
hh
P x d h x x d h x x d n n h x x
Px
P x d h d P x
hh

        

      

Ta xác định
3
d

   
 
    
 
 

 
 
0, 3,
3 3 3
3 0 0
1
3
0
3 3 3
0 3 3 0
33
.3.2.1. 1 2 .
1
.3.2.1.
3.2.1. 3!
h n h
hn
h
hh
P x d h x x d n n n h x x
Px
P x d h d P x
hh

       

      

GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2


 Tiếp tục quá trình trên ta sẽ có được:
 
0
1
!
i
ih
i
d P x
ih


Khi đó:
    
 
,
00
0
1
!
n
ih
i
h
i
i
P x P x x x
ih



  



.
b. Công thức nội suy Newton thứ hai:
Nếu đặt
n
n
xx
i x x ih
h


  
thì từ công thứ (2*):
Công thức:

[ , ]
0
( 1)
1
( ) ( )( )
!
n
ih
i
nn
ni

i
h
i
ix f x x x
ih
hP


 


Như vậy ta đã có được công thức tính P(x) ghi ở dạng chuẩn tắc suy rộng. Sau đó, áp dụng thuật
toán ở chủ đề 2 để đưa công thức tìm được về dạng chính tắc.
IX. Cách chuyển từ bài toán có các mốc nội suy không đều về bài toán có mốc cách đều:
Nếu bài toán đa thức nội suy không cách đều ta chỉ cần thêm các mốc nội suy sao cho được
các mốc mới cách đều, sau đó dùng công thức nội suy Lagange để tính các giá trị hàm số.
Lúc này bài toán sẽ chuyển về bài toán nội suy có bước nhảy cách đều.
 Việc thêm mốc nội suy sẽ là đơn giản nếu các mốc nội suy có giá trị không quá lớn, lúc này
ta sẽ chọn bước nhảy h sao cho ít phải thêm các mốc mới nhất
Ví dụ: Ta có bảng giá trị sau:
i
x

0
1
2
4
i
y


2
3
-1
0

Trong bài toán này ta sẽ chọn
1h 
, và chỉ cần thêm mốc nội suy mới là
3x 
là ta có các mốc nội
suy cách đều nhau.
 Tuy nhiên trên thực tế ta gặp nhiều bài toán
 
, 0,1, ,
i
f x i n
với các mốc nội suy không
đều và ta gặp rất nhiều khó khăn trong vấn đề chọn mốc mới. Với bài toán này thì ta sẽ chọn
mốc nội suy ban đầu là
0
0x 
,
1h 
để đơn giản trong việc tính toán.
Ví dụ:


x
i


1
2
6
9
()
ii
P x y

3
2
293
5
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

Ở ví dụ này ta sẽ thêm
0
0x 
,
3x 
vào công thức nội suy Lagrange để tính các giá trị
i
y
và ta sẽ
có bảng giá trị mới:
x
i

0
1

2
3
()
ii
P x y

-1
3
17
47

PHẦN 3: THUẬT TOÁN
I. Dạng bảng:
1. Dạng bảng của công thức tìm giá trị của đa thức ở dạng chuẩn tắc suy rộng bằng
phép nội suy Newton:
i
x

 
ii
y P x

 
hi
Px

 
2
hi
Px



 
1n
hi
Px



 
n
hi
Px

1
!
i
i
m
ih


 
0
1
!
i
ih
i
d P x

ih


0
x

0
y

0 1 0
t y y

0 1 0
u t t

….
0 1 0
s r r

0 1 0
z s s

1
00
dy

1
x

1

y

1 2 1
t y y

1 2 1
u t t

….
1 2 1
s r r

….
1
m

1 1 0
.d m t

….
….





….

2n
x



2n
y


2 1 2n n n
t y y
  


2 1 2n n n
u t t
  





….

1n
x


1n
y


11n n n

t y y




….


….
….
n
x

n
y






n
m

0
.
nn
d m z



2. Thuật toán dạng bảng chuyển từ dạng chuẩn tắc suy rộng về dạng chính
tắc dùng Hoocne ngược:

0
0



1
0



10
x

  

1
0
x

0


 
20
xh

   


1
 
00
x h x  

 
00
x h x

0

…….
1

…….
….

………
1
( 1)1i
b


( 1)2i
b





 
 
0
1
i
x i h

    

1
2 ( 1)1
.1
i i i
bb


  

2 ( 1)1 ( 1)2
.
i i i i
b b b


  



………
1



…….

 
 
0
1
n
x n h

    

1
1n
b

2n
b


nn
b

GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2


Bảng 1: Tính các hệ số
ij

b
của đa thức
i
P
viết ở dạng chính tắc bằng sơ đồ Hoocne ngược
0
d

00
c





1
d

10
c

11
c





….
….

….


i
d

0i
c

1i
c


….

……

….
….

….
n
d

0n
c

1n
c


……
…….
nn
c


Bảng 2: Xác định các hệ số
ij
c
của
i
Q

0

00
c





1
10
c


11
c






….
….
….


i
0i
c


1i
c


….

……

….
….


n-1
( 1)0n
c




( 1)1n
c





n
0n
c


1n
c


2n
c

…….

nn
c


i
a



0n
a



1n
a



2n
a




nn
a


Bảng 3: Xác định các hệ số
ij
a
của
 
Px

3. Dạng bảng của thuật toán chuyển từ dạng chuẩn tắc suy rộng về dạng chính
tắc theo nhóm 2:


a
n
= d
n

a''''
n-1
= a'''
n-1
– x
0*

a'''
n


a''''
1
= a'''
1
– x
0*

a'''
2

a''''
0
= a'''

0
– x
0*

a'''
1

x
0

a'''
n
= d
n

a'''
n-1
= a''
n-1
– x
1*

a''
n

a'''
1
= a''
1
– x

1*

a''
2

a
0
= d
0

X
1
= x
0
+ h

a''
n
= d
n

a''
n-1
= a'
n-1
– x
2*

a'
n



a
1
= d
1








X
n-1
= x
0
+ (n-1)*h
a
n
= d
n

a
n-1
= d
n-1





X
n
= x
0
+ n*h
a
n
= d
n






GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

II. Thuật toán:
Tính bước nhảy h theo công thức
1
,h 0, 1, 1
ii
h x x i n

    
sau đó xét các trường hợp của h.
1. Trường hợp 1: Khi các mốc nội suy đều (bước nhảy h đều) thì ta lần lượt thực hiện

các tiến trình giải như sau:
a. Tiến trình 1: Dùng công thức nội suy Newton để xác định công thức của
 
Px
ở dạng
chuẩn tắc suy rộng.
Bước 1: Tính sai phân các cấp của
 
Px
.
Bước 2: Áp dụng định lý và công thức nội suy newton tính được giá trị của

 
Px
ở dạng
chuẩn tắc suy rộng.
b. Tiến trình 2: Chuyển từ dạng chuẩn tắc suy rộng về dạng chính tắc.
o Cách 1: Dùng thuật toán chuyển từ chuẩn tắc suy rộng sang chính tắc.(tham khảo đề tài
của nhóm 2).
o Cách 2: Dùng hoocne ngược chuyển từ dạng chuẩn tắc suy rộng về chính tắc.
2. Trường hợp 2: Khi các mốc nội suy không cách đều ta sẽ thêm các mốc nội suy
mới sao cho các mốc nội suy cách đều hoặc chọn
0
0, 1xh
rồi thêm các mốc mới
sau đó dùng công thức nội suy Lagrange tính các giá trị của hàm cho các mốc mới
thêm.
Bước 1: Tính giá trị
 
Px

bằng công thức nội suy Lagrange theo công thức sau:


 
 
 
0
0
j
j
i
j
ji
ij
ji
y
P x x x
xx










Bước 2: Ta thêm các điểm
i

x
sao cho ta được bước nhảy
1ii
h x x


là đều nhau
Bước 3: Thay các giá trị của
i
x
vừa tìm được vào công thức
 
Px
ta được giá trị
i
y
tương
ứng.
Lúc này ta được bảng giá trị mới và bài toán trở thành bài toán ở trường hợp 1 với bước
nhảy đều. Sau đó ta thực hiện các bước làm như trong trường hợp 1.
III. MÃ GIẢ:
// Nhập dữ liệu
Nhập n - số lượng các bộ (x,y)
Cho i chạy từ 0 đến n, nhập các bộ (x,y)

//Kiem tra buoc nhay h (moc deu, moc ko deu)
Sắp xếp lại các bộ số theo x tang dần
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2


Đặt h[1] là khoảng cách từ x[0] đến x[1]
Cho i chạy từ 1 đến n-1
Nếu khoảng cách từ x[i] đến x[i+1] khác h[1] thì dung công thức Lagrange để đưa về
mốc nội suy cách đều

//Khởi tạo các giá trị ban đầu
//Khởi tạo mảng h[] các luỹ thừa của h
h[0]=1
Cho i chạy từ 2 đến n, h[i]=h[i-1]*h
//Khởi tạo mảng m[]
m[0]=1
ifact = 1 // biến chạy để tính i!
Cho i chạy từ 1 đến n
ifact = ifact*i
m[i] = ifact*h[i]
//Khởi tạo cột đầu của mảng delta[]
Cho i chạy từ 0 đến n, tính delta[i][0]=y[i]
//Khởi tạo các giá trị x[i]
Chi i chạy từ 1 đến n, tính x[i]=x[i-1]+h[1]

//Lập bảng sai phân cấp i
Cho i giảm từ (n-1) đến 0
Cho j tang từ 1 đến (n-i)
Tính theo công thức delta[i][j] = delta[i+1][j-1] - delta[i][j-1]

//Tính d[i]
Cho i chạy từ 0 đến n, tính d[i] = delta[0][i] / m[i]

//Tính các hệ số a[i] của đa thức P(x)
Cho i chạy từ 0 đến n, z[i][n]=d[n]

Cho i chạy từ 0 đến (n-1), z[i][i]=d[i]
Cho i giảm từ (n-2) đến 0
Cho j giảm từ (n-1) đến i
Tính các z[i][j] theo công thức z[i][j]=z[i+1][j] - x[i+1]*z[i+1][j+1]
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

//Mảng z[][] là bước đệm để tính các hệ số a[i]
a[n] = z[n][n];
Cho j giảm từ n đến 0, tính a[j] = z[0][j] - x[0]*z[0][j+1]

// Xuất dữ liệu
Xuất các a[i],
0,in

PHẦN 4: VÍ DỤ CHI TIẾT

Ví dụ 1: Hãy xác định công thức tính P(x) bằng công thức nội suy Newton ghi ở dạng chính tắc,
biết:



 Lập bảng sai phân:
i
x

i
y

 

2 i
fx

 
2
2 i
fx

1
!
i
i
m
ih


i
d

4
93
166
144
1
93
6
259
310

1

2

83
8
569


1
8

18

 Theo công thức nội suy Newton ta xác định được P(x) ở dạng chuẩn tắc suy rộng:
 
 
 
 
1,2 2,2
( ) 93 83 4 18 4P x x x    

 Bảng biểu diễn các hệ số của P(x) ở dạng chính tắc:
Cách 1: Chuyển theo phương pháp của nhóm 2

i
a

i
x



18
-97
193
4
18
-25
93
i
x

4
6
8
i
y

93
259
569
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

6
18
83

8
18




Vậy dạng chính tắc của P(x) là:
2
( ) 193 97 18P x x x  

Cách 2: Làm theo phương pháp dùng hoocne ngược
Ta tính các hệ số
ij
b
trước dựa vào bảng sau:
i


ij
b

0
1
0


-4
1
-4
0

-6
1
-10
24

0
-8
1
-18
104
-192
Tính các
ij i ij
c d b
theo bảng sau:
i
d

ij
c

93
93
0

83
83
-332
0
18
18
-180
432
Cuối cùng ta sẽ cộng theo đường chéo để tìm các
ij

a

93
93
0

83
83
-320
0
18
18
-180
432
ij
a

18
-97
193

Vậy dạng chính tắc của P(x) là:
2
( ) 193 97 18P x x x  

Ví dụ 2: Hãy dùng công thức nội suy Newton tìm giá trị của biểu thức
 
Px
, chuyển
 

Px
về
dạng chính tắc. Cho bảng giá trị sau:


i
x

0
1
2
4
i
y

2
3
-1
0

Bài giải:
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

Do các bước nhảy h ở bài toán không đều nên ta sẽ thêm một số mốc nội suy mới
i
x
để cho bài
toán chuyển về bài toán có bước nhảy đều, dùng công thức nội suy Lagrange để tìm các giá trị
i

y

sau đó sẽ dùng công thức nội suy Newton cho bài toán có bước nhảy đều.
Ta thấy vì
1 0 2 1 3 2 4 3
1x x x x x x x x       

Nên ta chọn thêm vào bảng
4
3x 
. Áp dụng công thức nội suy Lagrange:
 
 
0
0
0
()
j
ji
n
j
i
i
ij
ji
j
xx
P x y
xx













Ta tìm được
 
4
34Py  
. Lúc này ta có bảng giá trị mới
i
x

0
1
2
3
i
y

2
3
-1
-4


Ta dùng công thức nội suy Newton để tìm giá trị của bài toán ở dạng chuẩn tắc suy rộng.
Ta có bảng sai phân như sau:
i
x

i
y

 
1 i
fx

 
2
1 i
fx

 
3
1 i
fx

1
!
i
i
m
ih



i
d

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

1
1
2
-1
-3


1
2

5
2



3
-4



1
6

1

Giá trị của bài toán ở dạng chuẩn tắc suy rộng:
 
Px
     
3,1 2,1 1,1
5
2
2
x x x   

GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

Chuyển bài toán từ dạng chuẩn tắc suy rộng sang dạng chính tắc:
Cách 1: (theo phương pháp của nhóm 2)
Ta lập bảng sau:
i
x

1

11
2


11
2

2
0
1
11
2


11
2

2
1
1
9
2


1

2
1
5
2





3
1




 
32
11 11
2
22
P x x x x   

Cách 2: (theo phương pháp hoocne ngược)
Ta tính các hệ số
ij
b
trước dựa vào bảng sau:
i


ij
b

0
1

0


0
1
0
0

-1
1
-1
0
0
-2
1
-3
2
0
-3
1
-6
11
-6

Tính các
ij i ij
c d b
theo bảng sau:
ij
d


ij
c

2
2
0


1
1
0
0

5
2


5
2


5
2


0
0
1
1

-3
2
0

Cuối cùng ta sẽ cộng theo đường chéo để tìm các
ij
a

0
2
0


1
1
0
0

GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

2
5
2


5
2



0
0
3
1
-3
2
0
i
a

1
11
2


11
2

2
Vậy dạng chính tắc cần tìm là:
 
32
11 11
2
22
P x x x x   

PHẦN 5: ĐOẠN CHƯƠNG TRÌNH
Chương trình xác định hàm theo công thức nội suy Newton với bước nhảy tùy ý:
#include <iostream>

#include <stdio.h>
#include <cmath>
#define MAXN 20

using namespace std;

int n;
long h[MAXN], x[MAXN], y[MAXN], m[MAXN], d[MAXN], a[MAXN]; // m=i!*h^i
long delta[MAXN][MAXN], z[MAXN][MAXN];

void Lagrange()
{
for (int xNew=0; xNew<=n; xNew++)
{
long tong=0;
for (int i=0; i<=n; i++)
{
long tu=y[i], mau=1;
for (int j=0; j<=n; j++)
if (i!=j)
{
tu=tu*(xNew-x[j]); mau=mau*(x[i]-x[j]);
}
tong=tong+tu/mau;
GVHD: TS. TRỊNH CÔNG DIỆU Lớp: Toán VB2- K2
NHÓM 3- LỚP: VB2-TOÁN-K2

}
x[xNew]=xNew; y[xNew]=tong;
}

}

int main()
{
// Nhap du lieu
cout << "Nhap so luong cac bo (xi,yi) (i>0): "; cin >> n; cout << endl;
n=n-1;
cout << "Nhap cac bo gia tri (xi,yi):" << endl;;
for (int i=0; i<=n; i++) cin >> x[i] >> y[i];
cout << endl;

//Kiem tra buoc nhay h (moc deu, moc ko deu)
long tmp;
for (int i=0; i<=n; i++)
for (int j=i+1; j<=n; j++)
if (x[i]>x[j])
{
tmp=x[i];x[i]=x[j];x[j]=tmp;
tmp=y[i];y[i]=y[j];y[j]=tmp;
}
h[1] = abs(x[1]-x[0]);
for (int i=1; i<n; i++)
if (abs(x[i+1]-x[i])!=h[1])
{
h[1]=1;
Lagrange();
break;
}

//Khoi tao cac gia tri ban dau

h[0]=1;

×