Đại số đa thức và các phương án cài đặt

48 314 0
Đại số đa thức và các phương án cài đặt

Đ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

Khóa luận Tốt nghiệp Đại số đa thức các phơng án cài đặt lời mở đầu Đại số đa thức là một lĩnh vực quan trọng của đại số. Nó là công cụ để nghiên cứu các phơng trình đại số trong toán học nhiều lý thuyết của Toán học hiện đại. Chúng ta đã tiếp xúc với các phép toán về đa thức ngay từ học trung học phổ thông. Với học sinh phổ thông việc thực hiện các phép toán đa thức là rất cần thiết mặc dầu mất khá nhiều thời gian. Ngày nay tin học đã thâm nhập vào tất cả mọi hoạt động của xã hội loài ngời máy tính điện tử trở thành công cụ đắc lực không chỉ giảm nhẹ lao động (kể cả lao động có trí tuệ) mà còn giúp thêm cho con ngời những năng lực mới mà trớc đây chúng ta khó hình dung đợc. Việc xây dựng một chơng trình có thể thực hiện đợc các phép tính đa thức nhằm hiểu sâu hơn các vấn đề về cài đặt dữ liệu các giải thuật thích hợp với các dữ liệu ấy. Nó sẽ là một công việc có ích cho bản thân đồng thời có thể giúp các học sinh trung học tự kiểm tra các kết quả tính toán khi làm toán với các đa thức. Với ý nghĩa đó đề tài đã tiến hành nghiên cứu các vấn đề về đại số đa thức các phơng án cài đặt đa thức. Nội dung của đề tài đợc trình bày trong năm chơng, ngoài phần mở đầu, kết luận tài liệu tham khảo. Kết quả chính thu đợc của đề tài: Chơng 1: Đa thức phép tính đa thức Trong chơng này trình bày đa thức nh là một tổng đại số của các đơn thức một biến các phép toán cơ bản trên tập hợp các đa thức một biến (cộng, trừ, nhân, chia, giá trị của đa thức tại một điểm khái niệm về ớc chung lớn nhất của hai đa thức). Trần Thị Lê Na Lớp 43B1 - khoa Công nghệ Thông tin - Đại học Vinh 1 Khóa luận Tốt nghiệp Đại số đa thức các phơng án cài đặt Chơng 2: Cài đặt đa thức bằng mảng Dựa vào định nghĩa cũng nh các phép toán về đa thức đa ra đ- ợc cách lu trữ đa thức trong mảng là mảng một chiều gồm -1 -> n phần tử (n là một số cố định cho trớc), trong đó phần tử đầu tiên lu giá trị bậc của đa thức. Từ đó cài đặt các phép toán: cộng, trừ, nhân, tính giá trị của đa thức tìm ớc chung lớn nhất của hai đa thức trên mảng. Tuy nhiên với cách lu trữ này cũng có một số thuận lợi khó khăn khi cài đặt chơng trình. Chơng 3: Cài đặt đa thức bẳng mảng con trỏ Đa thức đợc lu trữ bởi một bản ghi gồm hai trờng, một trờng để lu bậc của đa thức trờng còn lại là mảng con trỏ. Trong quá trình cài đặt các phép tóan, khi cần thiết để lu các hệ số của đa thức tơng ứng với lũy thừa ta mới cấp phát biến động tơng ứng với chỉ số của mảng con trỏ. Dựa trên lu trữ đa thức bằng mảng con trỏ để thực hiện các phép toán đối với đa thức, cài đặt thuật toán cũng giống nh đối với mảng. Chơng 4: Cài đặt đa thức bảng danh sách liên kết Các phơng pháp lu trữ đã trình bày ở trên dễ dàng cài đặt nhng rất tốn bộ nhớ. Để khắc phục bằng cách lu trữ đa thức dới dạng là một danh sách liên kết bao gồm các nút đợc liên kết với nhau. Mỗi nút là gồm ba trờng: hệ số, lũy thừa một con trỏ để lu địa chỉ của nút tiếp theo trong danh sách, ngoài ra còn có một nút để chứa bậc của đa thức, nút này là nút đầu trong danh sách. Lu trữ bằng danh sách liên kết phức tạp hơn đối với mảng mảng con trỏ, vì vậy việc thực hiện cài đặt các phép toán khó khăn hơn. Bằng cách lu trữ này cũng đã thực hiện thành công việc cài đặt các phép Trần Thị Lê Na Lớp 43B1 - khoa Công nghệ Thông tin - Đại học Vinh 2 Khóa luận Tốt nghiệp Đại số đa thức các phơng án cài đặt toán cộng, trừ, nhân, chia, tính giá trị tìm ớc chung lớn nhất của hai đa thức. Chơng 5: Thiết kế đồ họa Để giao diện thân thiện hơn với ngời sử dụng, đề tài còn nghiên cứu về kỹ thuật đồ họa trong Pascal trong việc tạo menu, dùng tiếng việt trong Pascal có sử dụng ngắt 33h các hàm của BIOS để điều khiển chuột. Đề tài đợc hoàn thành dới sự hớng dẫn của thầy giáo Tiến sỹ Nguyễn Trung Hòa. Nhân dịp này em xin đợc bày tỏ lòng biết ơn sâu sắc tới thầy giáo hớng dẫn vì sự giúp đỡ chỉ dẫn hết sức nhiệt tình, chu đáo. Em xin gửi lời cảm ơn tới Nhà trờng, khoa Công nghệ Thông tin đã tạo điều kiện cho chúng em đợc học tập rèn luyện trong suốt bốn năm học vừa qua. Em xin tỏ lòng biết ơn sâu sắc tới các thầy giáo, cô giáo, bạn bè trong khoa đã giúp đỡ trong quá trình học tập nghiên cứu. Đề tài không tránh khỏi nhiều thiếu sót. Em kính mong nhận đ- ợc sự chỉ bảo của các thầy giáo, cô giáo sự góp ý của các bạn trong khoa. Sinh viên Trần Thị Lê Na Chơng 1: đa thức các phép toán đa thức Trần Thị Lê Na Lớp 43B1 - khoa Công nghệ Thông tin - Đại học Vinh 3 Khóa luận Tốt nghiệp Đại số đa thức các phơng án cài đặt 1. Định nghĩa đa thức Biểu thức hình thức: (1) f(x) = a n x n + a n-1 x n-1 + . + a 1 x + a 0 - Trong đó a n , a n- 1 , ., a 1 , a 0 K (K là một trờng tuỳ ý) với a n 0, đợc gọi là đa thức bậc n. Ta viết degf = n có nghĩa là bậc của f bằng n. - Các phần tử a n , a n-1 , ., a 1 , a 0 K đợc gọi là các hệ tử, x là ẩn - a i x i , i = n,0 là các hạng tử của đa thức f(x) - a n x n là hạng tử cao nhất của đa thức f(x). - a 0 là hạng tử tự do của đa thức f(X). - Đa thức f(x) = a n x n , a 0 còn đợc gọi là đơn thức bậc n. - Trong trờng hợp a 0 0, n = 0 thì f(x) có bậc bằng 0. - Đa thức f(x) đợc gọi là đa thức không nếu chỉ nếu tất cả các hệ số của nó bằng 0. - Nhấn mạnh ở đây rằng ta luôn đồng nhất biểu thức (1) với các biểu thức dẫn dắt từ (1), tức là tổng theo thứ tự tuỳ ý các đơn thức tham gia trong (1). Nh vậy biểu thức viết theo thứ tự ngợc lại với (1). (2) a 0 + a 1 x + . + a n-1 x n-1 + a n x n cùng là một đa thức g(x) đồng nhất với f(x). - Khi K là một trờng số thực hoặc phức thay cho thuật ngữ hệ tử hạng tử ta sẽ dùng thuật ngữ hệ số số hạng. 2. Định nghĩa các phép toán trên đa thức 2.1) Phép cộng hai đa thức Cho f(x) = a n x n + a n-1 x n-1 + . + a 1 x + a 0 Trần Thị Lê Na Lớp 43B1 - khoa Công nghệ Thông tin - Đại học Vinh 4 Khóa luận Tốt nghiệp Đại số đa thức các phơng án cài đặt g(x) = b n x n + b n-1 x n-1 + . + b 1 x + b 0 , là các đa thức với hệ số trong K. Khi đó đa thức: f(x) + g(x) = (a n + b n ) x n + (a n-1 + b n-1 ) x n-1 + . + (a 1 + b 1 )x + (a 0 + b 0 ) đợc gọi là tổng của hai đa thức f(x) g(x). ở đây nếu bậc của hai đa thức không bằng nhau ta viết thêm các số hạng với hệ số bằng không. 2.2) Trừ hai đa thức Phép trừ hai đa thức cũng tơng tự nh phép cộng hai đa thức: Cho f(x) = a n x n + a n-1 x n-1 + . + a 1 x + a 0 g(x) = b n x n + b n-1 x n-1 + . + b 1 x + b 0 , là các đa thức với hệ số trong K. Khi đó đa thức: f(x) - g(x) = (a n - b n ) x n + (a n-1 - b n-1 ) x n-1 + . + (a 1 - b 1 )x + (a 0 - b 0 ) đợc gọi là hiệu của hai đa thức f(x) g(x). ở đây nếu bậc của hai đa thức không bằng nhau ta viết thêm các số hạng với hệ số bằng không. 2.3) Phép nhân hai đa thức Cho hai đa thức: f(x) = a n x n + a n-1 x n-1 + . + a 1 x + a 0 , a n 0 g(x) = b m x m + b m-1 x m-1 + . + b 1 x + b 0 , b m 0 thì f(x)g(x) = d n+m x n+m + d n+m-1 x n+m-1 + . + d 1 x+ d 0 trong đó d i = =+ ijk a k b j , i = 0, 1, ., n +m. Trần Thị Lê Na Lớp 43B1 - khoa Công nghệ Thông tin - Đại học Vinh 5 Khóa luận Tốt nghiệp Đại số đa thức các phơng án cài đặt Hiển nhiên degf(X)g(X) = degf(X) + degg(X) f(X)g(X) = g(X)f(X) f(X)(r(X) + s(X)) = f(X)r(X) + f(X)s(X) 2.4) Phép chia hai đa thức Giả sử f, g K[x] g 0 khi đó f có thể viết duy nhất dới dạng: (1) f = gq + r Với q, r K[x] degr < degq Biểu thức (1) đợc gọi là phép chia có d đa thức f(x) cho đa thức g(x) 0. Đa thức f(x) đợc gọi là đa thức bị chia, đa thức g(x) là đa thức chia, đa thức q(x) là thơng còn đa thức r(x) là phần d của phép chia. Nếu r(x) = 0 ta nói f(x) chia hết cho g(x), khi đó ta cũng nói g(x) là một ớc của f(x). 2.5) Tính giá trị của đa thức. Cho đa thức f(x) = a n x n + a n-1 x n-1 + . + a 0 . Với các hệ số của đa thức a 0 , a 1 , . , a n-1 , a n x cho trớc. Để tính giá trị của đa thức ta dùng thuật toán Horner P = ( . ((a n x + a n-1 )x + a n-2 )x + . + a 1 )x + a 0 , trong đó quá trình truy hồi đợc tiến hành nh sau: P n = a n P n-1 = P n x + a n-1 . P = P 0 = P 1 x + a 0 <=> P := Px + a k Với k = 1,1 n Trần Thị Lê Na Lớp 43B1 - khoa Công nghệ Thông tin - Đại học Vinh 6 Khóa luận Tốt nghiệp Đại số đa thức các phơng án cài đặt 2.6) Ước chung lớn nhất của hai đa thức. Nhắc lại rằng g K[x], g 0 đợc gọi là ớc chung của f K[x] nếu f chia hết cho g ta viết f | g. Cho f, g, h K[x]. Ta nói + h là ớc chung của f g nếu h | f h | g. + h là ớc chung lớn nhất (UCLN) của f g, nếu nó là ớc chung của f g chia hết cho mọi ớc chung khác. áp dụng thuật chia ECLIDE ta có thể tìm ớc chung lớn nhất của hai đa thức f g không đồng thời bằng không. Thật vậy ta coi g 0. Chia f cho g ta đợc phần d r 1 . Nếu r 1 0, ta chia g cho r 1 , đợc phần d r 2 . Cứ tiếp tục vì bậc của các phần d giảm dần nên tồn tại k 1 sao cho r k-1 | r k . Ta sẽ kiêm lại khi đó rằng. r k = (f, g) Thật vậy xuất phát từ đẳng thức r k-1 = r k h k+1 suy ra r k | r k-2 cũng vậy r k |r k-3 . Cứ nh vậy ta nhận đợc r k |g r k |f Bây giờ nếu là một ớc chung tuỳ ý của f g thì | r 1 cũng vậy | r 2 . Cứ nh thế ta lại nhận đợc | r k Trần Thị Lê Na Lớp 43B1 - khoa Công nghệ Thông tin - Đại học Vinh 7 Khóa luận Tốt nghiệp Đại số đa thức các phơng án cài đặt Chơng 2: Cài đặt đa thức bằng mảng 1. Lý do cài đặt bằng mảng Cấu trúc mảng là cấu trúc rất quen thuộc ở mọi ngôn ngữ lập trình. Đặc biệt trong ngôn ngữ lập trình Pascal. Nếu nh chúng ta biết cách khai thác sử dụng sẽ giúp chúng ta giải quyết đợc nhiều bài toán. 1.1) u điểm: - Dùng mảng có lợi điểm là có thể đọc ngợc, đọc xuôi một cách dễ dàng truy xuất đến một phần tử mảng cũng hết sức nhanh chóng. - Mảng đợc lu trữ kế tiếp nên việc truy nhập vào phần tử của mảng đợc thực hiện trực tiếp dựa vào địa chỉ tính đợc, nên tốc độ nhanh đồng đều đối với mọi phần tử. 2.2) Nhợc điểm: Mặc dầu có rất nhiều ứng dụng ở đó mảng có thể đợc sử dụng để thể hiện mối quan hệ về cấu trúc giữa các phần tử dữ liệu. Tuy nhiên cũng lộ rõ một số nhợc điểm nh: - Không có phép bổ sung phần tử hoặc loại bỏ phần tử đợc thực hiện đối với mảng. - Không tận dụng đợc các vùng nhớ có kích thớc nhớ nhỏ vì các thành phần của mảng cần đợc lu trữ một cách kế tiếp. - Khi dùng mảng đều phải khai báo trớc kích thớc của mảng. Trong khi đó chúng ta lại không thể dự đoán trớc kích thớc của dữ liệu vì thế thờng xảy ra tình trạng: khai báo kích thớc gây lãng phí bộ Trần Thị Lê Na Lớp 43B1 - khoa Công nghệ Thông tin - Đại học Vinh 8 Khóa luận Tốt nghiệp Đại số đa thức các phơng án cài đặt nhớ hoặc ngợc lại khai báo thiếu thì máy bị treo không chạy nổi ch- ơng trình. Ví dụ cộng (3x^2 x + 3) Với (2x^2 + x - 3) Để có kết quả là (5x^2) Có thể dùng mảng một chiều để biểu diễn: hệ số của số hạng x i sẽ đợc lu trữ ở phần tử thứ i của mảng một chiều, ta quy ớc bậc của đa thức đợc lu trữ ở phần tử -1. Nh vậy phép cộng hai đa thức chính là phép cộng hai mảng. Cách biểu diễn đã đa tới phép xử lý đơn giản. Tuy nhiên ta cũng thấy một số nhợc điểm: Đa thức: 3x^2 x + 3 đợc lu trữ Chỉ số mảng -1 0 1 2 2 3 -1 3 Các hệ số tơng ứng các lũy thừa Đa thức: 2x^2 + x 3 đợc lu trữ -1 0 1 2 Kết quả khi cộng hai đa thức trên: -1 0 1 2 2 5 0 0 Trần Thị Lê Na Lớp 43B1 - khoa Công nghệ Thông tin - Đại học Vinh 9 2 2 1 -3 Hệ số Khóa luận Tốt nghiệp Đại số đa thức các phơng án cài đặt Ta thấy kết quả là một mảng mới biểu diễn nhiều phần tử bằng 0, nó vẫn chiếm ô nhớ trong bộ nhớ, trong khi đó các giá trị đó không sử dụng tới khuynh hớng này tạo ra sự lãng phí bộ nhớ rất rõ. 2. Định nghĩa kiểu mảng. Kiểu mảng (Array) là một kiểu dữ liệu có cấu trúc gồm một số cố định các phần tử có cùng một kiểu dữ liệu đặt sau tên mảng. Nói cách khác, dữ liệu kiểu mảng là một mảng (dãy) của nhiều dữ liệu thuộc một kiểu khác. Kiểu mảng có những đặc trng sau: - Các phần tử của mảng phải cùng kiểu, kiểu đó gọi là kiểu cơ sở hay kiểu thành phần. - Các phần tử trong mảng có chỉ số, tức là vị trí số thứ tự của chúng trong mảng. Kiểu của chỉ số phải là kiểu rời rạc. Mỗi phần tử có thể đợc truy nhập trực tiếp thông qua chỉ số. - Các chỉ sốcác biểu thức nằm trong dấu ngoặc vuôn [] đặt ngay sau tên mảng kiểu của chúng gọi là kiểu chỉ số. - Kiểu chỉ số là một kiểu nguyên hoặc miền con, giá trị của chỉ số có thể là âm hoặc dơng. 3. Cách khai báo. 3.1) Khai báo gián tiếp TYPE <Tên kiểu mảng> = Array[<chỉ số>] of <kiểu>; VAR <Tên biến>:<Tên mảng>; Trần Thị Lê Na Lớp 43B1 - khoa Công nghệ Thông tin - Đại học Vinh 10 . nghiệp Đại số đa thức và các phơng án cài đặt lời mở đầu Đại số đa thức là một lĩnh vực quan trọng của đại số. Nó là công cụ để nghiên cứu các phơng trình đại. tin - Đại học Vinh 1 Khóa luận Tốt nghiệp Đại số đa thức và các phơng án cài đặt Chơng 2: Cài đặt đa thức bằng mảng Dựa vào định nghĩa cũng nh các phép

Ngày đăng: 17/12/2013, 21:51

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan