1. Trang chủ
  2. » Luận Văn - Báo Cáo

sử dụng ngôn ngữ lập trình c# giải gần đúng phương trình một ẩn và tính tích phân

41 450 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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

Định dạng
Số trang 41
Dung lượng 5,05 MB

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

Nội dung

LỜI NÓI ĐẦU Trong thời đại công nghệ thông tin ngày nay, việc ứng dụng công nghệ thông tin vào cuộc sống, cũng như các ngành khoa học ngày càng trở nên quan trọng và cần thiết, các ứng d

Trang 1

TRƯỜNG ĐẠI HỌC VINH

Trang 2

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: Nguyễn Thị Nhung

Lớp: 47Toán-Tin ứng dụng

Vinh, 5/2010

Trang 3

Lời nói đầu

Các kiến thức cơ SỞ -¿¿-52225cz222cSveescvrverrrrrrrrrrrrrev

Giải gần đúng phương trình một ẩn - -

„000

Phương pháp lặp đơn ‹‹ - << ++

Phương pháp dây cung -. - << +

Phương pháp Newton cccc 22211111 222xxzrverrrrree

Tính gần đúng tích phân - -+++++++++52

Công thức hình thang «+ <<<<<<++

Công thức Parbol (Simpson) -‹ ¿+ + << 55s

Công thức Newton - COotes -¿s.-55-5cc5c+2cc+cecxssxcsrvsrxee

Thiết kế chương trình bằng ngôn ngữ C#

kÙIo c9 010 -“dA Ô

Chức năng của C# -.- c6 c+ 2 x2 vsExvsrrvsrrrrrrrrer

Cấu trúc và giao diện của chương trình -

Trang 5

LỜI NÓI ĐẦU

Trong thời đại công nghệ thông tin ngày nay, việc ứng dụng công nghệ thông tin vào cuộc sống, cũng như các ngành khoa học ngày càng trở nên quan trọng và

cần thiết, các ứng dụng của phần mềm như Pascal, C, C# vào khoa học kỹ thuật ngày càng đóng vai trò quan trọng Trước đây khi công nghệ thông tin chưa phát triển thì việc giải các loại bài toán thuộc bộ môn Giải tích số như Phương trình hay tính Tích phân, thật khó khăn, dẫn đến kết quả không cao

Giờ đây khi máy tính được sử dụng rộng rãi thì những yêu cầu đó có thể được

giải quyết một cách đơn giản hơn Việc giải các loại bài toán Phương trình hay tính Tích phân bằng các phần mềm ứng dụng là nhanh và hiệu quả hơn rất nhiều Chỉ cần một thuật toán và chỉ cần thay các giá trị khác nhau thì sẽ cho ra các bài

toán khác nhau Việc tìm hiểu, học hỏi, ứng dụng và lập trình các phần mềm giải

quyết vấn đề này ngày nay là quan trọng và cần thiết

Đề tài khóa luận “Sử dụng ngôn ngữ lập trình C† giải gần đúng phương

trình một ẩn và tính tích phán” là một cách tập dượt nghiên cứu khoa học, ứng

dụng những thành tựu mới của công nghệ thông tin vào giải quyết các bài toán thuộc Giải tích số

Khóa luận được chia làm 2 chương:

Chương 1 trình bày một số phương pháp giải gần đúng phương trình một ẩn

và tính gần đúng tích phân, với mỗi phương pháp chúng tôi trình bày yêu các bài toán khác nhau tương ứng với các lược đồ thuật toán giải Các kiến thức chủ yếu được trích dẫn từ tài liệu tham khảo [1]

Chương 2 trình bày các đoạn code và các giao diện mô tả cách nhập và các

kết quả của các phương pháp

Khoá luận này được thực hiện và hoàn thành tại Khoa Toán - Trường Đại học

Vinh, dưới sự hướng dẫn của thầy giáo PGS.TS Trần Xuân Sinh Tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy, người đã dành cho tôi nhiều thời gian, sự quan tâm

nhiệt tình giúp đỡ tôi hoàn thành khóa luận

Trang 6

2 Nhân dịp này tôi cũng xin được cảm ơn các thầy cô giáo trong Tổ Xác suất Thống kê và Toán ứng dụng Khoa Toán, đặc biệt là các thầy giáo PGS.TS Nguyễn

Văn Quảng, đã tạo điều kiện giúp đỡ em hoàn thành Khoá luận này

