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

Tìm nghiệm gần đúng của phương trình vi phân bằng phương pháp runghe kutta

25 552 0

Đ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 25
Dung lượng 1,54 MB

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

Nội dung

Tìm nghiệm gần đúng của phương trình vi phân bằng phương pháp runghe kutta

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

KHOA TOÁN TIN ỨNG DỤNG

- -

Đề tài: Tìm nghiệm gần đúng của phương trình vi phân

bằng phương pháp Runghe – Kutta

Giáo viên hướng dẫn: Nguyễn Hữu Điển Sinh viên thực hiện : Cung Vĩnh Nam Nguyễn Thị Bích Vân

Lớp: Toán-Tin 2-K51

Hà Nội, tháng 11 năm 2009

Trang 2

Môc lôc

LỜI MỞ ĐẦU 4

NỘI DUNG 5

I Giới thiệu sơ lược về Maple 5

1 Maple là gì? 5

2 Chức năng 5

3 Kiến trúc 6

4 Cấu trúc tập hợp và danh sách trong Maple 6

5 Ví dụ về ứng dụng của Maple trong giảng dạy 7

II Mô phỏng thuật toán tìm nghiệm gần đúng của phương trình vi phân bằng phương pháp Runghe – Kutta 8

1 Trình bày bài toán 8

2 Thuật toán 9

III Chương trình minh họa không sử dụng hàm RungheKutta có sẵn trong Maple 11

1.Thủ tục giatrihamso để tính giá trị của hàm số đã cho 11

2 Cấu trúc for – do 11

3.Thủ tục RungheKutta dùng để mô tả thuật toán và cho ra kết quả 12

4 Ví dụ áp dụng 13

IV Chương trình minh họa sử dụng hàm RungheKutta có sẵn trong Maple 15

1 Cấu trúc lệnh dsolve 15

2 Chương trình chạy và ví dụ minh họa 15

V So sánh chương trình không sử dụng hàm RungheKutta trong maple và chương trình sử dụng hàm RungheKutta có sẵn trong Maple 16

1 Xét các ví dụ 16

2 So sánh 21

Trang 3

VI Giới hạn của thuật toán 21

KẾT LUẬN 22

I Kết quả đạt được từ đề tài 22

II Kết luận 24

TÀI LIỆU THAM KHẢO 25

Trang 4

Lêi më ®Çu Ngày nay, ở Việt Nam tất cả các kỳ thi cấp trung học trở lên đều được

phép dùng máy tính (không lập trình), điều đó có nghĩa là xã hội đã chấp

nhận cho các em miễn làm tính bằng tay, mà chẳng ai đặt vấn đề “mất tư

duy” Toán học cả Lên đến bậc đại học, công cụ này còn trở nên tối cần

thiết hơn cho sinh viên khoa học tự nhiên Bắt sinh viên tính các bước trong

phương pháp Runge-Kutta không máy tính là các em chịu thua ngay mặc

dù tất cả đều hiểu bài Và lên cao hơn nữa, các nhà nghiên cứu còn phải

hoàn toàn dựa vào những máy tính siêu mạnh với những phần mềm thích

ứng để hỗ trợ họ trong các bài toán phức tạp

Tuy nhiên, cho dù có mạnh đến đâu đi chăng nữa, tất cả các máy tính

đều tính toán trên các con số Chúng có thể tính một triệu số lẻ của Pi trong

nháy mắt những không tài nào tìm ra các ký hiệu quen thuộc như ln(Sin

(x2+1))….Điều này gây không ít khó khăn cho các nhà khoa học nên họ

vẫn ao ước có một công cụ thích ứng để làm việc, một phần mềm không

chỉ thao tác các con số, mà phải làm được điều này trên các ký hiệu quen

thuộc Đó là một phần mềm tính toán hình thức Maple được viết ra từ đó

Trong khuôn khổ bài báo cáo bài tập lớn môn học này, chúng em xin

trình bày một vài kết quả đạt được trong việc sử dụng Maple, cụ thể là

“Tìm nghiệm gần đúng của phương trình vi phân bằng phương pháp

Runghe – Kutta”

Trang 5

