1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Turbo C nâng cao P11 ppt

24 330 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nội suy Lagrange
Thể loại Bài giảng
Định dạng
Số trang 24
Dung lượng 143,09 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương 11 : nội suy và xấp xỉ hàm Trong thực tế nhiều khi phải phục hồi một hàm y = fx tại mọi giá trị x trong một đoạn [ a,b ] nào đó mà chỉ biết một số nhất định các giá trị của hàm tạ

Trang 1

Chương 11 : nội suy và xấp xỉ hàm

Trong thực tế nhiều khi phải phục hồi một hàm y = f(x) tại mọi giá trị x trong một

đoạn [ a,b ] nào đó mà chỉ biết một số nhất định các giá trị của hàm tại một số điểm cho trước.Các giá trị này được cung cấp qua thực nghiệm hay tính toán.Vì vậy nảy sinh vấn đề toán học là trên đoạn a ≤ x ≤ b cho một loạt các điểm xi ( i= 0,1,2 ) và tại các điểm xi này giá trị của hàm là yi = f(xi) đã biết.Bây giờ ta cần tìm đa thức :

Pn(x) = aoxn + a1xn-1 + …+an-1x + an sao cho Pn(xi) = f(xi) = yi.Đa thức Pn(x) được gọi là đa thức nội suy của hàm y = f(x).Ta chọn

đa thức để nội suy hàm y = f(x) vì đa thức là loại hàm đơn giản,luôn có đạo hàm và nguyên hàm.Việc tính giá trị của nó theo thuật toán Horner cũng đơn giản