Mặc dù đã có rất nhiều cố gắng nhưng vì năng lực và thời gian còn hạn chế nên Khoá luận không thể tránh khỏi những thiếu sót cả về nội dung và hình thức

Vì vậy, tôi rất mong lời chỉ bảo và sự góp ý của quý thầy cô và bạn đọc

Tôi xin chân thành cảm ơn!

Vĩnh, tháng 05 năm 2010

Tác giả

Trang 7

trong đó /(x) là hàm số (đại số hay siêu việt)

Phương trình (1.1), trừ một số trường hợp đặc biệt có công thức giải đúng,

nói chung rất phức tạp, do đó ta phải tìm cách giải gần đúng Ngoài ra, các hệ số của f(x) trong thực tế chỉ biết gần đúng, vì thế việc giải đúng (1.1) chẳng những

không thực hiện nổi mà nhiều khi không có ý nghĩa

Thông thường, quá trình giải phương trình (1.1) bao gồm hai bước:

1) Bước giải sơ bộ: ở giai đoạn này, ta tìm một khoảng đủ bé chứa duy nhất một nghiệm của /(x) Để xác định khoảng (ø, b) đủ bé như vậy, người ta thường

sử dụng các phương pháp như: Phương pháp Đồ thị, Phương pháp Đại số, phương pháp Giải tích Chẳng hạn phương pháp Giải tích ta sử dụng mệnh đề: Nếu trên khoảng (a, b) phương trình (1.1) thoả mãn:

+) liên tục,

+ /()/@b) <0

+f (x) không đổi dấu,

thì (a, b) chứa duy nhất một nghiệm

2) Bước giải kiện toàn: Tìm nghiệm với độ chính xác cần thiết

Để giải phương trình (1.1) trong luận văn này, chúng tôi trình bày 3 phương pháp, đó là: Phương pháp lặp đơn, Phương pháp Newton và Phương pháp Dây cung 1.2 Phương pháp lặp đơn

Giả sử phương trình (1.1) tương ứng với phương trình sau:

Trang 8

4

Chọn x, c(ø,b) bất kỳ và tính các xấp xỉ tiếp theo nhờ công thức

Định lý 2.1 Giả sử @ e C'[a.b] sao cho:

a) Vxe [a,b], es) <q<I1, trong đó q là một số thực nào đó xác định

b vxela,b| ø(x) e [a,b]

Khi đó

i) Phuong trinh (1.2) có nghiệm £ duy nhất trên [a,b]

1) Phép lặp (1.3) hội tụ, hơn nữa ta có ước lượng

Vậy ø là ánh xạ co Không gian X =[a,b] v6i metric d(x, y):=|x—y| 1& khong gian

metric đủ Áp dụng nguyên lí ánh xạ co Banach ta suy ra điều phải chứng minh

Chú ý

1) Công thức (1.4) thường dùng làm ước lượng tiên nghiệm

Thật vậy, muốn x, -é|<e, ta chi cần:

4"q~4) | |x, -x9|< hay n >| nf 02 mu lạ =No

x1 ~ Xo

Như vậy, từ công thức (1.4), ta có thể chỉ ra số phép lặp cần thực hiện để

nghiệm gần đúng x„ xấp xỉ £ với độ chính xác « Mặt khác công thức (1.3) tiện lợi

trong quá trình tính toán vì nó cho ta ước lượng hậu nghiém (a- posteriori estimate)

Nếu sai số giữa hai xấp xỉ liên tiếp |x„ - x„_¡|< e—4)/4 thì |x„ —¿|<£

2) Nếu a= xạ —r;b= xạ +r thì để ø đưa đoạn [a,ø] vào [a,b] chỉ cần

\o(%o) x9] $-9)r.

Trang 9

5

3) Nếu ø đơn điệu tăng (giảm) thì để ø đưa đoạn [z,;] vào trong nó thì chỉ cần

a< ø(a); ø(b) <b (a< ø(0);ø(a) < b)

4) Nếu ø(x) >0 (vx e[a,5]) thì dấy {x„} hội tụ đến £ từ một phía

Thật vậy, ta có

X„a ~§ = Pn) — 9S) = Ø (ế„)Œx„ — Ê)-

Do đó

sgn(x,.1 —$) = sgn(x, — $)

trong đó sgn(z) là hàm dấu của a

Néu g (x) <0 thi dãy {x„} hội tụ đến ¿ từ hai phía, dao động xung quanh é

