Tải bản đầy đủ (.docx) (16 trang)

Ứng dụng lập trình Symbolic để giải và biện luận phương trình và hệ phương trình theo tham số m

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (197.39 KB, 16 trang )

Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
LỜI MỞ ĐẦU
Trong thời đại ngày nay, toán học đã đóng góp một phần quan trọng trong
cuộc sống của chúng ta. Trước đây, khi giải một bài toán thì cần phải tốn rất nhiều
thời gian và công sức. Tuy nhiên, gần đây do sự phát triển mạnh mẽ của công nghệ
thông tin thì việc giải một bài toán trở nên khá đơn giản. Đó là nhờ sự ra đời phần
mềm Maple do một nhóm các nhà khoa học của Canada thuộc trường đại học
Waterloo xây dựng. Maple là một công cụ tuyệt vời hỗ trợ cho việc học tập và
nghiên cứu toán học, có thể thực hiện được mọi điều từ những phép toán đơn giản
nhất, sơ cấp nhất cho đến những tính toán phức tạp nhất.
Chính vì lý do trên nên sau khi học xong môn “Lập trình Symbolic cho trí
tuệ nhân tạo”, em đã chọn đề tài “Ứng dụng lập trình Symbolic để giải và biện luận
phương trình và hệ phương trình theo tham số m”. Trong phạm vi bài thu hoạch
này, em sẽ phân tích cấu trúc dữ liệu, giải thuật để giải và biện luận phương trình
và hệ phương trình theo tham số m, đồng thời viết một chương trình để giải và biện
luận phương trình và hệ phương trình theo tham số m bằng phần mềm Maple 16.
Qua đây, em xin chân thành cảm ơn PGS.TS. Đỗ Văn Nhơn đã tận tình
hướng dẫn em môn học bổ ích và đầy ý nghĩa này. Em xin cảm ơn các bạn cùng
khoá và các anh chị khoá trước đã giúp đỡ em tìm tài liệu và góp ý cho em hoàn
thành tốt bài thu hoạch này!
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 1
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN























Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 2
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
MỤC LỤC
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 3
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
NỘI DUNG
CHƯƠNG I: GIỚI THIỆU VỀ MAPLE VÀ MỘT SỐ LỆNH
ĐƯỢC SỬ DỤNG TRONG CHƯƠNG TRÌNH
I.1. Giới thiệu về Maple
Maple là một hệ thống tính toán trên các biểu thức đại số. Cho đến nay,
Maple đã được phát triển qua nhiều phiên bản khác nhau và ngày càng hoàn thiện.
Phần mềm Maple có thể thực hiện các công việc sau:

• Thực hiện các tính toán với khối lượng lớn, với thời gian nhanh và độ chính xác
cao.
• Sử dụng các gói chuyên dụng của Maple để giải quyết các bài toán cụ thể như vẽ
đồ thị, hình học giải tích, đại số tuyến tính.
• Thiết kế các đối tượng 3 chiều.
• Không chỉ dừng lại ở việc hỗ trợ tính toán, Maple còn có khả năng lập trình, có thể
xem Maple như là một ngôn ngữ lập trình, trong đó chúng ta có thể tạo ra những
chương trình và những gói (package) để tái sử dụng.
• Một tính năng rất hay và cũng rất nổi bật là Maple có thể hợp tác với một ngôn ngữ
chủ (host language) như VB6.0, VB.Net, Java Khả năng đặc biệt này của Maple
giúp chúng ta thực hiện được những phần mềm (tính toán, hỗ trợ dạy/học tóan )
đuợc viết mã bằng ngôn ngữ chủ và liên kết với Maple để thực hiện các tác vụ toán
học phức tạp mà đòi hỏi rất nhiều kỹ năng lập trình.
I.2. Một số lệnh được sử dụng trong chương trình
II.2.1. Lệnh lhs(expr) và rhs(expr)
Dùng lấy vế trái và vế phải của biểu thức expr.
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 4
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
II.2.2. Lệnh coeff(p,x)
Dùng lấy hệ số của biến x trong biểu thức p.
II.2.3. Lệnh expand(expr)
Dùng để khai triển biểu thức đại số expr.
II.2.4. Lệnh solve(equations, variables) và lệnh linsolve(matrix, vector)
Lệnh solve dùng để tìm nghiệm của phương trình, bất phương trình.
Lệnh linsolve dùng để giải hệ phương trình đại số tuyến tính với vector
xác định vế phải.
II.2.5. Lệnh nops(e)
Dùng để chỉ số lượng phần tử trong danh sách e.
II.2.6. Lệnh convert(expr,form)