Bây giờ ta xây dựng đa thức nội suy kiểu Lagrange.Gọi Li là đa thức :

) x x ) (

x x )(

x x ) (

x x (

) x x ) (

x x )(

x x ) (

x x ( L

n i 1 i i 1 i i 0 i

n 1

i 1

i 0

ij1)x(

Li j

Ta gọi đa thức này là đa thức Lagrange cơ bản

Bây giờ ta xét biểu thức :

Ta thấy Pn(x) là một đa thức bậc n vì các Li(x) là các đa thức bậc n và thoả mãn điều kiện Pn(xi) = f(xi) = yi.Ta gọi nó là đa thức nội suy Lagrange

1 0

x x

x x L

ư

ư

=

0 1

0 1

x x

x x L

0 1

1 0

1 0

1

x x

x x y x x

x x y ) x ( P

ư

ư +

ư

ư

=Như vậy P1(x) là một đa thức bậc nhất đối với x

x x (

) x x )(

x x ( L

2 0 1 0

2 1

x x (

) x x )(

x x ( L

2 1 0 1

2 0

ư

ư

=

Trang 2

) x x )(

x x (

) x x )(

x x ( L

1 2 0 2

1 0

ư

ư

=

Như vậy P1(x) là một đa thức bậc hai đối với x

Trên cơ sở thuật toán trên ta có chương trình tìm đa thức nội suy của một hàm khi cho trước các điểm và sau đó tính trị số của nó tại một giá trị nào đó như sau :

Trang 3

printf("So cap (x,y) nhieu nhat la max = 20\n");

printf("So diem da cho truoc n = ");

Trang 4

vậy theo chương trình tại x = 2.5 y = -3.3549

Bây giờ ta xét một cách khác để xây dựng đa thức nội suy gọi là phương pháp Newton.Trước hết ts đưa vào một khái niệm mới là tỉ hiệu

Giả sử hàm y = y(x) có giá trị cho trong bảng sau :

Tỉ hiệu cấp 1 của y tại xi,xj là :

Trang 5

j i

j i j i

x x

y y ] x , x [ y

k j j

i k

j i

xx

]x,x[y]x,x[y]x,x,x[y

=v.v

Với y(x) = Pn(x) là một đa thức bậc n thì tỉ hiệu cấp 1 tại x,x0 :

0

0 n n

0 n

x x

) x ( P ) x ( P ] x , x [ P

x x

] x , x [ P ] x , x [ P ] x , x , x [ P

Pn[x,xo, ,xn-1] = Pn[x0,x1, ,xn] + ( x- xn) Pn[x,xo, ,xn]

Do Pn[ x,xo, ,xn] = 0 nên từ đó ta có :

Pn(x) = Pn(x0) + (x - x0)Pn[xo,x1] + (x - x0)(x - x1)Pn[x0,x1,x2] +…

+(x - x0)…(x - xn-1)Pn[x0,…,xn] Nếu Pn(x) là đa thức nội suy của hàm y=f(x) thì :

h

y]x,x[

1 0

=

h2

y]x,x,x[

0 2 2 1 0

=

Trang 6

) h

! n (

y ] x ,.

x [

) 1 n t (

).

1 t ( t y

! 2

) 1 t ( t y t y ) ht x (

n 0

2 0

0 0

thì ta nhận được đa thức Newton tiến xuất phát từ x0 trong trường hợp nút cách đều.Với n =1

ta có :

P1(x0+ht) = y0 + ∆y0Với n =2 ta có :

y 2

) 1 t ( t y t y ) ht x (

2 0

0 0

) 1 n t (

).

1 t ( t y

! 2

) 1 t ( t y t y ) ht x (

n n

2 n

n 0

Ví dụ : Cho hàm như bảng sau :

y 0.09983 0.19867 0.29552 0.38942

Ta tính giá trị của hàm tại 0.14 bằng đa thức nội suy Newton vì các mốc cách đều

h = 0.1.Ta có bảng sai phân sau :

000096.0

!3

)2t)(

1t(t00199.0

!2

)1t(t099884

0.09983.0)

Trang 7

//Noi suy Newton

Trang 8

Một dạng khác của đa thức nội suy được xác định bằng thuật toán Aitken.Giả sử ta có

n điểm đã cho của hàm f(x).Như vậy qua hai điểm x0 và x1 ta có đa thức nội suy Lagrange của hàm f(x) được viết dưới dạng :

Trang 9

0 1

1 1

0 0 01

xx

xxy

xxy)x(P

0 1

1 0

1 0

01

x x

x x y x x

x x y ) x ( P

− +

=.Khi x = x0 th× :

0 0

1

0 1 1

0 0 0 0

xx

xxy

xxy)x(

−−

=Khi x = x1 th× :

1 0

1

1 1 1

1 0 0 1

xx

xxy

xxy)x(

2 12

0 01

012

xx

xx)x(P

xx)x(P)x(P

x x (

) x x )(

x x ( y ) x x )(

x x (

) x x )(

x x ( y ) x x )(

x x (

) x x )(

x x ( y )

x

(

P

1 2 0 2

1 0

2 2 1 0 1

2 0

1 2 0 1 0

2 1

0

− +

− +

2

0 2 12

0 0 0 0

xx

xx)x(P

xxy)x(

1 0

2

1 2 1

1 0 1 1

xx

xxy

xxy)x(

2 0

2

2 2 2

2 0 2 01 2

xx

xxy

xx)x(P)x(

0 2

n n

12

0 )

1 n (

01

n 012

xx

xx)x(P

xx)x(P

)x(P

Trang 10

1.97143

04.1

6.05.1

24.0x

x

xxy

xxy)x(P

0 1

1 1

0 0

6.08.1

6.05.1x

x

xxy

xxy)x(P

1 2

2 2

1 1

6.065.1

297143.1x

x

xx)x(P

xx)x(P)x(P

0 2

2 12

0 01

9.16.2

6.08.1x

x

xxy

xxy)x(P

2 3

3 3

2 2

.19.3

9.14308.1

6.065.1x

x

xx)x(P

xx)x(P)x(P

1 3

3 23

1 12

9.3

9.15974.1

27242.1x

x

xx)x(P

xx)x(P)x(P

0 3

3 123

0 012

Trang 11

f(x) = a0f0(x) + a1f1(x) + a2f2(x) (1)

Trong đó các hàm f0(x),f1(x),f2(x) v.v.là (m+1) hàm độc lập tuyến tính mà ta có thể chọn tuỳ

ý và các hệ số ai là tham số chưa biết mà ta phải xác định dựa vào hệ hàm đã chọn và các

điểm quan sát.Sai số giữa trị đo được và trị tính theo (1) là :

Sai số này có thể âm hay dương tuỳ từng giá trị của yi.Khi dùng phương pháp bình phương

bé nhất ta xét bình phương của sai số tại một điểm :

i i

ư

=

1 i

2 i n n i

1 1 i 0 0 i n

Rõ ràng S là hàm của các giá trị cần tìm ai.và chúng ta sẽ chọn các ai sao cho S đạt giá trị min,nghĩa là các đạo hàm

1.Hàm xấp xỉ có dạng đa thức : Trong trường hợp tổng quát ta chọn hệ hàm xấp xỉ là một

1 0

y

S = ư + + + ⋅ ⋅⋅ + Theo điều kiện đạo hàm 0

Trang 12

⋅++

⋅⋅

=+

⋅⋅

⋅++

=+

⋅⋅

⋅++

=+

⋅⋅

⋅++

=+

⋅⋅

⋅++

i

m i n

1 i

m i 0 n

1 i

n

1 i

1 m 2 i 1 m m 2 i m

n

1 i i

3 i n

1 i

3 i 0 n

1 i

n

1 i

2 m i 1 m 3 m i m

n

1 i i

2 i n

1 i

2 i 0 n

1 i

n

1 i

1 m i 1 m 2 m i m

n

1 i i i n

1 i i 0 n

1 i

n

1 i

m i 1 m 1 m i m

n

1 i i 0

n

1 i

n

1 i

1 m i 1 m

m i m

yxx

ax

axa

yxx

ax

ax

a

yxx

ax

ax

a

yxx

ax

ax

a

yna

xa

xa

§©y lµ mét hÖ ph−¬ng tr×nh tuyÕn tÝnh.Gi¶i nã ta nhËn ®−îc c¸c gÝa trÞ ai.Sau ®©y lµ ch−¬ng tr×nh viÕt theo thuËt to¸n trªn

Trang 13

for (p=0;p<=m;p++)

for (k=0;k<=m;k++)

Trang 14

2.Hàm dạng Ae cx : Khi các số liệu thể hiện một sự biến đổi đơn điệu ta dùng hàm xấp xỉ là

y = Aecx.Lấy logarit hai vế ta có :

lny = lnA + cxlne

Trang 15

Theo điều kiện đạo hàm 0

=+

n

1 i

i i n

1 i i

2 i

n

1 i

n

1 i i i

ylnxx

Alnxc

ylnA

lnnxc

Trang 16

printf("Chi so cua phan tu can sua i = ");

Trang 17

3.Hàm dạng Ax q : Khi các số liệu thể hiện một sự biến đổi đơn điệu ta cũng có thể dùng

hàm xấp xỉ là y = Axq.Lấy logarit hai vế ta có :

lny = lnA + qlnx Theo điều kiện đạo hàm triệt tiêu ta có hệ phương trình :

=+

n

1 i

i i n

1 i i i

2

n

1 i

n

1 i i i

ylnxlnx

lnAlnxlnq

ylnA

lnnxlnq

Trang 19

4.Hàm lượng giác : Khi quan hệ y=f(x) có dạng tuần hoàn ta dùng hàm xấp xỉ là tổ hợp

tuyến tính của các hàm sin và cosin dạng :

ω+

ω+

1 i

n

1 i i i

0 a cos(i x) b sin(i x)a

)x(

Để đơn giản trước hết ta xét hàm chỉ có một số hạng sin-cos,nghĩa là :

x sin b x cos a a ) x ( = 0 + 1 ω + 1 ωHàm S sẽ có dạng :

=

ω+

ω+

ư

= n

1 i

2 1

1 0

yS

Theo điều kiện đạo hàm triệt tiêu ta có hệ phương trình đối với các hệ số dạng :

ωω

ωωω

ω

ωω

xcosyyb

aaxsinx

sinxcosx

sin

xsinxcosx

cosx

cos

xsinx

cosn

1 1 0 2

2

Do :

0n

xsinx

1n

xcos2

1n

xsin

0n

xcos0

n

xsin

2 2

=ωω

=

ω

=

ω

Trang 20

x cos y y

b a a

2 n 0 0

0 2 n 0

0 0 n

1 1 0

2an

2an

Trang 21

printf("%4c%8.4f%23c%8.4f\n",' ',x[i],' ',y[i]);

Trang 22

Chọn số hệ số sin-cos m = 1,số điểm cho trước n = 10,chu kì T = 15 ta nhận được kết quả tính a0 = 1.7 ; a1 = 0.5 ; b1 = -0.8661 và ω = 4.18879.Như vậy hàm xấp xỉ có dạng :

f(x) = 1.7 + 0.5cos(4.18879x) - 0.8661sin(4.18879x)

5.Hàm hữu tỉ : Khi quan hệ y = f(x) có dạng đường cong bão hoà hay dạng arctan,tan v.v ta

dùng hàm xấp xỉ là hàm hữu tỉ dạng đơn giản :

xb

axy+

=Lấy nghịch đảo của nó ta có :

a

1x

1a

by

=+

n

1

2 i

1x

1Bx

1A

y

1x

1BnA

và từ đó tính được a và b.Chương trình sau mô tả thuật toán trên

Ngày đăng: 19/01/2014, 22:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w