TRƯỜNG ĐẠI HỌC KỸ THUẬT CƠNG NGHIỆP
KHOA ĐIỆN TỬ
Bộ mơn: Tin Học Cơng Nghiệp
BÀI TẬP LỚN
MƠN HỌC PHƯƠNG PHÁP TÍNH
Sinh Viên: Nguyễn Văn Hưng
Nguyễn Ngọc Hiếu
Chu Thanh Quyết
Lớp:
55KMT
GVHD:
Nghiêm Văn Tính
Thái Nguyên – 2021
TRƯỜNG ĐHK
KHOA ĐIỆN
BÀI TẬP LỚN
MƠN HỌC: Phương pháp tính
BỘ MƠN : TIN HỌC CƠNG NGHIỆP
Nhóm Sinh viên: Nhóm 5
St
t
MSSV
Họ Tên
1
Nguyễn Ngọc Hiếu
K195480106012
2
Nguyễn Văn Hưng
K195480106008
3
Chu Thanh Quyết
K195480106027
Lớp: 55KMT
Ngành: Kĩ Thuật Máy Tính
Giáo viên hướng dẫn: Nghiêm Văn Tính
Ngày giao đề:
Ngày hồn thành: 17/01/2022
Tên đề tài : Xấp xỉ hàm bằng phương pháp nội suy
PHẦN A: LÝ THUYẾT
Yêu cầu: Trình bầy và thực hiện các cơng việc sau:
1.
Trình bày phương pháp nội suy đa thức Newton
+ Mốc nội suy cách đều
+ Mốc nội suy không cách đều
2.
Vẽ sơ đồ khối của hai phương pháp nội suy trên
PHẦN B: THỰC NGHIỆM
Dùng ngơn ngữ lập trình bất kỳ xây dựng một chương trình gồm các chức năng có
nội dung dưới đây:
1.
Tính giá trị của đa thức bằng phương pháp nội suy Newton có mốc cách đều
và khơng cách đều
2.
Kết quả thực nghiệm trên đa thức với các bậc khác nhau cho mỗi phương
pháp.
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
GIÁO VIÊN HƯỚNG DẪN
Nghiêm Văn Tính
.....................................................................................................................................
...............................................................................................................................
.....................................................................................................................................
...............................................................................................................................
.....................................................................................................................................
...............................................................................................................................
.....................................................................................................................................
...............................................................................................................................
.....................................................................................................................................
...............................................................................................................................
.....................................................................................................................................
...............................................................................................................................
MỤC LỤC
Lời nói đầu
Phần A: Lý Thuyết ……………………………………………………….
1. Phương pháp nội suy đa thức Newton………………………………...
+ Mốc nội suy cách đều ……………………………………………….
+ Mốc nội suy không cách đều………………………………………………
2. Sơ đồ khối phương pháp nội suy đa Newton………………………….
Phần B: Thực Nghiệm ……………………………………………………
1. Giới thiệu ngơn ngữ lập trình………………………………………….
2. Chương trình thực nghiệm …………………………………………….
3. Kết quả thực nghiệm …………………………………………………………
Kết Luận …………………………………………………………………..
LỜI NĨI ĐẦU
Phương pháp tính là bộ mơn tốn học có nhiệm vụ giải đến kết quả bằng số cho
các bài tốn, nó cung cấp các phương pháp giải cho những bài tốn trong thực tế
mà khơng có lời giải chính xác. Mơn học này là cầu nối giữa tốn học lý thuyết và
các ứng dụng của nó trong thực tế. Trong thời đại tin học hiện nay thì việc áp dụng
các phương pháp tính càng trở nên phổ biến nhằm tăng tốc độ tính tốn.
Sau một thời gian dài học tập, rèn luyện dưới sự dạy bảo nhiệt tính của thầy
Nghiêm Văn Tính. Nhóm em quyết định chọn đề tài “Xấp xỉ hàm bằng phương
pháp nội suy” làm đề tài nghiên cứu. Cụ thể hơn là tìm hiểu về phương pháp nội
suy newton. Bọn em xin cam đoan bài tập lớn này là cơng sức của nhóm em sau
một thời gian dài cùng tìm tịi, nghiên cứu.
PHẦN A: LÝ THUYẾT
Đa thức nội suy Newton
A. Trường hợp các nút nội suy không cách đều.
1. Khái niệm: Tỷ hiệu.
Giả sử hàm số y=f(x) được cho dưới dạng bảng:
Trong
đó:
; và khác nhau , với .
-
Tỷ hiệu cấp một của hàm
tại 2 nút kí hiệu là
-
Tỷ hiệu cấp hai của hàm
tại 3 nút a, b, c kí hiệu là :
.
-
…
-
Cứ như vậy, tỷ hiệu cấp n của hàm
tại n+1 nút
kí hiệu là :
.
Chú ý:
(1) Các tỷ hiệu của hàm số
có tính chất đối xứng đối với các nút nội suy.
Tức là ta có:
.
(2) Tỷ hiệu cấp n của một hàm đa thức bậc n tại n+1 nút nội suy tùy ý là hằng
số (luôn bằng nhau). Tỷ hiệu cấp
của một đa thức bậc n có giá trị
bằng 0.
Ví dụ A.1.1. Cho hàm số
. Tính tỷ hiệu cấp 3 của hàm
tại
các nút
.
Các tỷ hiệu cấp 2 của hàm
tại các nút trên được tính với kết quả như bảng sau:
A=
B=
C= D=
E=
Vậy :
Lưu ý :
là đa thức bậc hai => các tỷ hiệu cấp 2 của
tỷ hiệu cấp 3 của
đều bằng nhau, các
đều bằng 0.
2. Đa thức nội suy Newton trong TH các nút nội suy không cách đều
Đa thức nội suy Lagrange dễ tính tốn nhưng có nhược điểm là khi thêm một nút
nội suy thì q trình tính cũ phải bỏ đi tất cả và tính lại từ đầu. Dựa vào tỷ hiệu,
Newton đã đưa ra cơng thức tìm đa thức nội suy của hàm
sau:
Từ cơng thức tính tỷ hiệu :
Lại có:
Thay vào (1) ta được:
thuận lợi hơn như
Cứ như vậy ta thu được:
Đặt
.
Và
thì ta có :
.
- Dễ dàng kiểm tra thấy
Vậy
với
xác định bởi (*) là đa thức nội suy của hàm
ứng với n+1 nút nội suy
trên.
Chú ý:
•
Đa thức nội suy
tiến của hàm
tìm được theo (*) gọi là đa thức nội suy Newton
xuất phát từ nút x0.
Sai số nội suy khi tính giá trị gần đúng của hàm
•
tại điểm
là :
Xây dựng tương tự, ta có cơng thức xác định đa thức nội suy Newton lùi
của hàm
xuất phát từ nút
Sai số nội suy vẫn là:
là :
•
Đa thức nội suy của một hàm số
tại n+1 nút nội suy đã cho là duy
nhất, do vậy, đa thức nội suy Newton
, chúng chỉ khác nhau
cách biểu diễn.
Do vậy, nếu hàm
nội suy
có đạo hàm liên tục đến cấp n+1 trên , chứa tất cả các nút
thì sai số nội suy tại điểm có thể đánh giá (theo cách của Lagrange) là:
, với
.
Đa thức nội suy Newton tiến, tiện lợi khi tính gần đúng giá trị của
tại điểm
gần x0. Đa thức nội suy Newton lùi, tiện lợi khi tính gần đúng giá trị của
tại
điểm gần xn .
•
Nếu thêm một nút nội suy
Newton
thì sau khi tìm được đa thức nội suy
ứng với n+1 nút nội suy
để tìm đa thức nội suy
của hàm f ứng với n+2 nút nội suy
ta chỉ cần bổ
sung thêm nút nội suy mới vào cuối bảng, rồi tính thêm tỷ hiệu cấp n+1
của hàm
và cộng số hạng bậc n+1 vào cuối đa thức nội suy
Tức là :
.
Ví dụ A.2.1. Cho bảng giá trị của hàm số
như sau:
(1) Xây dựng đa thức nội suy Newton tiến từ nút
(2) Tính gần đúng
Giải.
(1) Có 5 nút nội suy, ta có:
.
bằng đa thức nội suy tìm được ở trên.
.
.
Tính các tỷ hiệu của hàm
k
xk
yk
4 7
Vậy
như sau:
Tỷ hiệu cấp Tỷ hiệu cấp Tỷ hiệu cấp Tỷ hiệu cấp
1
2
3
4
1611
.
Hay
Ví dụ A.2.2 : Cho hàm
với bảng giá trị:
(1) Tính gần đúng
bằng đa thức nội suy Newton tiến
xuất phát từ
. Đánh giá sai số của các giá trị tìm được.
(2) Tính gần đúng
từ nút nội suy
(3) Từ đa thức nội suy
đúng
.
Giải.
của hàm
bằng đa thức nội suy Newton lùi Sn(x) của hàm
. Đánh giá sai số của các giá trị tìm được
của hàm
ứng với bảng trên, tính gần
(1) Có 4 nút nội suy (n=3), nên ta có đa thức nội suy Newton tiến của hàm
xuất phát từ x0 là:
Bảng các tỷ hiệu của hàm f(x) như sau:
k
xk
yk
Tỷ hiệu cấp Tỷ hiệu cấp Tỷ hiệu cấp Tỷ hiệu cấp
1
2
3
4
Suy ra :
Vậy
Sai số mắc phải là :
(2) Có
4
nút
nội
suy,
Đa
thức
nội
suy
N
lùi
.
k xk
yk
Tỷ hiệu cấp Tỷ hiệu cấp Tỷ hiệu cấp Tỷ hiệu cấp
1
2
3
4
là:
Suy ra:
Vậy
Sai số mắc phải là :
(3) Bảng giá trị của hàm
là :
Có 4 nút nội suy, nên ta có đa thức nội suy Newton tiến của hàm
xuất phát từ nút y0 là:
Ta tính các tỷ hiệu của hàm g(y) như sau:
k
yk
xk
Tỷ hiệu cấp 1
( )
Vậy
Tỷ hiệu cấp 2
Tỷ hiệu cấp 3
B. Trường hợp các nút nội suy cách đều.
1. Khái niệm: Hiệu hữu hạn
Giả sử hàm số
x
y
được cho dưới dạng bảng:
x0
y0
x1
y1
trong đó
x2
y2
…
…
xk
yk
;
xk+1
yk+1
…
…
hay
.
Ta gọi:
-
Hiệu hữu hạn tiến cấp 1 của hàm
tại điểm
là :
-
Hiệu hữu hạn tiến cấp 2 của hàm
tại điểm
là :
-
………
-
Tổng quát, hiệu hữu hạn tiến cấp n của hàm
Tương tự thay kí hiệu Δ bằng kí hiệu
hàm
tại điểm
.
.
tại
là :
ta có khái niệm hiệu hữu hạn lùi cấp n của
như sau (ĐỌC THÊM):
.
2. Cơng thức tìm đa thức nội suy Newton trong TH các nút nội suy cách
đều
•
Thay các tỷ hiệu bằng các hiệu hữu hạn tiến, ta có đa thức nội suy Newton tiến
của hàm
xuất phát từ nút x0 là:
Từ đó, nếu đổi biến
của hàm
hay
thì ta có đa thức nội suy Newton tiến
có dạng:
Sai số là :
,
với
.
Nếu h đủ bé và
hầu như khơng thay đổi thì
.
•
Tương tự, ta có đa thức nội suy Newton lùi của hàm
xuất phát từ nút xn là:
.
Từ đó, nếu đổi biến
hàm
thì đa thức nội suy Newton lùi của
là:
Sai số là
với
Nếu h đủ bé và
.
hầu như khơng thay đổi thì
Ví dụ B.2.1: Cho bảng giá trị của hàm số
x
.
như sau:
(1) Tính gần đúng sin160 bằng đa thức nội suy Newton tiến xuất phát từ nút x 0 =
150.
(2) Dùng đa thức nội suy Newton lùi xuất phát từ nút x 0 = 300, tính gần đúng
.
Đánh giá sai số của các giá trị gần đúng nhận được.
Giải. Có 4 nút nội suy cách đều nhau với
.
. Ta có:
.
Tính các hiệu hữu hạn tiến như sau: FIX-6 (Chú ý chọn đơn vị đo góc là Radian).
k
0
xk
yk
0,258819 (A)
0,083201 (E)
-0,002603 (Y)
1
0,342020 (B)
0,080598 (F)
-0,003216 (M)
2
0,422618 (C)
0,077382 (X)
3
0,500000 (D)
Với
•
-0,000613(X’)
. Suy ra:
Đánh giá sai số:
.
Chọn ,
.
Từ đó có sai số :
.
Vậy
(2) Đổi biến số :
Ta có :
.
.
.
Tính các hiệu hữu hạn lùi (tính ngược từ dưới) như sau:
k
xk
yk
Với
thì
.
Suy ra
(Lưu ý : Nếu dùng đa thức nội suy Newton tiến xuất phát từ nút x 0 = 15 thì
)
•
Đánh giá sai số:
.
Chọn ,
. Từ đó có sai số,
.
Vậy
.
2. SƠ ĐỒ KHỐI :
Begin
Nhập
h=
k=1, n=1
i=0, n-k
Đúng
k=1
Sai
i=1, n
Kết luận
End
PHẦN B. THỰC NGHIỆM
1.Giới thiệu về ngôn ngữ lập trình
Ngơn ngữ lập trình C++ là một ngơn ngữ lập trình hướng đối tượng(OOP –
Object-oriented programming) được phát triển bởi Bjarne Stroustrup. C++ là ngơn
ngữ lập trình được phát triển trên nên tảng của ngơn ngữ lập trình C. Do đó, C++
có song song cả 2 phong cách(style) lập trình hướng cấu trúc giống C và có thêm
phong cách hướng đối tượng. Trong nhiều trường hợp, C++ sử dụng kết hợp cả 2
style trên. Do đó, nó được xem là một ngơn ngữ “lai tạo”.
Vai trị đặc biệt quan trọng của bộ đôi 2 ngôn ngữ lập trình C và C++ là phục vụ
cho học lập trình cơ bản. Bởi vì đây là một ngơn ngữ lập trình bậc trung. Hầu hết
các trường đào tạo cơng nghệ thông tin ở Việt Nam đều dùng 2 ngôn ngữ này làm
mơn cơ sở ngành. Mơn lập trình C giúp chúng ta có nền tảng với kỹ thuật lập trình,
các kiến thức cơ bản và tư duy lập trình.
Sau đây là các ứng dụng thực tế sử dụng C++:
+ Game
+ Ứng dụng có giao diện người dùng(GUI)
+ Trình duyệt web
+ Phần mềm quản trị cơ sở dữ liệu
+ Hệ điều hành
+ Trình biên dịch
+ ……………..
Hình ảnh giao diện của ứng dụng C++
2. Thực Nghiệm
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int factorial(int n){
int fact=1;
while(n){
fact=fact*n;
n--;
}
return fact;
}
int main(){
float x[10],y[10],p[10],diff[10];
float X,f,f2=0,u,h;
int i, j=1,n,k=1;
cout<<"\nnhap vao so bac cua da thuc : ";
cin>>n;
cout<<"\nnhap vao gia tri xi va f(xi)\n";
for(i=1; i<=n; i++){
cout<<"x["<
cin>>x[i];
cout<<"f["<
cin>>y[i];
}
cout<<"\nx[i]\tf[i]\n";
for(i=1; i<=n; i++){
cout<
}
cout<<"\ngia tri cua ham f tai x=";
cin>>X;
int m=n;
h=x[2]-x[1];
u=(X-x[1])/h;
f=y[1];
cout<
cout<<"\nBang sai phan(bang ti hieu)"<
do{
cout<<"A.("<
for(i=1; i
p[i]=( ( y[i+1]-y[i] ) );
cout<
y[i]=p[i];
}
diff[k++]=p[1];
n--;
cout<<"\n";
}while(n!=1);
float df=u;
float l=1;
for(int i=1; i
if(i>1)
df=df/factorial(i);
f2=f2+(df*diff[i]);
for(int j=0; j<=i; j++){
l=l*(u-j);
}
df=l;
}
f=f+f2;
cout<<"\nf("<
return 0;
}
3. Kết quả thực nghiệm
KẾT LUẬN
Qua bài luận ta có thể hiểu rõ hơn về phương pháp nội suy đa newton với mốc
cách đều và khơng cách đều, cách giải bài tốn phương trình thơng qua hai phương
pháp. Và ta đã xây dựng được một chương trình C++ có thể tìm nghiệm gần đúng
của phương trình.
Do kiến thức của bọn em cịn nhiều hạn chế nên bài luận có thể cịn nhiều thiếu
xót em mong sẽ có được những lời đóng góp từ thầy và các bạn để bài luận được
hoàn thiện hơn. Bọn em cũng có thể rút kinh nghiệm cho các bài luận sau này. Em
xin chân thành cảm ơn thầy giáo Nghiêm Văn Tính đã hướng dẫn và giúp đỡ chúng
em hồn thiện bài luận này.