Sử dụng ngôn ngữ lập trình c# xấp xỉ hàm số bằng đa thức nội suy

33 2.3K 7
Sử dụng ngôn ngữ lập trình c# xấp xỉ hàm số bằng đa thức nội suy

Đ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

Trờng đại học vinh Khoa Toán Sử dụng ngôn ngữ lập trình C# xP X HM S BNG A THC NI SUY Khoá luận tốt nghiệp đại học Ngành cử nhân khoa học toán-Tin Chuyên ngành: Xác suất Thống kê và Toán ứng dụng Cán bộ hớng dẫn: PGS.TS. Trần Xuân Sinh Sinh viên thực hiện: Phm Th Thanh Mai Lớp: 47Toán-Tin ứng dụng Vinh, 5/2010 MC LC trang Mở U 2 Chơng 1 .3 CáC KIếN THứCSở 3 1.1. A TH C N I SUY 3 1.1.1. Đa thức nội suy bằng đại số 3 1.1.2. Đa thức nội suy Lagange 4 1.1.3.2. Sai số tính toán .10 1.1.4. Đa thức nội suy Newton 11 1.1.5. Đa thức với mốc nội suy cách đều 13 1.1.5.1 Đa thức Chebysev .13 1.1.5.2 Chọn mốc nội suy 14 1.1.5.4 Một số quy tắc nội suy hàm số trên lới đều 16 a. Bảng sai phân 16 1.1.5.5 Nội suy ở đầu bảng .17 1.1.5.6 Nội suy ở cuối bảng 17 Chơng 2 18 THIếT LậP CHƯƠNG TRìNH BằNG NGÔN NGữ LậP TRìNH c# 18 2.1 Giới thiệu về C# 18 2.1.1 C# là gì? .18 2.1.2 Lịch sử ra đời của C# .19 2.1.3. Chức năng của C# .20 2.2. Cấu trúc và giao diện của chơng trình .21 K T LU N 32 Mở U Xấp xỉ hàm số bằng đa thức nội suy là một đề tài khá thú vị. Trong thực tế, nhiều khi ta phải tìm hàm )(xfy = , chỉ biết các giá trị của i y tại các điểm [ ] bax i , , )., .1,0( ni = Cũng có trờng hợp biểu thức )(xf đã cho nhng quá cồng kềnh. Khi đó dùng phép nội suy ta có thể dễ dàng tính đợc f tại bất kì [ ] bax , mà độ chính xác không kém bao nhiêu. 2 Mục tiêu của phép nội suy khá nhiều, nhng chủ yếu tìm thuật toán đơn giản tính giá trị )(xf cho những x không nằm trong bảng ii yx , , ),0( ni = và một chơng trình ngắn gọn có thể thay một bảng rất dài các giá trị ).(, ii xfx Luận văn đợc chia làm 2 chơng: Chơng 1: Trình bày một số định nghĩa và tính chất về đa thức nội suy, đa thức nội suy Lagrange, đa thức nội suy Newton, các kiến thứcsở để thiết lập chơng trình tính giá trị hàm y tại các mốc nội suy đã cho nhờ đa thức nội suy. Chơng 2: Đa ra các cấu trúc thuật toán, cấu trúc của chơng trình và thiết kế giao diện bằng ngôn ngữ lập trình C#. Do khóa luận đợc tiến hành tìm hiểu và hoàn thành trong một thời gian ngắn. Đồng thời với dung lợng của khóa luận và khả năng có hạn của mình tôi cha thể khai triển và khai thác hết mọi vấn đề một cách sâu sắc. Vì vậy, khóa luận của tôi không thể tránh khỏi những thiếu sót. Qua khoá luận này, tôi xin bày tỏ lòng biết ơn sâu sắc đến PGS.TS. Trần Xuân Sinh, ngời đã dành thời gian, tận tình hớng dẫn tôi trong suốt quá trình tôi làm khóa luận. Tôi cũng xin gửi lời chân thành cảm ơn đến gia đình, bạn bè đã động viên, giúp đỡ nhiệt tình, tạo điều kiện tốt nhất cho tôi trong quá trình học tập, nghiên cứu và hoàn thành luận văn này. Vinh, tháng 5 năm 2010 Tác giả Chơng 1 CáC KIếN THứCSở 1.1. A THC NI SUY 1.1.1. Đa thức nội suy bằng đại số Ngoài ý nghĩa lịch sử ra, đa thức đại số thờng đợc dùng trong phép nội suy vì lý do đơn giản sau: các phép cộng, trừ, nhân, đạo hàm, tích phân dễ dàng thực hiện 3 trên đa thức. Hơn nữa nếu )(xp là đa thức, còn c là hằng số thì )(cxP và )( xcP + cũng là đa thức. Bài toán nội suy đặt ra nh sau: cho các mốc nội suy bxxxa n <<< . 10 . Hãy tìm đa thức bậc m , = = m i i im xaxP 0 )( , sao cho )(:)( iiim xfyxP == , ),0( ni = . ý nghĩa hình học của bài toán nội suy là: hãy xây dựng đờng cong đại số )(xPy m = đi qua các điểm cho trớc ),( ii yx , ),0( ni = . Nh vậy ta cần xác định )1( +m hệ số i a , ),0( ni = , từ hệ phơng trình tuyến tính sau: i m j j ij yxa = =0 , ),0( ni = . (1.1) Có thể thấy rằng nếu nm < , )( nm > hệ nói chung vô nghiệm. Khi nm = , hệ )1.1( có định thức Vandermond 0)( .1 . . .1 .1 0 2 1 2 11 0 2 00 == < nji ji n nnn n n xx xxx xxx xxx . Suy ra phơng trình (1.1) có nghiệm duy nhất. 1.1.2. Đa thức nội suy Lagange Sau đây ta sẽ trình bày cách xây dựng đa thức nội suy mà không cần giải hệ (1.1). Trớc hết, ta tìm đợc đa thức )(xP i có bậc n , sao cho P i (x j ) = 1, nếu i = j 0, nếu i j. với i, j = 0, 1, ., n. Ta thấy P i (x) = A i (x-x 0 ) (x-x i- 1 )(x-x i +1 ) (x-x n ). 4 Vì )) .()() .(( )) .()() .(( )(1 110 110 niiiiii nii xxxxxxxx xxxxxxxx xP == + + nên ta có P i (x) = )) .()() .(( )) .()() .(( 110 110 niiiiii nii xxxxxxxx xxxxxxxx + + . Đặt P(x) = = n i 0 y i P i (x), ta có P(x j ) = = n i 0 y i P i (x j ), j = 0, 1, ., n. Nh vậy )(xP là đa thức nội suy duy nhất cần tìm. Nếu các mốc nội suy cách đều, tức là hxx jji = + , )1,0( = ni , thì đặt , 0 h xx t = hay thxx += 0 ta đợc P i (x) = P i (x 0 +ht) = )(! )) .(1()1( itn ntttC i n in . Từ đó ta đợc = =+ n i i i n n y it C n nttt thxP 0 1 0 )1( ! )) .(1( )( . (2.1) Trong công thức (2.1), các hệ số i n in C )1( không phụ thuôc vào hàm số )(xf , mốc nội suy và bớc h . Do đó chúng đợc tính sẵn, lập bảng để sử dụng nhiều lần. 5 đồ khối tính giá trị hàm )(xf theo phơng pháp nội suy lagrange rất đơn giản 6 VÝ dô 1: T×m ®a thøc néi suy bËc 2 cña hµm x y 3= trªn ®o¹n ]1,1[− t¹i c¸c mèc néi suy ,1,0,1 210 ==−= xxx ta cã ;3,1,3/1 210 === yyy )684( 6 1 1)11( )1( 3 )10)(10( )1)(1( .1 )11)(01( )1)(0( 3 1 )( 2 2 ++= + + + −+ −+ + −−−− −− = xx xxxxxx xL . Cho 2/1 = x ta ®îc 8.1 6 1 3 2 133 2 1 ≈++≈= . Input n, x, {x i ,y i } P = 0 k = 0, 1,…, n G =1 i = 0,1, …, n i k G = G(x-x i )/(x k -x i ) P=P+y k G Print f(x) End 7 Ví dụ 2: Tìm đa thức nội suy bậc 4 trùng với hàm y =2cos 4 x tại các điểm i x 2 3/4 0 3/4 2 i y 0 1 2 1 0 P(x) = ; 320 6401969 ) 3 4 2(2) 3 4 2)(22( ) 3 4 () 3 4 )(2( .0 )2 3 4 ( 3 4 ) 3 4 3 4 )(2 3 4 ( )2() 3 4 )(2( .1 )20)( 3 4 0)( 3 4 0)(20( )2)( 3 4 )( 3 4 )(2( .2 )2 3 4 )( 3 4 3 4 )( 3 4 )(2 3 4 ( )2)( 3 4 ()2( .1 )22)( 3 4 2)(2)( 3 4 2( )2)( 3 4 () 3 4 ( .0 24 + = ++ ++ + ++ ++ + ++ ++ + + + + + + + xx xxxxxxxxxxxx xxxxxxxx Khi cần tính giá trị của x [x 0 , x n ], ta chỉ cần tính y = f(x) P(x), chẳng hạn với x = 1 thì y(1) = f(1) P(1) 4156.1 . Sai số 0015.0)1()1( < Pf . Công thức nội suy Lagrange trình bày ở trên có u điểm là đơn giản nhng nếu thêm mốc nội suy phải tính lại toàn bộ. Nhợc điểm này đợc khắc phục trong công thức nội suy Newton 1.1.3. Sai số của phép nội suy 1.1.3.1. Sai số phơng pháp Giả sử )(xP là đa thức nọi suy bậc n của hàm )(xf , tức là ).,0)(()( nixfxP ii == Xét hàm hỗ trợ ),()(:)( zkzRzF = trong đó .)()( 0 = = n i i xzz Hằng số k chọn từ điều kiện ,0)( =xF nghĩa là )( )()( x xpxf k = 8 Mặt khác ),0(0)( nixF i == do đó )(zF có 2+n nghiệm phân biệt n xxxx , .,,, 10 . Theo định lý Role )( , zF có )1( +n nghiệm vv, ))(1( znF + có nghiệm [ ] ba, ,)!1()())(1(0 )1( +=+= + nkfnF n hay k n f n = = + )!1( )( )1( So sánh hai cách viết của k ta có: )( )!1( )( )( )1( x n f xR n = + . (2.2) Gọi ,)(sup )1( xfM n bxa + < = từ (2.2) suy ra )) .(( )!1( )()( 0 n xxxx n M xPxf + . (2.3) Ví dụ. Ước lợng sai số phép nội suy bằng đa thức bậc 3 tính sin6 O với các mốc nội suy . 180 11 ; 20 ; 180 7 ; 36 3210 ==== xxxx Ta có ========= xfxbanxxf sin;6 30 ;11 180 11 ;5 36 ;3;sin)( )4( 190809.011sin)(sup )4( === xfM bxa Vậy 9 10106.1) 180 11 30 )( 2030 )( 180 7 30 )( 3630 ( !4 190809.0 )6(6sin ì P Để có thể kết luận cụ thể hơn về phép nội suy, ta phải nghiên cứu dáng điệu của hàm )(x Xét trờng hợp các mốc nội suy cách đều ).,0( 0 niihxx i =+= Đặt , )( 0 h xx t = ta có ),()()( 1 0 ththxx n + =+= Trong đó ).) .(1()( ntttt = nh vậy ta quy về việc nghiên cứu dáng điệu của hàm )(x về việc khảo sát của hàm ).(t 9 Các tính chất của hàm ).(t 1) hàm chẵn (lẻ) đối với với điểm (n/2; 0) nếu n lẻ (chẵn). Thật vậy, đặt 2 n tz = ta có . 2 2 2 ) 2 ()( 2 2 2 2 ì =+= n z n z n zt Nếu n chẵn thì trong biểu thức của có 1 + n thừa số, do đó còn một thừa số không ghép đôi đợc, do đó hàm lẻ. Ngợc lại, nếu n lẻ thì gồm )1( +n thừa số có thể ghép đôi hết, do đó hàm chẵn 2) )( 1 )1) .(1()1( t nt t ntntttt + =++ . Xét phân hạch 1 0 ]1,[]1,0[ = += n i ii . Giá trị của )(t trên đoạn [ ] 1, +ii là giá trị tơng ứng trong đoạn trớc nhân với 0 1 < + nt t , khi [ ] nt ,0 . Nh vậy, dấu của )(t đan nhau khi chuyển từ đoạn này qua đoạn khác. 3) Do 1 2 1 1 2 1 11 ; 2 1 ,0 = + + = + n n n tn t nt tn t nên )( 1 tMax iti + giảm dần khi i thay đổi từ 0 đến n/2, sau đó lại tăng do tính chất đối xứng của . 4) Ngoài đoạn [ ] n,0 )(t tăng rất nhanh. Từ 4 tính chất của (t) ta rút ra hai kết luận sau: a) Phần d )(xR rất lớn ngoài đoạn [ ] ,, 0 n xx do đó dùng công thức nội suy để thực hiện phép ngoại suy sẽ mắc phải sai số lớn. b) Phép nội suy có độ chính xác cao đối với các đoạn [ ] 1 , +ii xx ở trung tâm và độ chính xác thấp đối với các đoạn ngoài rìa. 1.1.3.2. Sai số tính toán Giả sử thay vì biết các giá trị đúng )( ~ i xfy = . Khi đó, thay vì đa thức nội suy 10

