1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

50 454 1

Đ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 50
Dung lượng 0,99 MB

Nội dung

LỜI CẢM ƠN Để hoàn thành khóa luận với đề tài “Sử dụng ngôn ngữ lập trình Wolfram Mathematica xấp xỉ hàm số bằng đa thức nội suy”, bên cạnh sự nỗ lực của bản thân đã vận dụng những kiến

Trang 1

LỜI CẢM ƠN

Để hoàn thành khóa luận với đề tài “Sử dụng ngôn ngữ lập trình Wolfram Mathematica xấp xỉ hàm số bằng đa thức nội suy”, bên cạnh sự nỗ lực của bản thân đã vận dụng những kiến thức tiếp thu được ở trường, tìm tòi học hỏi, em luôn nhận được sự giúp đỡ, hướng dẫn tận tình của cô giáo Phạm Hồng Minh

Em xin tỏ lòng biết ơn sâu sắc nhất đến cô – người đã trực tiếp hướng dẫn, chỉ bảo để em hoàn thành khóa luận của mình

Em xin chân thành cảm ơn Ban giám hiệu trường Đại học Quảng Bình, toàn thể các thầy cô, đặc biệt là thầy cô giáo khoa Khoa học tự nhiên đã tận tình giảng dạy và giúp đỡ em trong suốt thời gian qua Cũng như những sự động viên, giúp đỡ từ gia đình và bạn bè đã tạo điều kiện thuận lợi cho em trong suốt quá trình thực hiện khóa luận

Mặc dù đã có nhiều cố gắng để thực hiện khóa luận một cách hoàn chỉnh nhất, song với thời gian và khả năng còn hạn chế, khóa luận không thể tránh khỏi những thiếu sót Em rất mong nhận được sự góp ý chân tình từ các thầy, cô

Trang 2

MỤC LỤC

LỜI CẢM ƠN i

MỤC LỤC ii

PHẦN MỞ ĐẦU 1

1 Lý do chọn đề tài 1

2 Mục đính nghiên cứu 2

3 Nhiệm vụ nghiên cứu 2

4 Đối tượng và phạm vi nghiên cứu 2

5 Phương pháp nghiên cứu 2

PHẦN NỘI DUNG 3

CHƯƠNG I 3

KIẾN THỨC CHUẨN BỊ 3

I ĐẶT VẤN ĐỀ 3

II ĐA THỨC NỘI SUY LAGRANGE 3

1 Đa thức nội suy Lagrange với mốc bất kỳ 3

2 Đa thức nội suy Lagrange với mốc cách đều 7

3 Sai số của đa thức nội suy 9

III ĐA THỨC NỘI SUY NEWTON 11

1 Tỷ sai phân và một vài tính chất 11

2 Đa thức nội suy Newton với mốc bất kỳ 13

3 Sai phân và một vài tính chất 15

4 Đa thức nội suy Newton với mốc cách đều 17

CHƯƠNG II 25

ỨNG DỤNG CỦA MATHEMATICA 25

ĐỂ GIẢI BÀI TOÁN NỘI SUY 25

I Tổng quan về ngôn ngữ lập trình Mathematica 25

1 Giới thiệu sơ bộ về ngôn ngữ lập trình mathematica: 25

1.1.Giới thiệu 25

1.2.Giao diện tương tác của Mathematica 26

Trang 3

2 Các quy tắc cơ bản về ngữ pháp của Mathematica: 26

3 Tính toán cơ bản trong Mathematica 27

3.1 Các phép tính đại số 27

4 Danh sách trong Mathematica 30

4.1 Xây dựng danh sách 30

4.2 Đếm các phần tử trong danh sách 31

4.3 Chuyển đổi dạng một danh sách 31

4.4 Tính toán với danh sách: 31

5 Đồ họa với Mathematica 32

5.1.Vẽ đồ thị trong mặt phẳng 32

II Lập trình Mathematica trong giải bài toán nội suy 35

1 Phép nội suy Lagrange trong Mathematica 35

2 Phép nội suy Newton trong Mathematica 36

KẾT LUẬN 44

TÀI LIỆU THAM KHẢO 46

Trang 4

PHẦN MỞ ĐẦU

1 Lý do chọn đề tài

Lý thuyết nội suy – một lý thuyết toán học có lịch sử phát triển lâu dài gắn liền với tên tuổi của nhiều nhà toán học nổi tiếng trên thế giới như Lagrange, Newton, Chebyshev,…