Dùng để chuyển biểu thức sang kiểu dữ liệu bất kỳ.
II.2.7. Lệnh subs(x=a,expr)
Dùng để giải biểu thức expr với biến x có giá trị là a.
II.2.8. Lệnh parse(string)
Dùng chuyển chuỗi sang biểu thức.
II.2.9. Cách lệnh về chuỗi
- Lệnh searchtext (pattern, string): Dùng tìm chuỗi con pattern trong
chuỗi string.
- Lệnh substring (string, range):Dùng copy chuỗi string theo giới hạn
range.
II.2.10. Các lệnh về ma trận
- Lệnh Matrix(m, n, L): Dùng tạo ma trận cấp m x n từ bảng liệt kê các
phần tử của ma trận L theo thứ tự từ trái sang phải và từ trên xuống dưới.
- Lệnh Determinant(A): Tính định thức của ma trận A.
- Lệnh DeleteColumn(A,L): xóa cột của ma trận A theo giới hạn L.
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 5
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
CHƯƠNG II: GIẢI VÀ BIỆN LUẬN PHƯƠNG TRÌNH VÀ HỆ
PHƯƠNG TRÌNH THEO THAM SỐ M
II.1. Giải và biện luận phương trình bậc nhất 1 ẩn số theo tham số m
II.1.1. Phân tích yêu cầu
Cho phương trình bậc nhất 1 ẩn số có dạng ax + b =0 theo tham số m.
Yêu cầu: Giải và biện luận phương trình bậc nhất trên.
II.1.2. Cấu trúc dữ liệu
- Phương trình bậc nhất được lưu trữ dưới dạng hàm số f:=ax+b.
- Dùng cấu trúc rẽ nhánh if, cấu trúc lặp for để giải và biện luận phương
trình.
- Dùng danh sách tập hợp để lưu trữ danh sách nghiệm.
II.1.3. Thuật giải

Input: phương trình bậc nhất 1 ẩn số theo tham số m.
Output: giải và biện luận phương trình.
Bước 1: Đưa phương trình về dạng ax + b=0
Bước 2: Biện luận phương trình theo a và b:
- Trường hợp 1: phương trình không có tham số m:
+ Nếu a <>0 thì phương trình có nghiệm x:=-b/a,
Ngược lại, nếu b=0 thì phương trình vô số nghiệm,
Ngược lại phương trình vô nghiệm.
- Trường hợp 2: phương trình có tham số m:
+ Nếu a <>0: tính giá trị m ứng với trường hợp a<>0,
khi đó phương trình có nghiệm x:=-b/a.
+ Nếu a=0: tính giá trị m ứng với trường hợp a=0 (m có thể có 1
hoặc nhiều giá trị).
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 6
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
Xét từng giá trị của m, tính b dựa vào m.
Nếu b=0 thì phương trình vô số nghiệm,
Ngược lại phương trình vô nghiệm.
Bước 3: Kết luận nghiệm của phương trình.
II.1.4. Thủ tục
giaiptbac1:=proc(pt)
local f,a,b,listm,i,t;
#B1: đưa pt về dạng ax +b =0
f:=lhs(pt)- rhs(pt); a:=coeff(f,x); b:=expand(f-a*x);
#B2: Biện luận pt theo a và b
#TH 1:phương trình không có tham số m
if type(a,'numeric') then
if a<> 0 then
printf("%s %s" , "phương trình có nghiệm x=",convert(-b/a,string));