Ngày đăng: 20/12/2013, 18:44

Hình ảnh liên quan

ý nghĩa hình học của bài toán nội suy là: hãy xây dựng đờng cong đại số - Sử dụng ngôn ngữ lập trình c# xấp xỉ hàm số bằng đa thức nội suy

ngh.

ĩa hình học của bài toán nội suy là: hãy xây dựng đờng cong đại số Xem tại trang 4 của tài liệu.
Giả sủ hàm y= f(x) cho dới dạng bảng y i= f(x i) tại các mốc xi cách đều: xi+1 - Sử dụng ngôn ngữ lập trình c# xấp xỉ hàm số bằng đa thức nội suy

i.

ả sủ hàm y= f(x) cho dới dạng bảng y i= f(x i) tại các mốc xi cách đều: xi+1 Xem tại trang 16 của tài liệu.
1.1.5.5 Nội suy ở đầu bảng - Sử dụng ngôn ngữ lập trình c# xấp xỉ hàm số bằng đa thức nội suy

1.1.5.5.

Nội suy ở đầu bảng Xem tại trang 17 của tài liệu.
Hình 1 - Sử dụng ngôn ngữ lập trình c# xấp xỉ hàm số bằng đa thức nội suy

Hình 1.

Xem tại trang 21 của tài liệu.
Hình 2 - Sử dụng ngôn ngữ lập trình c# xấp xỉ hàm số bằng đa thức nội suy

Hình 2.

Xem tại trang 25 của tài liệu.
Hình 3 - Sử dụng ngôn ngữ lập trình c# xấp xỉ hàm số bằng đa thức nội suy

Hình 3.

Xem tại trang 27 của tài liệu.
Hình 4 - Sử dụng ngôn ngữ lập trình c# xấp xỉ hàm số bằng đa thức nội suy

Hình 4.

Xem tại trang 28 của tài liệu.
Hình 5 - Sử dụng ngôn ngữ lập trình c# xấp xỉ hàm số bằng đa thức nội suy

Hình 5.

Xem tại trang 30 của tài liệu.
Hình 7 - Sử dụng ngôn ngữ lập trình c# xấp xỉ hàm số bằng đa thức nội suy

Hình 7.

Xem tại trang 31 của tài liệu.

Tài liệu cùng người dùng

Tài liệu liên quan