Thật vậy, cũng từ hệ thức x„., - ý = ø (ế,)(x„ —£) suy ra

sgn(x,,1 —$) = —sgn(x, — é)

Hình vẽ dưới đây minh hoạ cho nhận xét 4):

Trang 10

Sơ đồ khối của phép lặp đơn như sau:

Trang 11

Rõ ràng phép lặp a) và b) cho trường hợp ø,.ø, là phân kỳ còn cho ø, thì hội

Ví dụ, nếu /(£)=0, còn f'(é) #0 ta cé thể lấy p(x) = FO

x

Khi đó ø=x- 4 i va oth Vì ø{)=0 và ø'@)liên tục nên tìm được : ;

ø >0 khá bé, sao cho Vx e(£—=ø,£+ø_ |ø@(+)|<4<1

Phương pháp lặp đơn có những ưu điểm sau:

1 Xấp xỉ ban đầu x„ không nhất thiết phải thật gần nghiệm đúng ý

2 Phép lặp đơn có khả năng tự sửa sai Nếu xấp xỉ thứ *,x, mắc sai số thì coi như xấp xỉ ban đầu mới

3 Có các đánh giá sai số (tiên nghiệm, hậu nghiệm)

4 Dễ lập trình trên máy tính (xem sơ đồ khối)

5 Dễ song song hoá trên các máy siéu tinh (supe computer)

Nhược điểm của phương pháp lặp là khi hệ số ¿ gần 1, phép lặp hội tụ rất

chậm

1.3 Phương pháp dây cung

Trong mục này, ta luôn giả thiết các điều kiện sau thoả mãn:

h1) Phương trình (1.1) có nghiệm ¿ duy nhất trên [z,b]

h2) / eC?[a,b| và ƒ'tx),ƒ”(x) không đổi dấu trên [a,»]

Định nghia Diém x < [a,b] được gọi là điểm Fourier, nếu ƒ”(x)./(x) > 0.

Trang 12

Không giảm tổng quát, hàm f(x) trong phương trình (1.1) có thể coi có đạo

hàm /”(+) >0, nếu không ta xét phương trình g(x)=0 với g:=-—ƒ

Để xác định, ta gid sit f’<0 Diém x =a 1a diém Fourier, vi f(a) > f(6) =0

và /”(a)>0 Gọi x, là xấp xỉ thứ & >0 của nghiệm é (x„ = là xấp xỉ ban đầu)

Để tìm hoành độ của giao điểm của cung MN¿ với trục hoành, trong đó toạ độ của các điểm M,X, tương ứng là A⁄(z,ƒ(ø)), N,(x,,ƒ(zx,)), ta thay cung MN: bang

dây cung MN, và tìm hoành độ giao điểm của đoạn thẳng MA, với trục hoành

Phương trình đường thẳng đi qua hai điểm AM va N, 1a:

Mere “Fe - fia Go,

Theo công thức số gia hữu hạn, ta có

Hình 1.2 Như vậy dãy {x„ } đơn điệu giảm đến ý

Tương tự như vậy, nếu ƒ”(x)>0; /“(x)>0 thì ø là điểm Fourier Xấp xỉ ban dau x, =a va ta c6é phép lặp

SQ)

———*— (x, -b) 1.6

Xk =X

Trang 13

9

Ta có thể đánh giá sai số của phương pháp dây cung

theo hai cách sau:

Sau đây là sơ đồ khối của thuật toán (1.6) với quy tắc dừng (1.7)

Trang 14

Dễ thấy ƒf(x)=3x”—0.4x—-0.2>0 và /ƒ”(x)=6x-0.4>0 với mọi xe(11.5)

Xap xi ban dau x, =1

Trang 15

11 1.4 Phuong phap Newton

Chọn x4p xi ban dau x, là điểm Fourier: f(x,)f"(x,) > 0

Phuong trinh tiép tuyén ctia dudng cong y= f(x) tai diém M,(x%,.f(%)) có

dang

y= ƒ(%ạ)x~xạ)+ ƒŒạ)

Hoành độ giao điểm của tiếp tuyến này với trục hoành là:

0= ƒ(x)x—xạ)+ FX) hay x, =x) —f(%)/ f’%)-

Trang 16

Cho n> ta duoc f(¢)=0 Tir gia thiét (hl, muc 1.3) suy ra =€

Để đánh giá giá sai số phương pháp Newton ta giả thiết rằng |ƒ"(x)|< M, và