Lý thuyết nội suy còn là cơ sở cho nhiều lý thuyết toán học khác nhau, chẳng hạn trong việc giải gần đúng phương trình vi phân thường, phương trình đạo hàm riêng nhờ sai phân…

Bài toán cơ bản của lý thuyết nội suy là dựng một hàm đơn giản xấp xỉ một hàm cho trước được cho bằng bảng hoặc là có công thức giải tích phức tạp Từ

đó ta có thể tính gần đúng đạo hàm, gần đúng tích phân hay giải gần đúng một

số bài toán về phương trình đã nêu

Về cơ bản bài toán nội suy đã được sử dụng sớm bởi Newton vào năm

1686, được Lagrange sử dụng, đề xuất lại năm 1795 và ước lượng sai số cổ điển được Cauchy thiết lập năm 1840

Các vấn đề về lý thuyết nội suy rất đa dạng, nhưng trong đề tài này sẽ trình bày chủ yếu về cách sử dụng đa thức nội suy Lagrange và đa thức nội suy Newton để tính giá trị của hàm số f(x) cho dưới dạng bảng tại một số giá trị trong bảng

Song song với đó là tìm hiểu về ngôn ngữ lập trình Mathematica nổi lên với ưu điểm vượt trội về giao diện thân thiện, về khả năng đồ thị siêu việt và khả năng xử lý số liệu nhanh đã trở thành một công cụ đắc lực cho các nhà khoa học Với phiên bản mới nhất là 7.0 Ngoài ra, Mathematica còn được ứng dụng để giải các bài toán nội suy bằng cách sử dụng các thao tác đơn giản mà không cần lập trình nặng nề như trước Nên việc tìm hiểu về Mathematica là rất cần thiết Chính vì các lý do đó em đã chọn nghiên cứu đề tài “Sử dụng ngôn ngữ lập trình Wolfram Mathematica xấp xỉ hàm số bằng đa thức nội suy” nhằm cung cấp một tài liệu cơ bản về các vấn đề liên quan đến nội suy và ứng dụng của phần mềm Mathematica trong giải toán nội suy

Trang 5

3 Nhiệm vụ nghiên cứu

- Tập trung tư liệu, nghiên cứu lý thuyết

- Nghiên cứu về cấu trúc của các đa thức nội suy

- Nghiên cứu về một số bài toán nội suy, một số công thức cơ bản của nội suy

- Nghiên cứu một số ứng dụng của lý thuyết nội suy

4 Đối tượng và phạm vi nghiên cứu

- Đa thức nội suy Lagrange, đa thức nội suy Newton và các vấn đề liên quan

- Ngôn ngữ lập trình Mathematica và ứng dụng của nó trong vẽ đồ thị và giải bài toán nội suy

5 Phương pháp nghiên cứu

- Phương pháp nghiên cứu lý thuyết: Đọc và tìm hiểu các đa thức nội suy, phân tích, làm rõ các bước hình thành nên đa thức

- Bằng những ví dụ cụ thể để áp dụng đa thức nội suy

- Thực hiện các lập trình cơ bản để xây dựng đa thức nội suy và vẽ đồ thị

Trang 6

PHẦN NỘI DUNG CHƯƠNG I KIẾN THỨC CHUẨN BỊ

I ĐẶT VẤN ĐỀ

Trong thực tế tính toán, ta thường phải tính giá trị của hàm số yf x( )với

x bất kì trên đoạn [ , ]a b , trong khi chỉ biết các giá trị:

( )

yf x ,x i [ , ],a b i  0,1, , n

Ở một số trường hợp khác, biểu thức giải tích của ( )f x đã biết, nhưng quá

phức tạp Với những trường hợp như vậy, người ta thường xây dựng một hàm

số ( )P x đơn giản và thỏa mãn điều kiện ( )P x if x( )i , i 0,1, ,n

Mục đích của phép nội suy khá nhiều, nhưng chủ yếu là tìm thuật toán đơn giản tính giá trị f x( )cho những xkhông nằm trong bảng , ,x y ( i i i 0,1, , ).n

Một bộ số liệux yi, i (i 0,1, , )n 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ịx f xi, ( )i Ngoài ra sử dụng kết quả của phép

nội suy, có thể tìm đạo hàm f '( )x hoặc tích phân của f x( )trên đoạn [a,b]

II ĐA THỨC NỘI SUY LAGRANGE

1 Đa thức nội suy Lagrange với mốc bất kỳ

Trang 7

i j

j i i

i j

x x x

Trang 10

( )( )

( ) ' ( )

n j

x x

Trang 11

( 1) ( )( )

n

h t t t n x

