You are on page 1of 24

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 CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
ĐHKTCN
KHOA ĐIỆN TỬ Độc lập - Tự do - Hạnh phúc

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

Stt Họ Tên MSSV


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 hoà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 toán học có nhiệm vụ giải đến kết quả bằng số cho
các bài toán, nó cung cấp các phương pháp giải cho những bài toá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 toá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 toá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 đó:
y=f (x ¿¿ k )¿; Δ x k =x k+1−x k ≠0 và khác nhau , với ∀ k ≥ 0 .

- Tỷ hiệu cấp một của hàm tại 2 nút x k , x k +1 kí hiệu là


f ( x k+ 1) −f ( x k )
f [ x k ; x k+1 ] =
x k +1−x k

- 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:

f ( x1 ) −f ( x 0 ) 2−0
A= f [ x 0 ; x1 ] = = =2
x 1−x 0 0− (−1 )

f ( x 2 ) −f ( x 1 ) 12−2
B = f [ x 1 ; x 2 ]= = =5
x2 −x1 2−0

f ( x3 ) −f ( x 2 ) 20−12
C = f [ x 2 ; x 3 ]= = =8 D =
x3 −x 2 1

f [ x 1 ; x 2 ]−f [ x0 ; x 1] B− A
f [ x 0 ; x1 ; x 2 ]= = =1
x 2−x 0 2+1

f [ x2 ; x 3 ]−f [ x1 ; x 2] C−B
E = f [ x 1 ; x 2 ; x3 ]= x 3−x 1
=
3−0
=1

f [0 ; 2 ;3 ]−f [−1; 0; 2] E−D


Vậy : f [−1 ; 0 ; 2; 3 ] = 3−(−1)
=
4
=0

Lưu ý : là đa thức bậc hai => các tỷ hiệu cấp 2 của đều bằng nhau, các
tỷ hiệu cấp 3 của đề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 toán nhưng có nhược điểm là khi thêm một nút
nội suy thì quá 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 thuận lợi hơn như
sau:

Từ công thức tính tỷ hiệu :

Lại có:

Thay vào (1) ta được:

Cứ như vậy ta thu được:

Đặt

thì ta có : .

- Dễ dàng kiểm tra thấy với

Vậy 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 tìm được theo (*) gọi là đa thức nội suy Newton
tiến của hàm 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 là :

Sai số nội suy vẫn 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 có đạo hàm liên tục đến cấp n+1 trên , [ a ; b ]chứa tất cả các
nút nội suy 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 thì sau khi tìm được đa thức nội suy
Newton ứ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 bằng đa thức nội suy tìm được ở trên.

Giải.

(1) Có 5 nút nội suy, ta có:

Tính các tỷ hiệu của hàm 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

4 7 1611
Vậy

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 của hàm
xuất phát từ . Đánh giá sai số của các giá trị tìm được.

(2) Tính gần đúng bằng đa thức nội suy Newton lùi Sn(x) của hàm
từ nút nội suy . Đánh giá sai số của các giá trị tìm được

(3) Từ đa thức nội suy của hàm ứng với bảng trên, tính gần
đúng

Giải.

(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

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 là:

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
D+ ( 1,35−1,3 ) X+ ( 1,35−1,3 ) ( 1,35−1,2 ) M + ( 1,35−1,3 ) ( 1,35−1,2 ) ( 1,35−1.1 ) E=0,97570

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 Tỷ hiệu cấp 2 Tỷ hiệu cấp 3

( )

Vậy

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ố được cho dưới dạng bảng:

x x0 x1 x2 … xk xk+1 …
y y0 y1 y2 … yk yk+1 …

trong đó ; 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ại là :

Tương tự thay kí hiệu Δ bằng kí hiệu ta có khái niệm hiệu hữu hạn lùi cấp n của
hàm tại điểm 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 hay thì ta có đa thức nội suy Newton tiến
của hàm 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 thì đa thức nội suy Newton lùi của
hàm 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ố như sau:


x

(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
x0 = 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 xk yk
0 0,258819 (A) 0,083201 (E) -0,002603 (Y) -0,000613(X’)
1 0,342020 (B) 0,080598 (F) -0,003216 (M)
2 0,422618 (C) 0,077382 (X)
3 0,500000 (D)

Với . 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
xi , yi , x¿ , n

h= x 2−x 1
k=1

Δ k yi =Δ y k−1 k−1
Δy i= y i+1 + y i ⅈ+ 1 + Δ y i

y ¿ = y 0 ; F=1 ; P=x ¿ −x 0

i=1, n

F=F∗ⅈ; y ¿ =Δ i y 0 / ( F∗hi )∗P

P=P∗(x ¿ −x i)
Kết luận y ¿

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["<<i<<"]: ";
cin>>x[i];
cout<<"f["<<i<<"]: ";
cin>>y[i];
}
cout<<"\nx[i]\tf[i]\n";
for(i=1; i<=n; i++){
cout<<x[i]<<"\t"<<y[i]<<"\n";
}
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<<fixed<<setprecision(2);
cout<<"\nBang sai phan(bang ti hieu)"<<endl;
do{
cout<<"A.("<<j++<<") f(x)\n";
for(i=1; i<n; i++){
p[i]=( ( y[i+1]-y[i] ) );
cout<<p[i]<<"\n";

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<m; 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("<<X<<") = "<<f;
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 toá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 hoàn thiện bài luận này.

You might also like