'(x)|> M; với mọi x e[a,b| Một mặt ta có:

S Gn) = fC) - LE) = f' Onna — §)-

Tir day suy ra

⁄ FÁO DI

Khác với phương pháp lặp đơn, có bậc hội tụ 1 vì |x„, -¿|=0(|x„„, —x, 3),

phương pháp Newton có bậc hội tụ bằng 2

Phương pháp Newton hội tụ rất nhanh và do đó thường được sử dụng trên bước giải kiện toàn phương trình (1.1)

Sơ đồ khối mô tả phương pháp Newton gồm 2 phần Phần 1 là các thủ tục (ham) tinh f(x) va dao ham 7ƒ(x)= /(+) Phần 2 tìm nghiệm gần đúng theo

phương pháp Newton

Trang 17

13

Begin

x

procedure f(x) procedure Df (x)

II TINH GAN ĐÚNG TÍCH PHÂN

Trong thực tế, nhiều khi ta phải tính tích phân xác định của hàm số mà không

n=l

biết nguyên hàm của nó Nếu định nghĩa tích phân 7 =lim > f(x,)Ax, thì tổng n0

Darboux hội tụ rất chậm, do đó để đạt được độ chính xác không cao, ta vẫn phải

Trang 18

14 thực hiện một khối lượng tính toán rất lớn Ngoài ra, trong nhiều trường hợp, hàm

#Œ&) chỉ được cho dưới dạng bảng, vì vậy khái niệm nguyên hàm trở nên vô nghĩa Phương pháp đơn giản nhất để tính gần đúng tích phân xác định là thay f(x)

bằng đa thức nội suy P(x), sau đó đặt

Hinh 1.4 Nhu vay