j i

n

n j

j i

n j n

j i

Trong công thức (2), các hệ số ( 1) n jC n j là không phụ thuộc vào hàm

số ( )f x , mốc nội suy, bước h Nên có thể tính sẵn và lập bảng để sử dụng trong

quá trình tính toán

Nhận xét:

Trang 12

 Đa thức nội suy Lagrange có ưu điểm là đơn giản, dễ tính và nhược điểm là nếu thêm mốc nội suy thì phải tính lại từ đầu

 Nếu f x( )là đa thức, deg ( )f xn thìL x n( ) f x( )

Ví dụ 3: Cho hàm số yf x( )cho bởi bảng sau:

Trang 13

Định lý Rolle phát biểu: Cho f x( ) là hàm số thực liên tục trên [a,b], và khả

vi trên (a, b) và ( ) f af b( ) Khi đó tồn tại điểm  ( , )a b sao cho f '( ) 0

Khi thay ( )f x bởiL x n( )thì yêu cầu đánh giá L x n( ) f x( ) là cần thiết tất yếu (với xx i, i 0,1, ,n)

Giả sử f x( )có đạo hàm liên tục đến cấp(n1)trên đoạn [a, b]

XétF x( )  f x( )L x n( )Cn1( )x , trong đó C là hằng số, được chọn từ điều kiện ( )F x 0, với xlà điểm cần đánh giá sai số, từ đó:

1

( ) ( )

( )

n n

f x L x C

x

Dễ thấyF x( )có ít nhất (n2)nghiệm x x0, 1, , xn, vàx ở trên đoạn [ , ]a b ,

theo định lý Rolle thì F x'( )có ít nhất (n1)nghiệm phân biệt trên ( , )a b , và ( 1)

Trang 14

Ví dụ 4: Tìm đa thức nội suy Lagrange của hàm số ysinx với

 

III ĐA THỨC NỘI SUY NEWTON

1 Tỷ sai phân và một vài tính chất

Trang 15

a) Khái niệm tỷ sai phân

Giả sử hàm số thựcyf x( )xác định trên [a, b]

' ( )

k

i k

ii) Tỷ sai phân là hàm đối xứng đối với các x i

iii) Tỷ sai phân cấp(m 1)của đa thức bậc mlà đồng nhất 0

Trang 16

P x x x( ; 0; 1; ;x k) là đa thức có bậc [m  (k 1)]

Vậy P x x x( ; 0; 1; ;x m1) là đa thức bậc 0, từ đó:

P x x x( ; 0; ; ;1 x m1;x m)0

2 Đa thức nội suy Newton với mốc bất kỳ

Với nội suy Newton, khi sử dụng các mốc không cách đều thì công thức nội suy phức tạp hơn

Trong thực tế, các điểmx0,x1, ,x ncó thể không cách đều Lúc này khoảng cáchx i1  x ikhông phải là hằng số

Giả sử hàm số thực yf x( ) xác định trên đoạn [ , ]a b và x i [ , ]a b , 0,1, ,

inx ix j , i j Gọi L x n( ) là đa thức nội suy Lagrange của

hàm sốyf x( ), kí hiệuL x x n( ; o), L n( ;x x0;x1)v.v là các tỉ sai phân của

Trang 17

+) Đa thức nội suy Newton cũng chính là đa thức nội suy Lagrange ở dạng khác

3 2

2 3

5 6

3 10

Trang 18

Vậy đa thức nội suy cần tìm là: 3 3 2

32

3 2

3 Sai phân và một vài tính chất

a) Khái niệm về sai phân

Trang 19

Giả sử yf x( )là hàm số thực, liên tục trên đoạn [a,b], hconst 0

Khi đó hiệu số:f x( ) f x( h) f x( )là sai phân cấp 1 của hàm

Trang 20

4 Đa thức nội suy Newton với mốc cách đều

a) Đa thức nội suy ở đầu bảng:

Trang 21

Nếu ta đổi biến xx0  th,x jx0  jh, j 0,1, , (n1) Thì ta có:

Công thức (4) cho ta đa thức nội suy Newton ở đầu bảng

Ví dụ 7: Cho hàm số yf x( )cho bởi bảng sau:

Trang 22

Giả sử rằng x0  x1   x nx i1 x ih,  i 0,1, (n1) Ta tìm được đa thức nội suy Lagrange ở dạng:

n h

Từ đó có:

Trang 23

1 2

Ví dụ 8: Cho hàm số yf x( )cho bởi bảng sau:

Trang 24

