Thứ Ba, 21 tháng 1, 2014

TÌM HIỂU MAPLE ỨNG DỤNG TRONG GIẢI các bài TOÁN

Lập trình Symbolic & Trí tuệ nhân tạo PGS.TS Đỗ Văn Nhơn
I.2. Quy tắc gõ lệnh
Các lệnh của Maple được gõ sau dấu nhắc lệnh > , kết thúc lệnh bằng dấu chấm
phẩy (;) nếu muốn Maple hiển thị kết quả của việc tính toán, hoặc dấu hai chấm(:) nếu
chỉ yêu cầu Maple tính toán mà không hiển thị kết quả. Các bạn dùng phím Enter để
yêu cầu Maple bắt đầu thực hiện tính toán.
- Để viết các lời giải thích câu lệnh bạn có thể viết chúng sau dấu thăng (#).
- Để xuống dòng trên cùng một dấu nhắc lệnh dùng tổ hợp phím Shift-Enter.
- Để gán giá trị cho biến ta dùng dấu hai chấm bằng (:=) .
- Có thể gọi lại kết quả vừa thực hiện bằng lệnh % (%% lấy kết quả trước kết
quả vừa thực hiện ).
- Các lệnh của Maple có thể chỉnh sửa, copy,…
I.3. Các thành phần cơ sở của Maple
I.3.1. Tập ký tự
- Bao gồm bảng chữ cái tiếng Anh
HVTH: Đinh Đức Khoa - CH1102003
Trang: 4
Lập trình Symbolic & Trí tuệ nhân tạo PGS.TS Đỗ Văn Nhơn
Chữ hoa : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z.
Chữ thường : a b c d e f g h i j k l m n o p q r s t u v w x y z.
- Chữ số : 0, 1, 2, 3, 4,5, 6, 7, 8, 9.
Chú ý : Maple phân biệt chữ hoa – thường .
- Tập các ký hiệu đặc biệt :
I.3.2. Toán tử cơ bản
Phép toán Kí hiệu Phép toán Kí hiệu Phép toán Kí hiệu
Cộng + Nhân * Giai thừa !
Trừ - Chia / Mũ ^
I.3.3. Các hàm toán học cơ bản
Hàm Ý nghĩa Hàm Ý nghĩa Hàm Ý nghĩa
abs(x) │x│ Sqrt(x) √x Exp(x) e
x
In(x) Log
e
(x) log10(x) log
10
(x)
Max(x1,x2 ) Tính giá trị
lớn nhấn của
x1, x2
Min(x1,x2 ) Tính giá trị
nhỏ nhấn của
x1, x2
Round(x) Hàm làm
tròn giá trị x
sin(x) Sin(x) cos(x) Cos(x) tan(x) Tg(x)
arcsin(x) Arcsin(x) arccos(x) Arccos(x) arctan(x) Arctg(x)
I.4. Tính toán trên Maple
- Maple có khả năng tính toán với những con số rất lớn với độ chính xác cao.
> 1000000!:# Tinh 1000000!
HVTH: Đinh Đức Khoa - CH1102003
Trang: 5
Lập trình Symbolic & Trí tuệ nhân tạo PGS.TS Đỗ Văn Nhơn
> length(%);#Chieu dai cua 1000000!
5565709
- Maple có đầy đủ các hàm tính toán từ đơn giản đến phức tạp.
> 2011+2012;
4023
> 30*11*2011;
663630
I.4.1. Tính toán trên số nguyên
Các hàm thông dụng :
Hàm Ý nghĩa Hàm Ý nghĩa Hàm Ý nghĩa
factorial(n) Tính n giai
thừa
isqrt(n) Căn bậc hai
nguyên của
n
iroot(x,n) Căn bậc n
nguyên của x
ifactor(n) Phân tích n
thành tích
các thừa số
nguyên tố
irem(m,n) Số dƣ khi
chia m cho
n
iquo(m,n) Thương khi
chia m cho n
igcd(x1,x2,
)
Ước số
chung lớn
nhất của x1
, x2,
ilcm(x1,x2, ) Bội số
chung nhỏ
nhất của x1 ,
x2,
m mod n Số dƣ khi
chia m cho n
Ví dụ :
> factorial(5);
120
> ifactor(%);
(2)
3
(3) (5)
> isprime(17);
true
> nextprime(17);
19
> prevprime(17);
13
HVTH: Đinh Đức Khoa - CH1102003
Trang: 6
Lập trình Symbolic & Trí tuệ nhân tạo PGS.TS Đỗ Văn Nhơn
> isqrt(12);
3
> igcd(24,18);
6
> a:=123:b:=32:
>irem(a,b);
>iquo(a,b);
27
I.4.2. Tính toán trên biểu thức
Hàm Ý nghĩa Hàm Ý nghĩa Hàm Ý nghĩa
expand(bt) Khai triển
biểu thức bt
simplify(bt) Đơn giản biểu
thức
factor(bt) Phân tích
đa thức
thành
nhân tử
nomal(pt) Tối giản
phân thức
divide(bt1,b
t2)
Kiểm tra xem
bt1 có chia hết
cho bt2
không?
subs([x1=a1,
x2=a2, ],f(x
1,x2, ))
Tính giá
trị của
f(x1,x2,
) với
x1=a1,x2
=a2
collect
(bt,x)
Gom hạng
tử của bt
theo biến x
degree(bt) Bậc của đa
thức bt
coeff(bt,x^n
)
Hệ số của
x^n trong
đa thức bt
Ví dụ :
> bt1:=(x+y)*(2*x-1);
bt:= (x + y) ( 2x - 1 )
> expand(bt1);
2x
2
- x + 2yx - y
> collect(bt1,x);
2x2 + (2y - 1) x - y
> bt2:=(x+y)^3 - (x^2 + 2*y^2)*(x+3*y);
bt:= (x + y)
3
- (x
2
+ 2y
2
) (x +3y)
> simplify(bt2);
xy
2
- 5y
3
> subs(x=3,y=5,bt);
HVTH: Đinh Đức Khoa - CH1102003
Trang: 7
Lập trình Symbolic & Trí tuệ nhân tạo PGS.TS Đỗ Văn Nhơn
40
I.5. Giới hạn, đạo hàm và tích phân
I.5.1. Tính giới hạn
- Cú pháp : limit(f(x),x=a); // Muốn xuất ra biểu thức tính giới hạn ta dùng
Limit(f(x),x=a).
- Tính giới hạn bên trái : limit(f(x),x=a,left);
- Tính giới hạn bên phải : limit(f(x),x=a,right);
> limit(sin(x)/x,x=0);
1
> Limit(sin(x)/abs(x),x=0)=limit(sin(x)/abs(x),x=0);
> limit(sin(x)/abs(x),x=0,left);
-1
> limit(sin(x)/abs(x),x=0,right);
1
I.5.2. Tính đạo hàm
- Đạo hàm cấp 1 : diff(f,x);
- Đạo hàm cấp n : diff(f,x$n);
- Đạo hàm riêng : diff(f, x1$n, [x2$n, x3], xj, [xk$m])
> diff(x*sin(x),x);
sin(x) + x cos(x)
> diff(x^5,x$3);
60x
2
> diff(f(x),x$3);
> diff(f(x,y),x);
HVTH: Đinh Đức Khoa - CH1102003
Trang: 8
Lập trình Symbolic & Trí tuệ nhân tạo PGS.TS Đỗ Văn Nhơn
> diff(f(x,y),y);
> diff(f(x,y),[x,y]);
> diff(x^3*sin(y),x$2,y);
6x cos (y)
I.5.3. Tính nguyên hàm và tích phân
- Tính nguyên hàm : int(f,x);
- Tính tích phân cận a,b : int(f,x=a b);
> int(sin(x)*tan(x),x);
- sin(x) + ln (sec(x) sinx + tan(x))
> int(sin(x)*exp(x),x=1 3);
> int( exp(-x^2)*ln(x), x=0 infinity );
I.4.4. Tính toán trên ma trận
I.4.4.1. Khai báo ma trận :
Có 2 cách:
Cách 1 : A:=matrix(m,n, [ dãy phần tử]) ;// dãy phần tử cách nhau bởi dấu phẩy (,).
> A:=matrix(2,2,[sin(x),cos(x),sin(2*x),cos(2*x)]);
A:=
Cách 2 : A:=array( [ [Dòng 1], [Dòng 2], ,[Dòng n] ] );
HVTH: Đinh Đức Khoa - CH1102003
Trang: 9
Lập trình Symbolic & Trí tuệ nhân tạo PGS.TS Đỗ Văn Nhơn
> A:=array([[1,2,3],[4,5,6]]);
A:=
I.4.4.2. Các phép toán trên ma trận
- Các phép toán trên ma trận nằm trong gói LinearAlgebra. Để sử dụng ta dùng
gói lệnh ta dùng with(gói lệnh) .
- Phép cộng, nhân ma trận : lệnh evalm;
> with(linalg): > A:=matrix(2,2,[1,x,2,1-x]):
> B:=matrix(2,2,[1,0,2,1]):
> evalm(A+B);
> evalm(A&*B);
- Tạo ma trận đơn vị cấp n : IdentityMatrix ( n );
> IdentityMatrix(4);
- Tính định thức của ma trận A: det(A);
> A:=matrix(2,2,[1,x,2,1-x]);
> det(A);
1 - 3x
- Tính hạng của ma trận A: rank(A);
> rank(A);
2
HVTH: Đinh Đức Khoa - CH1102003
Trang: 10
Lập trình Symbolic & Trí tuệ nhân tạo PGS.TS Đỗ Văn Nhơn
- Tìm ma trận nghịch đảo của ma trận A: inverse(A) ;
> inverse(A);
I.6. Đồ thị hàm số
I.6.1. Hàm một biến : đồ thị 2D
Cú pháp : plot(f , x = a b );
Ý nghĩa: Vẽ đồ thị hàm số f theo biến x trên miền [a;b].Nếu không khai báo miền
giá trị của x thì Maple mặc định là [-10;10].
> plot(sin(x),x=-Pi Pi);
> plot(cos(x)+sin(x));
HVTH: Đinh Đức Khoa - CH1102003
Trang: 11
Lập trình Symbolic & Trí tuệ nhân tạo PGS.TS Đỗ Văn Nhơn
I.6.2. Hàm hai biến : đồ thị 3D
- Cú pháp : plot3d(f , x = a b );
> plot3d({sin(x*y), x + 2*y}, x=-Pi Pi, y=-Pi Pi);
> plot3d(x*exp(-x^2-y^2), x=-2 2, y=-2 2, color=x);
HVTH: Đinh Đức Khoa - CH1102003
Trang: 12
Lập trình Symbolic & Trí tuệ nhân tạo PGS.TS Đỗ Văn Nhơn
PHẦN II. ỨNG DỤNG MAPLE ĐỂ GIẢI CÁC BÀI
TOÁN TRONG ĐẠI SỐ TUYẾN TÍNH

II.1. Số phức
- Trong Maple quy định số phức i là I
II.1.1. Tạo số phức
Ta có các lệnh cơ bản sau :
- Để gán biến z là số phức a + bi ta nhập lệnh: z:=a+b*I.
- Để tạo số phức a +bi ta nhập lệnh: complex(a,b).
- Để tạo số phức bi ta nhập lệnh: complex(b).
II.1.2. Các phép toán trên số phức
Các phép toán cộng, trừ, nhân, chia hay lũy thừa tương ứng là các ký hiệu +,
-,*, /. Nhưng thông thường kết quả thu được khi ta thực hiện những phép toán trên các
số phức không phải là dạng đại số do đó ta sử dụng hàm sau để cho kết quả dạng đại
số như mong muốn: evalc(…)
- Để xác định phần thực của z ta nhập lệnh: re(z);
- Để xác định phần ảo của z ta nhập lệnh: im(z);
- Để xác định modun của z ta nhập lệnh: abs(z);
- Để xác định argument của z ta nhập lệnh: argument(z);
- Để xác định số phức liên hợp của z ta nhập lệnh: conjugate(z);
- Để đơn giản biểu thức ta nhập lệnh: simplify(expr) với expr là biểu thức.
II.1.3. Căn của số phức, giải phương trình và hệ phương trình
- Để xác định căn bậc n của số phức ta nhập lệnh: solve(x^n=z,x)
- Để giải phương trình hay hệ phương trình hoặc hệ bất phương trình eqns với
các biến vars. Nếu có nhiều phương trình hoặc bất phương trình thì eqns là
{eqn1,eqn2,…}; nếu nhiều biến thì vars là {var1,var2…} với dòng lệnh sau đây:
solve(eqns,vars)
HVTH: Đinh Đức Khoa - CH1102003
Trang: 13

Không có nhận xét nào:

Đăng nhận xét