else
if b=0 then
printf("phương trình vô số nghiệm");
else
printf("phương trình vô nghiệm") ;
end if
end if
#TH 2: phương trình có tham số m
else
listm:={solve(a)}; #danh sách chứa nghiệm của m
#TH a<>0
printf("%s %s %s %s" , "Nếu m <>",convert(listm,string),"thì phương
trình có nghiệm x=",convert(-b/a,string));
#TH a=0
for i from 1 to nops(listm)do
t:=subs(m = listm[i], b);
printf("%s %s %s %s","Nếu m=",convert(listm[i],string),", thế
b=",convert(t,string));
if t = 0 then
printf(" thì phương trình vô số nghiệm");
else
printf(" thì phương trình vô nghiệm") ;
end if
end do;
end if;
end proc:
II.1.5. Dữ liệu thử nghiệm
> giaiptbac1(m*(x-4)=5*x-2);
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 7
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn

Nhơn
Nếu m <> {5} thì phương trình có nghiệm x= -(-4*m+2)/(m-5)
Nếu m= 5 , thế b= -18 thì phương trình vô nghiệm
> giaiptbac1(m^2 *x +2=x+2*m);
Nếu m <> {-1, 1} thì phương trình có nghiệm x= -(2-2*m)/(m^2-1)
Nếu m= -1 , thế b= 4 thì phương trình vô nghiệm
Nếu m= 1 , thế b= 0 thì phương trình vô số nghiệm
II.2. Giải và biện luận phương trình bậc hai 1 ẩn số theo tham số m
II.2.1. Phân tích yêu cầu
Cho phương trình bậc hai 1 ẩn số có dạng ax
2
+ bx + c =0 theo tham số m.
Yêu cầu: Giải và biện luận phương trình bậc hai trên.
II.2.2. Cấu trúc dữ liệu
- Phương trình bậc hai được lưu trữ dưới dạng hàm số f:= ax
2
+ bx + c
- Dùng cấu trúc rẽ nhánh if, cấu trúc lặp for để giải và biện luận phương
trình.
- Dùng danh sách tập hợp để lưu trữ danh sách nghiệm.
II.2.3. Thuật giải
Input: phương trình bậc hai 1 ẩn số theo tham số m.
Output: giải và biện luận phương trình.
Bước 1: Đưa phương trình về dạng ax
2
+ bx + c=0
Bước 2: Biện luận phương trình theo a, b và c:
- Trường hợp 1: phương trình không có tham số m theo a:
- Nếu a =0 thì trở về phương trình bậc 1.
- Ngược lại (tức a <>0) thì:

+ Tính delta:=b
2
-4ac
+ Trường hợp 1a: Nếu delta không có tham số m thì xét dấu delta:
Nếu delta>0 thì ,
Ngược lại, nếu delta=0 thì ,
Ngược lại (delta<0) thì phương trình vô nghiệm.
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 8
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
+ Trường hợp 1b: delta có tham số m thì biện luận delta theo m:
Tính giá trị m theo delta (m có thể có nhiều giá trị).
Xét từng giá trị của m:
Nếu m<0: phương trình vô nghiệm.
Nếu m=0: tính nghiệm kép
Nếu m>0: tính 2 nghiệm phân biệt:
- Trường hợp 2: phương trình có tham số m theo a:
- Nếu a=0:
Tính giá trị m theo a (m có thể có nhiều giá trị).
Thế từng giá trị của m vào phương trình, trở về phương trình bậc 1.
- Nếu a <>0 thì biện luận delta theo tham số m (giống trường hợp 1b).
Bước 3: Kết luận nghiệm của phương trình.
II.2.4. Thủ tục
giaiptbac2:=proc(pt)
local f,a,b,c,d,x1,x2,t,listm,i,f1;
#B1: đưa pt về dạng ax^2 +bx +c =0
f:=lhs(pt)- rhs(pt); a:=coeff(f,x^2); b:=coeff(f,x); c:=expand(f-a*x^2 - b*x);
#B2: Biện luận pt theo a, b và c
if type(a,'numeric') then #TH 1 phương trình không có tham số m ở a
if a=0 then

giaiptbac1(pt); #trở về pt bậc 1
else
d:=b*b - 4*a*c;
if type(d,'numeric') then #xét TH delta có tham số m không?
#TH 1a: phương trình không có tham số m ở delta=>pt không có tham số m
if d>0 then
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
printf("%s %s %s %s","Phương trình có 2 nghiệm phân biệt
là",convert(x1,string),",",convert(x2,string));
else
if d=0 then
x1:=-b/(2*a);
printf("%s %s","Phương trình có nghiệm kép là",convert(x1,string));
else
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 9
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
printf("Phương trình vô nghiệm");
end if;
end if;
else #TH 1b: phương trình có tham số m ở delta =>biện luận pt theo delta
xetdelta(d,a,b,c); # thủ tục tính từng giá trị nghiệm m của delta
else #TH2: phương trình có tham số m ở a
#TH a=0
listm:={solve(a)};
for i from 1 to nops(listm)do
f1:=subs(m = listm[i],pt); #thế giá trị m vào phương trình
printf("%s %s %s %s %s","Khi ",convert(a,string),"=0 =>
m=",convert(listm[i],string),": ");

giaiptbac1(f1);
end do;
#TH a<>0: tính delta, xét dấu delta
xetdelta(d,a,b,c); # thủ tục tính từng giá trị nghiệm m của delta
end if;
end proc:
II.2.5. Dữ liệu thử nghiệm
> giaiptbac2(x^2-1=2*m*x-2*m);
Khi m< 1 : phương trình vô nghiệm
Khi m= 1 : phương trình có nghiệm kép x= 1
Khi m> 1 : phương trình có 2 nghiệm phân biệt
> giaiptbac2((m-2)*x^2-2*(m+1)*x=5-m);
Khi m-2 =0 => m= 2 : phương trình có nghiệm x= -1/2
Khi m< 1 : phương trình vô nghiệm
Khi m= 1 : phương trình có nghiệm kép x= -2
Khi m> 1 : phương trình có 2 nghiệm phân biệt
II.3. Giải và biện luận hệ phương trình bậc nhất có 2 hoặc 3 ẩn số theo tham
số m
II.3.1. Phân tích yêu cầu
Cho hệ phương trình bậc nhất có 2 hoặc 3 ẩn số theo tham số m.
Yêu cầu: Giải và biện luận phương trình bậc nhất trên.
II.3.2. Cấu trúc dữ liệu
- Hệ phương trình bậc nhất được lưu trữ dưới dạng chuỗi.
- Sử dụng mảng 2 chiều để lưu trữ các ma trận hệ số.
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 10
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
- Dùng cấu trúc rẽ nhánh if, cấu trúc lặp for để giải và biện luận phương
trình.
- Dùng danh sách tập hợp để lưu trữ danh sách nghiệm.

II.3.3. Thuật giải
Dùng phương pháp Cramer để giải và biện luận hệ phương trình.
Input: hệ phương trình bậc nhất có 2 hoặc 3 ẩn số theo tham số m.
Output: giải và biện luận hệ phương trình.
Bước 1: Đưa hệ phương trình về dạng
hoặc
Bước 2: Biện luận hệ phương trình:
- Tính ma trận hệ số A, tính định thức detA, nếu det A>0 thì dùng
phương pháp Cramer để giải và biện luận phương trình, ngược lại thì dừng chương
trình.
- Tính ma trận Aj (A1, A2, A3) bằng cách thay cột thứ j bởi cột các hệ
số tự do, tính định thức detA1, detA2, detA3 (trường hợp hệ phương trình 2 ẩn số
thì không tính detA3).
- Tính giá trị m theo detA (m có thể có nhiều giá trị).
- Xét từng giá trị m:
+ Nếu detA <>0: tính nghiệm x, y, z tùy theo hệ phương trình có 2
hoặc 3 ẩn số. Nghiệm được tính theo công thức sau:
x:=detA1/detA
y:=detA2/detA
z:=detA3/detA
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 11
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
+ Nếu detA=0:
Thế giá trị m vào detA1.
Nếu detA1<>0 thì kết luận vô nghiệm
Ngược lại nếu detA2=detA3=0 thì tính nghiệm.
Bước 3: Kết luận nghiệm của hệ phương trình.
Hạn chế của giải thuật này là chỉ giải và biện luận hệ phương trình bậc
nhất có 2 hoặc 3 ẩn số, chưa giải được hệ phương trình có nhiều hơn 3 ẩn số và hệ

phương trình bậc hai, bậc ba, …
II.3.4. Thủ tục
giaiheptbac1:=proc(hept)
local he1,he2,i,j,k,l,o,pt,f,x,y,z,t,dx,dy,dz,mang,d,c,mt,matran, A,A1,A2,A3,DetA,
DetA1, DetA2,DetA3,listm,q;
#Bước 1: Đưa hệ phương trình về đúng dạng theo yêu cầu
d:=1; he1:=hept; i:=searchtext(";",he1); dx:=0;dy:=0;dz:=0;
while i>0 do
pt:=substring(he1,1 i-1); j:=searchtext("x",pt);
if j=0 then
mang[d,1]:=0; dx:=dx+1; #để ktra nếu tất cả cột x=0 thì xóa
else
mang[d,1]:=parse(substring(pt,1 j-2));
end if;
k:=searchtext("y",pt);
if k=0 then
mang[d,2]:=0; dy:=dy+1;
else
mang[d,2]:=parse(substring(pt,(j+1) (k-2)));
end if;
l:=searchtext("z",pt);
if l=0 then
mang[d,3]:=0; dz:=dz+1;
else
mang[d,3]:=parse(substring(pt,(k+1) (l-2)));
end if;
o:=searchtext("=",pt); mang[d,4]:=parse(substring(pt,(o+1) length(pt)));
d:=d+1; #tăng số dòng, tức là số lượng phương trình
#xóa phương trình trước đó
he2:= Delete(he1,1 i); #xóa từ đầu đến dấu ;

he1:=he2; i:=searchtext(";", he1);
od;
#số cột hiện tại =4;
c:=4;
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 12
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
#Bước 2:
#Đổ mảng 2 chiều vào ma trận
mt:=Matrix(d-1,4,mang);
matran:=Matrix(d-1,4,mang);#TH không xóa cột nào
#để ma trận vuông:kiểm tra nếu cột nào toàn 0 hết thì xóa cột đó ra (trừ cột cuối)
if dx=d-1 then
matran:=DeleteColumn(mt,[1]);
c:=c-1;
end if;
if dy=d-1 then
matran:=DeleteColumn(mt,[2]);
c:=c-1;
end if;
if dz=d-1 then
matran:=DeleteColumn(mt,[3]);
c:=c-1;
end if;
#Tính ma trận A, A1, A2, A3 dựa vào ma trận
#A: xoá cột tự do d (cột cuối):
A:=DeleteColumn(matran, c);
DetA:=Determinant(A); #ma trận vuông thì mới tính được
#A1: hoán vị cột hệ số tự do vào cột x, xóa cột x(cột cuối),
A1:=DeleteColumn(swapcol(matran,1,c), c);

DetA1:=Determinant(A1);
#A2: hoán vị cột hệ số tự do vào cột y, xóa cột y(cột cuối),
A2:=DeleteColumn(swapcol(matran,2,c), c);
DetA2:=Determinant(A2);
if c=4 then #TH đủ cột
#A3: hoán vị cột hệ số tự do vào cột z, xóa cột z(cột cuối),
A3:=DeleteColumn(swapcol(matran,3,c), c);
DetA3:=Determinant(A3);
#tính cột tự do lưu vào q
q:=DeleteColumn(matran,[1,2,3]);
else
q:=DeleteColumn(matran,[1,2]);
end if;
#Tính nghiệm của detA, sau đó xét nghiệm khác 0 và =0
listm:={solve(DetA=0)};
for i from 1 to nops(listm)do
#TH detA<>0
x:=DetA1/DetA;
y:=DetA2/DetA;
printf("%s %s %s","Khi Det(A)<>",convert(listm[i],string),": phương trình
có nghiệm:");
printf("%s %s"," x=",convert(x,string));
printf("%s %s", " y=",convert(y,string));
if c=4 then #TH đủ cột
z:=DetA3/DetA;
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 13
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
printf("%s %s"," z=",convert(z,string));
end if;

#TH detaA=0, thế nghiệm m vào detA1
if subs(m = listm[i],DetA1) <>0 then #Khác 0 thì vô nghiệm
printf("%s %s %s %s %s","Khi Det(A)=",convert(listm[i],string),",thế vào
tính DetA1=",convert(subs(m = listm[i],DetA1),string),"thì phương trình vô nghiệm");
else #Th =0 thì thế vào DetA2 và DetA3 để kiểm tra, nếu =0 thì tính nghiệm
if subs(m = listm[i],DetA2) =0 and subs(m = listm[i],DetA3) =0 then
#tính nghiệm
if c=4 then
j:=vector(3,q);
else
j:=vector(2,q);
end if;
#thế m vào ma trận A
printf("%s %s %s","Khi Det(A)=",convert(listm[i],string),",thế vào tính
DetA1=DetA2=DetA3=0, khi đó nghiệm của hệ là:");
linsolve(subs(m=listm[i],A),j);
end if;
end if;
od;
end proc:
II.3.5. Dữ liệu thử nghiệm
> giaiheptbac1("(m-1)*x+2*y=2*m+1;m*x-3*y=0;");
Khi Det(A)<> 3/5 : phương trình có nghiệm:
x= (-6*m-3)/(-5*m+3)
y= -(2*m+1)*m/(-5*m+3)
Khi Det(A)= 3/5 ,thế vào tính DetA1= -33/5 thì phương trình vô nghiệm
> giaiheptbac1("1*x+2*y+2*z=0;-2*x+(m-2)*y+(m-5)*z=2;m*x+1*y+(m+1)*z=-2;");
Khi Det(A)<> 1 : phương trình có nghiệm:
x= (12-4*m)/(m^2-4*m+3)
y= 0

z= (2*m-6)/(m^2-4*m+3)
Khi Det(A)= 1 ,thế vào tính DetA1= 8 thì phương trình vô nghiệm
Khi Det(A)<> 3 : phương trình có nghiệm:
x= (12-4*m)/(m^2-4*m+3)
y= 0
z= (2*m-6)/(m^2-4*m+3)
Khi Det(A)= 3 ,thế vào tính DetA1=DetA2=DetA3=0, khi đó nghiệm của hệ là:
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 14
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
KẾT LUẬN
Do bước đầu giải và biện luận phương trình, hệ phương trình trên phần mềm
Maple nên bài thu hoạch của em vẫn còn một số hạn chế, trong thời gian ngắn em
chưa giải và biện luận được phương trình, hệ phương trình bậc cao hơn.
Trong bài thu hoạch này em đã trình bày được cấu trúc lưu trữ, xây dựng
giải thuật để giải và biện luận phương trình, hệ phương trình; cài đặt chương trình
bằng phần mềm Maple 16.
Hướng phát triển của bài thu hoạch này là em sẽ viết thêm chương trình để
giải được phương trình, hệ phương trình bậc cao và bất phương trình, hệ bất
phương trình bậc cao .
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 15
Bài thu hoạch môn Lập trình Symbolic cho TTNT GVHD: PGS.TS. Đỗ Văn
Nhơn
TÀI LIỆU THAM KHẢO
1. PGS.TS Đỗ Văn Nhơn, Bài giảng môn lập trình Symbolic cho TTNT.
2. Nguyễn Ngọc Trung, Giáo trình Maple, Đại học sư phạm Tp. HCM.
3. Hoàng Kiếm, Giáo trình Các hệ Cơ sở Tri thức, NXB ĐHQG, 2006.
4. Nguyễn Chánh Tú, Sử dụng Maple trong học tập, nghiên cứu và giảng dạy
toán, Khoa Toán – Đại học sư phạm Huế.
5. M.B. monagan, K.O. Geddes, G. Labahn, S.M. Vorkoetter, J. Maccarron, P.

Demarco. Maple 9 – Introductory Programming Guide. Waterloo Maple
Inc. (2003).
6. Heck .A, Introduction to Maple,Springer – Verlag, New York, Inc. 1996.
Cao Thị Thuỳ Linh – MSHV: CH1101099 Trang 16

×