Vậy đa thức nội suy cần tìm là:

c) Đa thức nội suy Newton ở giữa bảng:

Nhận xét rằng, đa thức nội suy Newton ở đầu bảng hay cuối bảng mang đặc trưng là một phía Trong nhiều trường hợp, việc áp dụng công thức nội suy chứa những giá trị trước và sau giá trị ban đầu sẽ có lợi, trong những công thức nội suy như vậy người ta thường dùng công thức sai phân trung tâm Trong mục này

sẽ trình bày một công thức dạng “một tiến, một lùi”

Giả sử x ix0 ih, i0,1, ,n Ta sẽ tìm đa thức nội suy ở dạng:

Trang 25

y a

y a

Trang 26

Đa thức (6) được gọi là đa thức nội suy Newton dạng “ một tiến, một lùi”

Ví dụ 9: Cho hàm số yf x( )cho bởi bảng sau:

Trang 27

+) Đa thức nội suy Newton dạng này hay dạng khác cũng chỉ là cách viết khác nhau của đa thức nội suy Lagrange

+) Nếu cần tính giá trị ( )f x tại x gần x0thì nên dùng đa thức nội suy Newton ở đầu bảng , ý nghĩa tương tự cho những đa thức nội suy Newton ở cuối bảng và giữa bảng

+) Như vậy, qua những ví dụ trên ta khẳng định được một điều: Các đa thức nội suy mặc dù khác nhau về cấu trúc nhưng giá trị của hàm thì như nhau

Trang 28

CHƯƠNG II ỨNG DỤNG CỦA MATHEMATICA

ĐỂ GIẢI BÀI TOÁN NỘI SUY

I Tổng quan về ngôn ngữ lập trình Mathematica

1 Giới thiệu sơ bộ về ngôn ngữ lập trình mathematica

1.1 Giới thiệu

Mathematica lần đầu tiên được hãng Wolfram Research phát hành vào năm

1988, là một hệ thống nhằm thực hiện các tính toán toán học trên máy tính điện

tử Nó là một tổ hợp các tính toán bằng kí hiệu, tính toán bằng số và vẽ đồ thị

Công trình này được xem là thành tựu chính trong lĩnh vực khoa học tính toán

Mathematica là ngôn ngữ tích hợp đầy đủ nhất các tính toán kỹ thuật, là dạng ngôn ngữ dựa trên nguyên lý xử lý các dữ liệu tượng trưng

Thế hệ ngôn ngữ giải tích đầu tiên đó là macsyma, Reduce… ra đời từ những năm 60 của thế kỷ XX Các ngôn ngữ này chủ yếu dùng cho các bài toán vật lí năng lượng cao Nhược điểm của chúng là chủ yếu được định hướng chạy trên các máy tính lớn

Thế hệ tiếp theo là các ngôn ngữ Maple, Mathlab, Mathematica … Các ngôn ngữ này có ưu điểm là chạy nhanh hơn và chấp nhận bộ nhớ nhỏ hơn, chạy hoàn hảo trên máy tính cá nhân Trong các ngôn ngữ tính toán loại này, nổi bật lên ngôn ngữ Mathematica với ưu điểm vượt trội về giao diện thân thiện, về khả năng đồ thị siêu việt và xử lý dữ liệu không thua kém các ngôn ngữ tính toán khác

Nhờ khả năng mô hình hóa và mô phỏng các hệ lớn, kể cả các hệ động mà Mathematica không chỉ được ứng dụng trong lĩnh vực vật lý, kỹ thuật và toán học mà còn được mở rộng ứng dụng trong các lĩnh vực như sinh học, các khoa học xã hội, kể cả trong lĩnh vực tài chính phức tạp

Phiên bản đầu tiên của Mathematica được phát hành vào năm 1988 Phiên bản 7.0 là phiên bản mới nhất hiện nay

Trang 29

1.2 Giao diện tương tác của Mathematica

Mathematica đưa ra một giao diện rất thân thiện với người sử dụng được đặt tên là bản ghi (notebook- thường được gọi tắt là nb) Các bản ghi là dạng cửa

sổ biểu diễn một lượt sử dụng Mathematica bao gồm đầy đủ các ghi chép cả về chương trình nguồn, cả về kết quả thực hiện trên cùng một bản ghi và được ghi lại dưới dạng file riêng của Mathematica có đuôi là *.nb

Các bản ghi được tổ chức thành các ô (cells) một cách có trật tự và thứ bậc

Ta có thể nhóm một nhóm ô lại sao cho chỉ thấy ô đầu của nhóm ô đó (với số nhóm lồng tùy ý)