a) Sai số địa phương Thực chất của việc thay [rac ~ “ là xấp xỉ hàm

f(x) trên đoạn [xạ,x, | bằng đa thức nội suy bậc nhất:

Trang 19

Vì f"(x) =2x nên |ƒ”(x)|<2(Vx €[L5) và như vậy r= ee P= ; = 0.66

2.2 Công thức Parbol (Simpson)

Chia [a,b] thành 2z phân bằng nhau với bước ¡= (b— ø)/2w Trên mỗi đoạn

[xz;;.xz¡ || =1,n) ta thấy f(x) bằng đa thức nội suy bậc hai (parabol) với các mốc

x i=l

nên ta có công thức sau

b-a

{ft ==" 09 +49, +292 Ft AY on + Yan): (1.12)

Trang 20

16 Sai số phương pháp

Sai số địa phương

Ap dụng định lí Rolle va vi F(0)=F(A)=0, nén tim được /e(0,) để

F'(t,)=0 Tiép theo F'(0) = F'(t,) =0, ta tim dugc ¿, e(0,,) để Ƒ”(,) =0 Cuối cùng,

do F"(0)=F"(t,)=0, nén t6n tai ¿; e(0,/,)sao cho #®)(,) =0 Từ (1.13) ta suy ra

Trang 22

Phương pháp Runge trình bày dưới đây cho phép ta nhận được các ước lượng

hậu nghiệm (a- posteriori) khá hiệu quả của sai số

Gọi ® là sai số của phương pháp Simpson, theo (2.5) ® có dạng R~Cñ”,

trong đó C= cøns¿ >0 Tính tích phân 7 hai lần theo công thức (2.2) với bước h và h/2, ta được

h= , ta duoc x, =a+ih va G5 (i=0,n)

trong đó P(¢) là đa thức nội suy Lagrange của hàm ®(đ) với các số liệu

,0¢,)} -{ re} Đặt y= f(x,), ta có i

—*»

n

Trang 23

ta nhận thấy các hệ số ?'_ (¡=0,n) không phụ thuộc vào hàm f(x) va đoạn lấy tích

phân [z,;], do đó chúng có thể được tính sẵn, lập bảng va sử dụng lâu dài

Trong biểu thức P/¿ nếu đổi biến ¿ =1-£ ta có thể chứng minh được rằng

Trang 24

1=>y,Pi => DvP = edt yP

Tiến toán được kết quả như sau:

1/6 6/7 216 185.142857 1/3 3/4 27 20.25 1/2 2/3 272 181.333333 2/3 3/5 27 16.2 5/6 6/11 216 117.818182

1 1/2 41 20.25

X = 581.994372

1 [z= — = 0.6933

8402”

Trong khi đó giá trị đúng của 7 là 7 = In2 = 0.69315

Trang 25

21 Chương 2

THIẾT LẬP CHƯƠNG TRÌNH BẰNG NGÔN NGỮ LẬP TRÌNH C#

1 Giới thiệu về C#

1.1 Sơ lược về C#

C# 1a 1 ngôn ngữ lập trình đa năng và khá toàn diện hiện nay C# được phát

triển bở Microsoft và cũng chính là I phần của NET Phù hợp với nhiều tiêu chuẩn

nhu ECMA (ECMA-334) va ISO (ISO/IEC 23270) C# là I trong 44 ngôn ngữ được

hỗ trợ bởi Common Language Runtime của NET Framework

Tháng I năm 1999, Ander Hejlsberg đã xây dựng thành công 1 ngôn ngữ mới

gọi là "Cool" Cùng thời điểm này, dự ánh NET được phát hành ra thị trường tại cuộc họp của các chuyên gia lập trình vào tháng 7 năm 2000 và cũng chính từ đây

"cool" chính thức chuyển tên thành C# Các thư viện ASP.NET runtime cũng được tích hợp vào

C# là ngôn ngữ lập trình đơn giản, hiện đại, có tính tổng quát và dễ dàng định hướng cho dự án Gói C# gần đây nhất chính là bản 3.0 và bản này chỉ có thể chạy với >NET Framework 3.5 Phiên bản 4.0 đang được hoàn tất

C# có khoảng 80 từ khóa và hơn 10 kiểu dữ liệu dựng sẵn, những C# có tính

diễn đạt cao C# hỗ trợ lập trình có cấu trúc, hướng đối tượng, hướng thành phần

(component oriented)

Trọng tâm của ngôn ngữ hướng đối tượng là lớp Lớp định nghĩa kiểu dữ liệu mới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết C# có những từ khóa dành cho việc khai báo lớp, phương thức, thuộc tính (property) mới C# hỗ trợ đầy

đủ các khái niệm trụ cột trong lập trình hướng đối tượng: đóng gói, kế thừa, đa hình

Định nghĩa lớp trong C# không đòi hỏi tách rời các tập tin tiêu đề với tập tin cài đặt như C++ Hơn thế, C# hỗ trợ sưu liệu mới cho phép sưu liệu trực tiếp trong

tập tin mã nguồn Đến khi tập tin biên dịch sẽ tạo tập tin sưu liệu theo định dạng

XLM

Ngày đăng: 18/11/2014, 11:32

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] Lờ Văn Doanh và Trần Khắc Tuấn, 101 /huật toỏn và chương trỡnh, ẹXB Khoa học và kĩ thuật, Hà Nội, 1996 Sách, tạp chí
Tiêu đề: 101 thuật toán và chương trình
Tác giả: Lờ Văn Doanh, Trần Khắc Tuấn
Nhà XB: ệXB Khoa học và kĩ thuật
Năm: 1996
[1] Phạm Kỳ Anh, Giải tớch số, ẹXB Đại học Quốc gia Ha Nội, 1996 Khác
[5] Phương Lan, Lập trình WINDOWS với C#.Net, NXB Lao động - Xã hội, 2002 Khác
[6] Trần Xuân Sinh, Phương pháp tính, Đại học Vĩnh, 1997 Khác
[7] Lê Trọng Vinh, Giải tích số, NXB Khoa học và Kĩ thuật, 2000 Khác

HÌNH ẢNH LIÊN QUAN

Hình  vẽ  dưới  đây  minh  hoạ  cho  nhận  xét  4): - sử dụng ngôn ngữ lập trình c# giải gần đúng phương trình một ẩn và tính tích phân
nh vẽ dưới đây minh hoạ cho nhận xét 4): (Trang 9)
Hình  1.2  Như  vậy  dãy  {x„  }  đơn  điệu  giảm  đến  ý. - sử dụng ngôn ngữ lập trình c# giải gần đúng phương trình một ẩn và tính tích phân
nh 1.2 Như vậy dãy {x„ } đơn điệu giảm đến ý (Trang 12)
Hình  2.1  Khi  nhấp  chuột  vào  thực  đơn  Lựa  chọn  thì  ta  có  giao  diện  như  hình  2.2 - sử dụng ngôn ngữ lập trình c# giải gần đúng phương trình một ẩn và tính tích phân
nh 2.1 Khi nhấp chuột vào thực đơn Lựa chọn thì ta có giao diện như hình 2.2 (Trang 27)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w