Néi dung

I Giới thiệu sơ lược về Maple

1 Maple là gì?

Maple là một gói phần mềm toán học thương mại phục vụ cho nhiều

mục đích Nó phát triển lần đầu tiên vào năm 1980 bởi Nhóm Tính toán

Hình thức tại Đại học Waterloo ở Waterloo, Ontario, Canada

Tên "Maple" không phải là tên viết tắt hoặc từ cấu tạo bằng chữ đầu,

mà chỉ đơn giản là để chỉ hình tượng Lá phong (tiếng Anh: maple) trên

Quốc kỳ Canada

Maple là một hệ thống tính toán trên các biểu thức đại số và minh họa

toán học mạnh mẽ Từ khi ra đời đến nay Maple đã phát triển qua rất nhiều

phiên bản, Maple có cách cài đặt đơn giản, chạy được trên nhiều hệ điều

hành, có cấu trúc linh hoạt để sử dụng một cách tối ưu cấu hình máy và có

trình trợ giúp rất dễ sử dụng

Trải qua nhiều phiên bản, Maple cung cấp ngày càng nhiều các công

cụ trực quan, các gói lệnh giúp tính toán toán học phổ thông và đại học Ưu

điểm đó làm cho nhiều người lựa chọn và sử dụng Maple cùng với các

phần mềm toán học khác áp dụng trong dạy toán và các công việc tính toán

đòi hỏi thực tiễn và sự phát triển của giáo dục

2 Chức năng

• Người dùng có thể nhập biểu thức toán học theo các ký hiệu toán học

truyền thống và thực hiệc được hầu hết các phép toán cơ bản trong chương

trình toán đại học và sau đại học

• Cung cấp các công cụ minh họa hình học thuận tiện gồm: Vẽ đồ thị

tĩnh và động của các đường và mặt được cho bởi các hàm tùy ý trong nhiều

hệ tọa độ khác nhau

Trang 6

HTML,

• Có thể dễ dàng tạo ra những giao diện người dùng tùy chọn Maple

cũng có một ngôn ngữ lập trình cấp cao đầy đủ Cũng có giao diện cho

những ngôn ngữ khác (C, Fortran, Java, MatLab, và Visual Basic) Cũng có

một giao diện dành cho Excel

• Là một công cụ biên soạn giáo án và bài giảng điện tử, thích hợp với

các lớp học tương tác trực tiếp; là một trợ giáo hữu ích cho học sinh và sinh

viên trong việc tự học

3 Kiến trúc

Phần lớn chức năng toán học của Maple được viết bằng ngôn ngữ

Maple, và được thông dịch bởi nhân Maple Nhân Maple được viết bằng C

Maple chạy trên tất cả các hệ điều hành chính

Ngôn ngữ lập trình Maple là một ngôn ngữ kiểu động Cũng giống như

các hệ thống đại số máy tính, các biểu thức hình thức được lưu trữ trong bộ

nhớ theo đồ thị không chu trình có hướng (DAG) Ngôn ngữ cho phép các

biến có phạm vi nhất định (lexical scoping) Ngôn ngữ có hình thức lập

trình hàm, nhưng cũng có hỗ trợ đầy đủ cho lập trình truyền thống, theo

kiểu mệnh lệnh

Một điều lạ đối với chương trình thương mại, đa số mã nguồn đều có

thể xem tự do

4 Cấu trúc tập hợp và danh sách trong Maple

Tập hợp của Maple được viết như một dẫy bao quanh bởi dấu { }, đây

là ký hiệu toán học cho tập hợp hữu hạn Cũng như các đối tượng khác của

Maple tập hợp được gán giá trị như một biến, có thể làm đối số, kết quả của

phép tính hoặc một hàm.Maple cung cấp một số toán tử như lấy hợp, lấy

giao và hiệu trên tập hợp

Trang 7

Việc sắp xếp thứ tự trong tập hợp không có qui tắc nào đưa ra, chúng ta

cố gắng sắp xếp dữ liệu khi đưa vào thì tập hợp sẽ dữ nguyên thứ tự đó

Danh sách của Maple là một dẫy nhưng trong nó không có phần tử lặp