Mathematica còn đưa ra một giao diện phụ là các bảng lệnh (Palettes) và các nút lệnh (Button) Người sử dụng chỉ cần nhấp chuột rất đơn giản và có thể tùy biến theo ý mình

Dưới đây là giao diện tương tác của Mathematica:

2 Các quy tắc cơ bản về ngữ pháp của Mathematica

Các biến đi theo hàm đều được đặt trong ngoặc vuông, và được dùng để nhóm các toán tử, các vectơ, ma trận

Cú pháp hình thức như sau: Hàm[expr]

Ví dụ:

Sin[x]

Danh mục được liệt kê trong dấu móc nhọn {…}

Ví dụ:

Trang 30

Ví dụ:

Plot3D, Show, ListPlot…

Phép nhân được hiển thị bởi một khoảng trắng hoặc bởi kí tự “ * “

Khi kết thúc một lệnh của Mathematica bằng dấu chấm phẩy “ ; “ thì kết quả sẽ không được hiển thị lên màn hình

Sau khi viết lệnh nhấn Shift_Enter để thực hiện lệnh

3 Tính toán cơ bản trong Mathematica

3.1 Các phép tính đại số

a) Các kiểu số trong Mathematica

Có 4 kiểu số thông dụng được xây dựng trong Mathematica

Random[ ]: Cho một số thực biến thiên trong đoạn [0,1]

Random[Integer]: Cho giá trị ngẫu nhiên là 0 hoặc 1

Trang 31

Random[Kiểu số, Khoảng biến thiên]: Cho giá trị ngẫu nhiên có kiểu là

“kiểu số” và giá trị nằm trong “ khoảng biến thiên ”

Khi làm việc với số nguyên, Mathematica luôn hiển thị kết quả chính xác

và đầy đủ trên màn hình, ngay cả khi tính toán với những số lớn

Đối với Mathematica, khi nói về số hữu tỷ là nói về phân số Do đó, kết quả sau các phép tính trong Mathematica vẫn là số hữu tỷ

Trang 32

Một số hàm thường dùng để làm việc với số phức

Re: Lấy phần thực của số phức

Im: Lấy phần ảo của số phức

Conjugate: Tìm liên hợp của số phức

Abs: Cho modul của số phức

Round: Làm tròn số cả phần thực và phần ảo của số phức

Trang 33

N[Sqrt[17]]

Out[1] = 4.1231

Nếu gõ lệnh 5^(1/9) thì cho kết quả là 1/9

5 Nếu dùng N[5^(1/9)] thì cho kết quả xấp xỉ là 1.19581

4 Danh sách trong Mathematica

4.1 Xây dựng danh sách

* Hàm Table

Table[Biểu thức, {n}]: Cho danh sách bằng cách copy lại biểu thức n lần Table[Biểu thức, {i, imax}]: Cho danh sách biểu thức chạy từ 1 đến imax Table[Biểu thức, {i, imin, imax}]: Cho danh sách biểu thức chạy từ imin đến imax

Table[Biểu thức, {i, imin, imax, d i}]: Cho danh sách biểu thức chạy từ imin đến imax và khoảng cách giữa các phần tử trong danh sách là d i.

Out[1] = {i!, i!, i!, i!, i!}

In[1]:= Table[2*i!, {i, 3, 5}]

Ngày đăng: 03/11/2017, 15:52

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Minh Chương, Giải tích số, Nhà xuất bản Giáo Dục, 2007 Sách, tạp chí
Tiêu đề: Giải tích số
Nhà XB: Nhà xuất bản Giáo Dục
[2] Dương Thủy Vỹ, Phương pháp tính, Nhà XB Khoa học &kỹ thuật, 2001 Sách, tạp chí
Tiêu đề: Phương pháp tính
[3] Phan Văn Hạp, Giáo trình Cơ sở phương pháp tính tập I, II, Trường ĐH Tổng hợp Hà Nội, 1990 Sách, tạp chí
Tiêu đề: Giáo trình Cơ sở phương pháp tính
[4] Tạ Văn Đĩnh, Phương pháp tính, Nhà XB Giáo dục, 1994 Sách, tạp chí
Tiêu đề: Phương pháp tính
[5] Phan Văn Hạp, Bài tập phương pháp tính và lập chương trình cho máy tính điện tử, Nhà XB đại học và trung học chuyên nghiệp, 1978 Sách, tạp chí
Tiêu đề: Bài tập phương pháp tính và lập chương trình cho máy tính điện tử

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w