Thân mến, Nguyễn Văn Sang... #Ở bước này giải và biện luận theo nghiệm m trong phương trìnhdelta... if nghiemBPT không tồn tại then Bất phương trình vô nghiệm, suy ra 1 v
Trang 1MỤC LỤC
Trang
LỜI NÓI ĐẦU 2
Chương I> Tổng quan về lập trình symbolic và công cụ lập trình Maple 3
1.1 Tổng quan về lập trình symbolic 3
1.2 Công cụ lập trình Maple 3
1.2.1 Tổng quan 3
1.2.2 Các tính năng cơ bản của Maple 3
Chương II> Xây dựng ứng dụng giải và biện luận phương trình bậc 2 & giải toán tam giác 4
2.1 Phát biểu bài toán về giải và biện luận phương trình bậc 2 4
2.2.1 Cách giải và biện luận phương trình bậc hai trong trường hợp tổng quát 4
2.2.2 Giải và biện luận phương tình bậc 2 của chương trình 5
3.1/ Phát biểu bài toán giải tam giác 12
3.2 Trình bày thuật giải 13
3.2/ Mô hình kiến trúc của chương trình 14
2/ Hướng dẫn sử dụng chương trình 19
4.1 Một số yêu cầu cài đặt cho việc chạy chương trình 19
4.2 Hướng dẫn chạy chương trình 19
Chương III> Kết luận & Hướng phát triển đề tài 21
1/ Kết luận : 21
2/ Hướng phát triển đề tài: 21
TÀI LIỆU THAM KHẢO 22
Trang 2LỜI NÓI ĐẦU
Trong lĩnh vực “trí tuệ nhân tạo” người ta đã áp dụng ngôn ngữ lập tình Symbolicđể biểu diễn và xử lý tri thức đối với những bài toán liên quan tới tính toán trên cácký hiệu, những bài toán có tính suy luận cao để từ đó có thể tạo ra những chươngtrình thông minh ở một chừng mực nào đó, có thể xử lý một cách tự nhiên, tự độngnhư cách suy nghĩ và hành động của của con người để rồi từ đó phục vụ cho conngười
Trên thực tế khi giải quyết một bài toán người ta thường phải vận dụng một sốhiểu biết (tri thức, kinh nghiệm) nào đó có liên đến các yếu tố đang được xem xét đểsuy ra một số yếu tố mới và giải quyết được vấn đề Trong các môn học như toán, lýđể giải quyết một bài toán người ta thường đưa ra phương pháp giải bao gồm một sốbước mà cứ làm theo đó ta có thể giải quyết được vấn đề
Trong phạm vi bài tiểu luận này, em sẽ trình bày việc sử dụng lập trình Symbolicđể giải và biện luận phương trình bậc hai & ứng dụng phương pháp mạng tính toán đểgiải bài tập tam giác Chương trình được viết với sự kết hợp của ngôn ngữ lập trìnhSymbolic và C#, ứng với 2 công cụ Mapple 16 và Microsoft Visual Studio 2010 Nhân đây em cũng xin gửi lời cảm ơn chân thành đến thầy PGS.TS Đỗ Văn Nhơn,người đã tận tình giảng dạy và truyền đạt những kiến thức bổ ích trong lĩnh vực côngnghệ thông tin nói chung và bộ lập trình Symbolic cho trí tuệ nhân tạo nói riêng đểgiúp em hoàn thành tốt bài luận này
Mặc dù đã rất nỗ lực, cố gắng nhưng do kiến thức và thời gian có phần hạn chế,chắc chắn sẽ có những thiếu sót và bổ sung thêm Rất mong sự cảm thông và góp ýcủa thầy
Thân mến,
Nguyễn Văn Sang
Trang 3Chương I> Tổng quan về lập trình symbolic và công cụ lập trình Maple
1.1 Tổng quan về lập trình symbolic
Lập trình symbolic hay còn gọi là lập trình hình thức, đây là hình thức lậptrình để có khả năng tính toán trên các ký hiệu (symbol), các phép toán (cộng,trừ, nhân, chia), các biểu thức đại số, tính toán chính xác hay gần đúng trênmột con số hữu tỉ ,…
1.2 Công cụ lập trình Maple
1.2.1 Tổng quan
Maple là một công cụ phần phềm được phát triển bởi công tyWaterloo Maple Inc, ra đời khoảng năm 1991, cho đến nay đã có phiênbản 16 Đây là công cụ lập trình mạnh và khá phổ biến trong trong lĩnhvực lập trình symbolic, với khả năng tính toán trên các biểu thức đại số,hỗ trợ nhiều hàm tính toán như giải phương trình, tính giới hạn, đạo hàm,tích phân, nguyên hàm, vẽ đồ thị hàm số, ,
1.2.2 Các tính năng cơ bản của Maple
Cung cấp sẵn một hệ thống các thủ tục, hàm hay thư viện để hỗtrợ người dùng không cần biết về lập trình vẫn có thể sử dụngtrong phiên làm việc của mình Maple dựa trên phương pháp lậptrình hàm và có thể thực hiện được hầu hết các phép toán cơ bảntrong trương trình phổ thông và đại học và hỗ trợ với khả năngtương tác khi gọi hàm và cho ngay kết quả
Hỗ trợ làm việc theo kiểu lập trình ngay tại phiên làm việc, có thểtạo ra những thư viện (gói chương trình) và đưa vào hệ thống đểtrở thành thư viện của hệ thống cho sử dụng sau này
Cung cấp các công cụ minh họa bằng hình học trực quan bao gồm: vẽ đồ thị tĩnh và động, vẽ biểu đồ…
Hỗ trợ lập trình giao diện đơn giản
Có khả năng tương tác với ngôn ngữ lập trình khác như C# hayjava
Trang 4Chương II> Xây dựng ứng dụng giải và biện luận phương trình bậc 2 & giải toán tam giác.
2.1 Phát biểu bài toán về giải và biện luận phương trình bậc 2.
Trong chương trình trung học phổ thông và một số bài tập có đề cập tới giải và biện luận phương tình bậc 2 bao gồm 2 dạng là có tham số hay không có tham số đi kèm.Thường thì bài toán này được giải theo một phương pháp hay là một khuân mẫu chuẩn được kiến nghị bởi sách giáo khoa hay sách thamkhảo mà đối tượng học sinh hay người giải toán cứ theo đó mà làm Bằng việc ứng dụng lập trình Symbolic cùng với sự hỗ trợ đắc lực của công cụ lập trình Maple, chúng ta có thể xây dựng được một chương trình giải bài toán dạng này một cách nhanh chóng, giúp ích cho các em học sinh có thể dùng để tham khảo cũng như có thể giúp cho các cán bộ giảng dạy đánh giá được bài toán trước khi ra bài tập cho học sinh của mình Trong phạm vi của bài viết này, trình bày phương pháp giải và biện luận phương trình bậc hai cho trường hợp tổng quát tham khảo sách và trình bày cách giải của chương trình
2.2.1 Cách giải và biện luận phương trình bậc hai trong trường hợp tổng quát.
Cho phương trình bậc hai: a2x + bx + c = 0 (1)
+ Nếu a = 0, ta được phương trình bậc nhất: bx + c = 0
Biện luận như sau:
a Nếu b ≠ 0 thì phương trình có nghiệm duy nhất: x b
2a
b Nếu b = 0 và c = 0 thì phương trình nghiệm đúng với mọi x thuộc R
c Nếu b = 0 và c ≠ 0 thì phương trình vô nghiệm
+ Nếu a ≠ 0 Đặt b2 4ac
- 0 : phương trình (1) vô nghiệm
- 0: phương trình (1) có nghiệm kép x b
2a
- 0: phương trình (1) có 2 nghiệm phân biệt:
bx2a
Trang 52.2.2 Giải và biện luận phương tình bậc 2 của chương trình.
a Quy định về cấu trúc dữ liệu
Phương trình nhập vào có dạng như sau : ax2 + bx + c = 0 (1), trongđó a, b, c là các hệ số, các hệ số này có thể chỉ là các là số thực hoặctham số, hoặc vừa có số thực và có tham số; x là biến hay là ẩn số củaphương trình cần tìm
Một số lưu ý:
-Tham số ở đây được hiểu ngầm định là tham số m
- Nếu hệ số a, b, c nếu có tham số m thì bậc của tham số m là bậc 1
- Phương trình (1) có thể khuyết thành phần b, c
Ví dụ: các phương trình sau đây nhập vào là hợp lệ : (m+1)x2 + mx + 2 = 0, mx2 + 2x + m + 1 = 0, mx2 + (m-1)x – 1 =
0, x2 + 2x -1 = 0, ,
Phương trình sau đây nhập vào là không hợp lệ : (m2 +2m-1)x2 + mx + 2 = 0, x2 + m2x + m + 1 = 0, mx + 2x + m2 -1 =0, ,
b Trình bày thuật giải
Thuật giải dựa trên quy định về cấu trúc dữ liệu ở mục a và thể hiệnviệc giải và biện luận phương trình bậc hai ở dạng tổng quát nhất
Nhập : nhập phương trình như quy định về cấu trúc dữ liệu ở mục a Xuất : xuất ra nội dung lời giải chi tiết.
Bước 1 Khai báo các biến cục bộ cần thiết như :
a, b, c : là các hệ số của phương trìnhthamsa: tham số của a
nghiemm : giải nghiệm theo biến mdelta : delta
root: nghiệm của phương trình theo biến xXét vế trái của phương trình (1), gán các giá trị cho các biến a, b,c
+ Xét a = 0 Xác định hệ số a có tham số m hay không.
if (a có chứa m) then
Trang 6- gán a = 0, tính nghiệm theo biến m và gán cho biến nghiemm
- thay nghiemm = 0 vào (1) để tính nghiệm cho (1)
if ( trong (1) chỉ chứa biến x và hằng số) then
if (cả 2 vế trái và vế phải của (1) đều bằng 0) then
- in ra kết quả : phương trình (1) có vô số nghiệm elif (vế trái (1) và vế phải (1) không bằng nhau) then
- in ra kết quả : phương trình (1) vô nghiệm.
end if;
else thay giá trị nghiemm vào (1) và giải phương trình theo biến x
ta được 1 nghiệm và in ra kết quả nghiệm root.
end if;
+ Xét a ≠ 0
thamsa giải phương trình a ≠ 0 theo biến m và in kết quả
Chuyển qua bước 2.
else
#Hệ số a không chứa tham số m
Chuyển qua bước 2.
end if;
Bước 2.
#Ở bước này giải và biện luận theo nghiệm m trong phương trìnhdelta
Nhập : nhập các hệ số a, b, c.
Xuất : xuất ra nội dung lời giải chi tiết.
- Khởi tạo các biến cục bộ : delta, tinhmm, mi, nghiemkep1,nghiemkep2, x1, x2, nghiemBPT;
- tính delta = b2 – 4ac;
if (delta chứa m) then + Xét delta = 0
if (delta là phương trình bậc 2 với ẩn m) then
- tinhm thông qua bước 3.
else
Trang 7- tinhm giải nghiệm delta = 0 theo m.
end if;
if (tinhm is empty) then
trường hợp này vô nghiệm m => (1) không có nghiệm kép
else
in ra nghiệm m và tính nghiệm kép ứng với nghiệm m, bằng
cách thay mỗi giá trị m trong tinhm vào biểu thức –b/2a
end if;
+ Xét delta > 0 nghiemBPT giải bất phương trình delta > 0 theo nghiệm m.
if (nghiemBPT không tồn tại) then
Bất phương trình vô nghiệm, suy ra (1) vô nghiệm
elif (nghiemBPT luôn đúng với mọi m) then phương trình (1) có 2 nghiệm phân biệt Tính x1, x2.
x1 (-b - sqrt(delta)) / 2a x2 (-b + sqrt(delta)) / 2a
in kết quả x1, x2
end if;
+ Xét delta < 0
nghiemBPT giải bất phương trình delta < 0 theo biến m
if (nghiemBPT không tồn tại) then
Bất phương trình vô nghiệm => (1) vô nghiệm
elif (nghiemBPT thỏa với mọi m) then
Trang 8Bất phương trình luôn đúng => (1) vô nghiệm
else
m nằm trong khoảng sau thì phương trình vô nghiệm giải bất phương trình delta < 0
end if;
# trường hợp delta không chứa tham số m
elif (delta = 0) then
Phương trình có nghiệm kép Nghiemkep1 -b / 2a
elif (delta > 0) then
Phương trình có 2 nghiệm phân biệt x1, x2.
Tính x1, x2
x1 (-b - sqrt(delta)) / 2a x2 (-b + sqrt(delta)) / 2a
in kết quả x1, x2
elif (delta < 0) then
Phương trình đã cho vô nghiệm vì delta < 0
Xuất : danh sách nghiệm.
Khai báo vào khởi tạo giá trị cho các biến cục bộ : vt, delta, bien,nghiemkep, x1, x2, a, b, c, roots
vt ax2 + bx + c;
delta b2 – 4ac
if (delta = 0) then
nghiemkep -b/2a
Thêm nghiemkep vào roots
elif (delta > 0) then
Trang 9x1 (-b – sqrt(delta)) / 2a x2 (-b + sqrt(delta)) / 2a Thêm x1, x1 vào roots.
Thủ tục được hiện thực bằng mã nguồn trên công cụ lập trình Maple
16 được đính kèm trong file : giaiPTBac2.mw, trong thư mục
CH1101128-NguyenVanSang/ma_nguon(source_code)/Maple, hàm chính : giaiPTBac2.
d Chạy minh họa một vài mẫu ví dụ trên công cụ Maple.
>
phuong trinh da cho :
+ neu a = 0hay : m+1 = 0 => m = -1phuong trinh co 1 nghiem la: x = -1/2 + neu a khac 0, hay :
+ Tinh delta, ta co delta = -4*m^2-12*m-4+ neu delta = 0
m co nghiem: m1 = 1/2*5^(1/2)-3/2, 1/2*5^(1/2)
m2=-3/2-+ phuong trinh co nghiem kep tuong ung voi m la
x = -2/(5^(1/2)-1) voi m1 = 1/2*5^(1/2)-3/2
x = 2/(5^(1/2)+1) voi m2 = -3/2-1/2*5^(1/2)+ neu delta > 0, hay 0 < -4*m^2-12*m-4
=> m nam trong khoang sau:
Trang 10phuong trinh co 2 nghiem phan biet x1, x2 x1 = -(1+(-m^2-3*m-1)^(1/2))/(m+1)
x2 = (-1+(-m^2-3*m-1)^(1/2))/(m+1)+ neu delta < 0, hay -4*m^2-12*m < 4 => m nam trong khoang sau thi phuong trinh vo
nghiem
>
phuong trinh da cho :
+ neu a = 0hay : m+1 = 0 => m = -1phuong trinh co 1 nghiem la: x = 0 + neu a khac 0, hay :
+ Tinh delta, ta co delta = 4
+ delta = 4 > 0, phuong trinh co 2 nghiem phan biet x1, x2
x1 = -2/(m+1)x2 = 0
>
phuong trinh da cho :
+ neu a = 0hay : m+1 = 0 => m = -1phuong trinh vo nghiem+ neu a khac 0, hay :
Trang 11+ Tinh delta, ta co delta = -36*m-36+ neu delta = 0
truong hop nay vo nghiem m, nen phuong trinh da
cho khong co nghiem kep+ neu delta > 0, hay 0 < m^2+4
=> Bat phuong trinh luon dung voi moi m
=> phuong trinh co 2 nghiem phan biet x1, x2 x1 = -1/2*m-1/2*(m^2+4)^(1/2)
x2 = -1/2*m+1/2*(m^2+4)^(1/2)
+ neu delta < 0, hay m^2 < -4
=> Bat phuong trinh vo nghiem, suy ra phuong
trinh da cho vo nghiem
>
phuong trinh da cho :
Trang 12+ He so a khong co tham so m.
+ Tinh delta, ta co delta = 25
+ delta = 25 > 0, phuong trinh co 2 nghiem phan biet x1, x2
x1 = -2x2 = 1/2
3.1/ Phát biểu bài toán giải tam giác
Trong một số bài tập có liên quan tới bài toán tam giác ở cấp cơ sởChúng ta thấy rằng tất cả các đại lượng cần tính toán như : độ dài một cạnh,góc, tam giác, chu vi,…, đều có các công thức tính toán liên quan Chẳng hạncông thức tổng ba góc A, B, C của một tam giác bằng 90 độ, các công thứctính diện tích tam giác thông qua đường cao và cạnh tương ứng, , để giải đượcbài toán dạng này đòi hỏi chúng ta cần phải nhớ và vận dụng tất cả các côngthức có liên quan tới các đại lượng cần tính là có thể có được lời giải
Với mô hình mạng tính toán, chúng ta có thể xây dựng được một chươngtrình để giải bài tập khi yêu cầu tìm một đại lượng nào nào đó qua một số đạilượng đã biết thể hiện trong những công thức tính toán liên quan
3.2 Trình bày thuật giải
3.2.1 Sơ lượt về mạng tính toán
a Khái niệm
Mạng tính toán là một dạng biểu diễn tri thức về các vấn đề tínhtoán và được áp dụng một cách có hiệu quà để giải quyết một số dạng bàitóan Mỗi mạng tính toán là một mạng ngữ nghĩa chứa các biến và nhữngquan hệ có thể cài đặt sử dụng cho việc tính toán Cụ thể một mạng tínhtoán gồm một tập hợp các biến cùng với một tập hợp các quan hệ tínhtoán giữa các biến (các luật hay các công thức liên hệ tính toán giữa cácbiến)
b Cấu trúc mạng tính toán
Mạng tính tóan gồm tập M và F
Trang 13M: tập các biến xi, ,xn ,nN trong miền giá trị sớ thực Ta có:
M = x1,x2, ,xn, F: tập các quan hệ fi, ,fm , mN giữa các biến Ta có:
F = f1,f2, ,fm
Ví dụ: Mợt quan hệ f giữa 3 đại lượng là cường đợ dòng điện I, hiệuđiện thế U (đơn vị V (vơn)) và điện trở R (đơn vị Ω (ơm)) được cho bởicơng thức tính toán theo định luật Ơm như sau: f : I = U/R (Đơn vị Ampe(mA))
Đới với mỡi f F, ta ký hiệu M(f) là tập các biến có liên hệ trongquan hệ f Và M(f) là tập con của M: M(f) M Nếu viết f dưới dạng f :u(f) v(f)
thì ta có M(f) = u(f) v(f)
Thuật toán sử dụng suy diễn tiến để tìm được lời giải cho bài toán.
Thuật toán tìm mợt lời giải cho bài toán A B :
Nhập: Mạng tính toán (M,F), giả thiết A M, tập cần tính B M
Xuất : Lời giải cho bài toán A B
Solution_found false;
3 Repeat
Aold A;
Chọn ra mợt f F chưa xem xét;
while not Solution_found and (chọn được f) do