lại (mỗi phần tử là duy nhất) Những phần tử trùng nhau trong danh sách sẽ

bị loại bỏ chỉ để lại một Danh sách không có toán tử hợp, giao và trừ Danh

sách của Maple tạo ra bởi dẫy nằm trong dấu [ và ] Phân biệt dẫy và danh

sách: khi viết [a,b],[b,c] thì Maple hiểu là hai danh sách , còn khi viết

(a,b),(b,c) thì chỉ là một dẫy mà thôi a,b,b,c

5 Ví dụ về ứng dụng của Maple trong giảng dạy

Sau đây là ví dụ thể hiện tài năng ở khả năng minh họa xuất sắc đồ thị

hai chiều lẫn mặt cong trong không gian ba chiều, đồ thị toạ độ cực, tham

số, hàm ẩn của Maple

¾ Vẽ x2 + y2 với x và y đi từ -1 đến 1

plot3d(x^2+y^2,x=-1 1,y=-1 1);

Trang 8

Đó chính là điểm nổi bật hơn, khả năng cho hình chạy sống động làm

cho việc học tập và giảng dạy trở nên rất thú vị

II Mô phỏng thuật toán tìm nghiệm gần đúng của phương trình vi

phân bằng phương pháp Runghe – Kutta

1 Trình bày bài toán

Trong lĩnh vực toán ứng dụng, chúng ta thường gặp rất nhiều bài toán

liên hệ với phương trình vi phân thường Việc nghiên cứu nghiệm phương

trình vi phân thường đóng một vai trò quan trọng trong lý thuyết toán học

Trong một số trường hợp đơn giản, nghiệm của nó được tìm bằng phương

pháp cầu phương, còn nói chung không tìm được nghiệm chính xác

(Giáo trình giải tích số - Lê Trọng Vinh)

Một trong những phương pháp để tìm nghiệm gần đúng của phương

trình vi phân thường là phương pháp RungheKutta Đây là phương pháp có

độ chính xác cao, thường được sử dụng trong kĩ thuật

Trong bài tập này chúng ta chỉ nói về phương pháp RungheKutta bậc 4

vì đây là phương pháp có độ sai số nhỏ nhất trong cả 4 phương pháp

(RungheKutta bậc 1, RungheKutta bậc 2, RungheKutta bậc 3, RungheKutta

bậc 4)

5

0( )h

Thuật toán Runghe – Kutta bậc 4 dùng để tìm nghiệm gần đúng của

phương trình vi phân cấp 1 như sau:

Cho hàm số y’=f(x,y) với y’ là đạo hàm của y theo x

• Các yếu tố đầu vào:

X(0): Giá trị nhỏ nhất của x

X(n): Giá trị lớn nhất của x

N : Số điểm chia Y(0) : Giá trị tại điểm x=0 của hàm số

Trang 9

Để áp dụng công thức Runghe – Kutta, ta xuất phát từ điểm ban đầu

y(x0)= y0 Sử dụng một trong các công thức trên, tính y1 tại điểm

Trang 10

2 2

1 1 ( ,

2 2 ( , )

Trang 11

III Chương trình minh họa không sử dụng hàm RungheKutta có sẵn

trong Maple

1.Thủ tục giatrihamso để tính giá trị của hàm số đã cho

¾ Nội dung thủ tục như sau:

Thủ tục trên sẽ tính giá trị hàm số đã nhập tại x và y đã biết (Lấy ví dụ

phương trình đơn giản là y’=x+y) Khi hàm phương trình thay đổi chỉ việc

sửa lại hàm f trong thủ tục là được

2 Cấu trúc for – do

¾ Cấu trúc vòng lặp đơn giản là:

for loop - index from start -value to last - value do block statements

od;

¾ Nguyên tắc sử dụng vòng lặp này như sau:

1) Loop - index là tên biên như là i,j

2) Start - value và last - value có thể là các số, tên biến chứa số hoặc

một biểu thức có kết quả là số Các số này là những số nguyên,

những số thập phân và phân số cũng chấp nhận

3) Vòng lặp thực hiện theo cách sau đây:

(a) Gán start - value vào loop – index

(b) So sánh loop - index với last - value, nếu loop - index >

last - value thì nhảy ra ngoài vòng lặp sau lệnh od; nguợc lại thì đi

vào thân vòng lặp để thực hiện

Trang 12

(c) Sau khi đa xác định đuợc loop - index < last - value thì block statements thực hiện

(d) Thêm 1 vào loop - index và quay lại (b)

4) Nếu start - value=1, thì from start - value có thể bỏ qua

5) Chỉ số loop - index mặc định buớc là 1 Để có các buớc khác đi ta

thêm lệnh by

6) Không nên tự thay đổi giá trị của loop - index

7) Đừng đặt dấu chấm phẩy sau lệnh do mà hãy đặt dấu chấm phẩy

hoặc hai chấm sau lệnh od

3.Thủ tục RungheKutta dùng để mô tả thuật toán và cho ra kết quả

Trang 13

x Y

Trang 14

Trang 15

IV Chương trình minh họa sử dụng hàm RungheKutta có sẵn trong

Maple

Phương pháp Runge-Kutta là một phương pháp khá nổi tiếng trong

việc tìm nghiệm số của phương trình và hệ phương trình vi phân Trong

chương trình sử dụng cấu trúc lệnh như sau:

1 Cấu trúc lệnh dsolve

dsolve(odesys, numeric, method=rkf45, vars, options)

Trong đó:

• Odesys: Phương trình và hệ phương trình vi phân cùng với các điều

kiện ban đầu

• Numeric: Tham số này cho phép tìm nghiệm dưới dạng số

• Method=rkf45: Dùng phương pháp Runge-Kutta bậc 4

Trang 16

™ Ví dụ 3: Bài 12 trang 231 giáo trình giải tích số - Lê Trọng Vinh

Kết quả trên hoàn toàn trùng khớp với kết quả trong Bài 12 trang 231

giáo trình giải tích số - Lê Trọng Vinh

V So sánh chương trình không sử dụng hàm RungheKutta trong

maple và chương trình sử dụng hàm RungheKutta có sẵn trong Maple

1 Xét các ví dụ

Ta xét ví dụ sau:

• Ví dụ 4 (Bài 12 trang 231 giáo trình giả tích số - Lê Trọng Vinh)

Tìm nghiệm gần đúng của phương trình sau bằng phương pháp Runghe

Kutta bậc 4

(0) 10.1

x

y y h

Trang 17

™ Giải bằng chương trình không sử dụng các hàm trong Maple

được kết quả như sau:

Trang 18

™ Giải bằng chương trình có sử dụng các hàm có sẵn trong Maple

Trang 20

Trang 21

™ Giải bằng chương trình có sử dụng các hàm có sẵn trong Maple

> dsol:=dsolve({diff(y(x),x)=x+y(x),y(0)=1},numeric, method=rkf45);

> dsol(0.5);

2 So sánh

• Cả 2 phương pháp giải trên đều ra kết quả như nhau và chính xác

giống đáp số trong Bài 12 trang 231 giáo trình giả tích số - Lê Trọng Vinh

• Tuy nhiên, ta có thể thấy phương pháp sử dụng các hàm có sẵn trong

Maple nhanh hơn, thuận tiện hơn, chương trình đơn giản, ngắn gọn hơn rất

nhiều so với phương pháp không sử dụng các hàm có sẵn trong Maple

• Mặt khác, nghiệm của phương pháp sử dụng hàm RungheKutta

chính xác đến từng số thập phân hơn rất nhiều do có sử dụng hàm evalf(x,n)

cho xấp xỉ đại lượng x cần tính với n chữ số thập phân

VI Giới hạn của thuật toán

Qua mỗi bước tính, sai số sẽ tích lũy dần dần, nếu như tính nghiệm gần

đúng tại điểm quá xa so với mốc xuất phát x0có thể dẫn đến hiện tượng “

sai một li đi một dặm ” là do tích lũy sai số Quá trình tính như vậy là

không ổn định Đồng thời tính y i+1 chỉ cần biết Phương pháp tính như y i

Trang 22

vậy gọi là phương pháp một bước Vì vậy thường phương pháp trên chỉ sử

dụng để tính vài giá trị ở các mốc gần với x0

Ngoài ra công thức dạng RungheKutta bậc 4, như đã tính trong các ví dụ

ở trên, mỗi bước cần tính đến 4 giá trị của hàm f(x,y) tại các điểm khác

nhau, khối lượng tính vẫn còn lớn

Để giảm được khối lượng tính tại các mốc kế tiếp người ta sử dụng

phương pháp khác, khối lượng tính ít hơn mà vẫn bảo đảm sai số đạt cấp

Trang 23

Như vậy, chúng ta có thể thấy Maple là một chương trình tính toán

mạnh mẽ, được nhiều người quan tâm, những thành tựu của Maple đang

được ứng dụng nhiều trong thực tế Nó có khả năng làm việc với cả những

biểu thức toán học và các phép tính hình thức Từ rút gọn, khai triển biểu

thức, tính giới hạn, đạo hàm, nguyên hàm ở bậc phổ thông Đến khai triển

Taylor, tìm nghiệm phương trình vi phân, tính định thức, giải hệ phương

trình tuyến tính có tham số… Maple xử lý trong tích tắc!

Môn học Giải tích số cung đa cung cấp cho sinh viên chúng em những

kiến thức căn bản rất cần thiết về một số phương pháp giải gần đúng dựa

trên dữ liệu số Nhờ có Maple, em đã có cơ hội được nghiên cứu và thực

hành cách cài đặt thuật toán trên máy tính

Ngoài ra, việc tìm hiểu về các ứng dụng của các phương pháp tính

trong điều kiện thực tế, tạo cơ sở để học tốt và nghiên cứu các ngành khoa

học kỹ thuật nói chung và Công nghệ thông tin nói riêng Góp phần xây

dựng thế giới quan khoa học và tác phong khoa học cần thiết cho người kỹ

sư khoa học trong tương lai

Do những hạn chế về khả năng cũng như trình độ nên đề tài của em

không thể tránh khỏi những thiếu sót Tuy nhiên em hy vọng rằng chương

trình của em đã đáp ứng được phần nào cho việc hỗ trợ những công việc

tính toán bao gồm các tính toán thuần túy bằng ký hiệu toán học hay các

tính toán số, giúp ích cho việc giảng dạy toán, học toán trên giảng đuờng

cũng như ứng dụng thực tiễn toán học trong các ngành kỹ thuật, kinh tế,…

II Kết luận

Trang 24

Trong báo cáo trên em đã trình bày cơ bản về ứng dụng của maple

trong toán học và xây dựng chương trình có đề tài: “ Tìm nghiệm gần đúng

của phương trình vi phân bằng phương pháp Runghe – Kutta”

Em đã hoàn thành một chương trình lập trình tính toán căn bản cũng

như tìm hiểu nghiên cứu những đặc tính cơ bản, các chức năng tính toán

chính của Maple

Trong quá trình thực hiện đề tài do những hạn chế về kiến thức cũng

như kinh nghiệm có hạn nên chương trình của em không thể tránh khỏi

những thiếu sót và hạn chế Em rất mong nhận được những ý kiến đóng

góp quý giá của thầy để nâng cao kiến thức, học hỏi kinh nghiệm và trau

dồi các kỹ năng của mình

Cuối cùng chúng em xin chân thành cảm ơn thầy PTS Nguyễn Hữu

Điển đã giúp chúng em hoàn thành bài báo cáo này !

Em xin chân thành cảm ơn!

Hà Nội, tháng 11 năm 2009

Sinh viên: Cung Vĩnh Nam

Nguyễn Thị Bích Vân Lớp Toán tin 2 - K51 - ĐHBK Hà Nội

Trang 25

Tµi liÖu tham kh¶o

[1] Giải tích số – Lê Trọng Vinh, Nhà xuất bản Khoa học kỹ thuật

[2] Hướng dẫn và sử dụng Maple V - Nguyễn Hữu Điển, Trung tâm

Ngày đăng: 22/05/2016, 09:03

TỪ KHÓA LIÊN QUAN

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