1. Trang chủ
  2. » Giáo án - Bài giảng

tự học maple

43 435 7

Đ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 43
Dung lượng 1,17 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

+ 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ị gói plots, hình học giải tích gói geometry, đại số tuyến tính gói linalg, GiảI tích gói student,

Trang 1

TRƯỜNG ĐẠI HỌC ĐÀ LẠT KHOA TOÁN - TIN HỌC

Y Z

VÕ TIẾN

GIỚI THIỆU PHẦN MỀM TOÁN HỌC

(Bài Giảng Tóm Tắt)

Lưu hành nội bộ

Y Đà Lạt 2008 Z

Trang 2

MỤC LỤC

Trang 3

CHƯƠNG 1 CÁC TÍNH TOÁN CƠ BẢN

A SỐ HỌC:

I GIỚI THIỆU VỀ MAPLE

• Maple là một phần mềm Toán học do Đại Học Tổng Hợp Waterloo(Canada) xây dựng và đưa vào sử dụng năm 1985 Sau nhiều lần cải tiến và phát triển qua nhiều phiên bản khác nhau và ngày càng được hoàn thiện, hiện nay đã có Maple 11

• Với phần mềm Maple, chúng ta có thể:

+ 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ị (gói plots), hình học giải tích (gói geometry), đại số tuyến tính (gói linalg), GiảI tích (gói student), phương trình vi phân(gói DEtools), lý thuyết số(gói numtheory), Dữ liệu rời rạc(gói DiscreteTransforms),

+ Thiết kế các đối tượng 3 chiều

Warning, the name arrow has been redefined

animate animate3d animatecurve arrow changecoords complexplot complexplot3d, , , , , , ,

[

conformal conformal3d contourplot contourplot3d coordplot coordplot3d, , , , , ,

cylinderplot densityplot display display3d fieldplot fieldplot3d gradplot, , , , , , ,

gradplot3d implicitplot implicitplot3d inequal listcontplot listcontplot3d, , , , , ,

listdensityplot listplot listplot3d loglogplot logplot matrixplot odeplot pareto, , , , , , , ,

pointplot pointplot3d polarplot polygonplot polygonplot3d polyhedra_supported, , , , , ,

polyhedraplot replot rootlocus semilogplot setoptions setoptions3d spacecurve, , , , , , ,

sparsematrixplot sphereplot surfdata textplot textplot3d tubeplot, , , , , ]

Trang 4

arc arrow circle cone cuboid curve cutin cutout cylinder disk dodecahedron, , , , , , , , , , ,

[

ellipse ellipticArc hemisphere hexahedron homothety hyperbola icosahedron, , , , , , ,

line octahedron pieslice point polygon project rectangle reflect rotate scale, , , , , , , , , ,

semitorus sphere stellate tetrahedron torus transform translate vrml, , , , , , , ]

completesquare distance equate integrand intercept intparts leftbox leftsum, , , , , , , ,

makeproc middlebox middlesum midpoint powsubs rightbox rightsum, , , , , , ,

showtangent simpson slope summand trapezoid, , , , ]

> diff(sin(2*x^2-1),x):

> int(sin(x)*cos(x)^2,x);

¾ Thiết kế đối tượng 3 chiều:

>tubeplot([10*cos(t),10*sin(t),0,t=0 2*Pi,radius=2*cos(7*t),numpoints=120,tubepoin ts=24],scaling=CONSTRAINED);

>tubeplot({[10*cos(t),10*sin(t),0,t=0 2*Pi,radius=2*cos(7*t),numpoints=120,tubepoi nts=24],[0,10+5*cos(t),5*sin(t),t=0 2*Pi,radius=1.5,numpoints=50,tubepoints=18]}, scaling=CONSTRAINED);

Chú ý : + Bắt đầu một tính toán mới dùng : restart; để xóa các dữ liệu cũ

+ Mở gói : with(têngói); Đóng 1gói : unwith(têngói );

+ Hiển thị các gói đang mở :packages();

II TÍNH TOÁN SỐ HỌC THÔNG DỤNG

Trang 5

- trunc(x) : số nguyên lớn nhất, nhỏ hơn hoặc bằng x nếu >= 0, trunc(x)=-trunc(-x)với

x<0

- round(x) làm trịn thành số nguyên gần x nhất

- frac(x) phần thập phân của x ,dạng phân số , frac(x) = x - trunc(x)

- floor(x) Số nguyên lớn nhất, nhỏ hơn hoặc bằng x

- ceil(x) Số nguyên nhỏ nhất, lớn hơn hoặc bằng x

- exp(x), hàm ex , e = 2.718281828

- n! hay factorial(n) : hàm giai thừa

- ilog[b](x) hàm cho phần nguyên của logarit cơ số b, mặc nhiên cơ số exp(1)

Nếu x thực, ilog[b](x) trả về r mà b^r <= abs(x) < b^(r+1)

• ilog2(x) số nguyên logarit cơ số 2 của x

Nếu x số thực và r = ilog2(x), thì r hoặc nguyên hoặc giá trị kí hiệu đặc biệt thỏa

2^r <= abs(x) < 2^(r+1)

Nếu x số phức, ilog2(x) trả về max(ilog2(Re(x)), ilog2(Im(x)))

Nếu x là kí hiệu đặc biệt, thì kết quả chỉ định được trả vềâ'

- ln(x) logarit Nepe (cơ số exp(1) = 2.7182818284590452354 )

• log[b](x) = y <==> x = b^y với log[b](x) = ln(x)/ln(b)

• log10(x) = log[10](x)

• max(x1, x2, ); min(x1, x2, ); maximum/minimum của dãy giá trị thực

Chú ý : max(); cho -∞ và min() cho ∞

- signum() Hàm dấu

- sqrt(x) Căn bậc 2

- surd(x,n) Căn bậc n của x, n lẻ -∞ < x <+∞

- root(x,n) hay root[n](x)

root(x,n,symbolic) hay root[n](x,symbolic) : Căn bậc n của của biếu thức đại số

Chú ý : root(x,n) = exp(1/n * ln(x))

Trang 6

- Các hàm lượng giác và hyperbolic lượng giác:

sin, cos, tan, sec,csc, cot, sinh, cosh, tanh, sech, csch, coth

- Hàm lượng giác ngược và hyperbolic lượng giác ngược:

arcsin, arccos, arctan, arcsec, arccsc, arccot, arcsinh, arccosh, arctanh, arcsech,

- Cú pháp 1: evalf(bieu_thuc) - tính toán chính xác giá trị của biểu thức và biểu diễn kết

quả với mặc định là 10 chữ số Ta có thể thay mặc định bằng Digits=n;

- Cú pháp 2: evalf(bieu_thuc, k) - tính toán chính xác giá trị của biểu thức và biểu diễn

3 Các thao tác với số nguyên tố

- Phân tích một số n thành thừa số nguyên tố: hàm ifactor(n);

- Kiểm tra một số n có phải là số nguyên tố không?: hàm isprime(n);

- Tìm số nguyên tố đứng sau một số n cho trước: hàm nextprime(n);

- Tìm số nguyên tố đứng trước một số n cho trước: hàm prevprime(n);

- Tìm ước số chung lớn nhất của 2 số nguyên dương a, b: hàm igcd(a,b);

- Tìm bội số chung nhỏ nhất của 2 số nguyên dương a, b: hàm ilcm(a,b);

- Tìm số dư khi chia a cho b: hàm irem(a,b);

- Tìm thương nguyên khi chia a cho b: hàm iquo(a,b);

Trang 7

- Cú pháp 1: isolve(phuong_trinh/he_phuong_trinh);

- Cú pháp 2: isolve(phuong_trinh/he_phuong_trinh, danh_sach_tham_so);

> isolve({x^2+y^2=50,x+y=8},(x,y});

> isolve(x^2+y^2=5,{x,y});

• Giải PT hay hệ PT theo modulo :

msolve(eqns,vars,m); hay msolve(eqns,m);

6 Khái niệm biến số, hằng số

- Trong Maple, biến số không cần khai báo, định nghĩa trước, dùng lúc nào khai báo lúc

đó, Maple nhớ và ghi lại trong quá trình làm việc

- Biến số, hằng số được đặt tên thỏa mãn một số quy tắc sau:

+ Không bắt đầu bằng chữ số Bắt đầu bằng ký tự chữ

+ Không chứa khoảng trắng và một số ký tự đặc biệt như: %,^,&,*,$,#,

+ Không được trùng với tên một số hàm và lệnh của Maple: D, sin, cos, ln, min, max, for,if, while, I, Pi,

- Một biến số sẽ trở thành hằng số ngay khi nó được gán cho một giá trị nào đó

- Nếu muốn biến một hằng số trở lại biến số, ta dùng phép gán: ten_bien:='ten_bien';

> isolve({x+y=36,2*x+4*y=100}):

> x:=2;

Trang 8

2/ Dùng cặp ` ` để đặt tên "sai" VD : `day la ten `

3/ Để biến trở lại tên ta dùng : unassign('name1', 'name2', );

assign(a, B); hay assign(a = B); cho a := B;

assign(A, B) ; A, B là các đối tượng,v d: > assign(('a', 'b') = (3, 4));

assigned(n); kiểm tra n đã gán trị chưa

7 Tính tổng và tích

• Tính tổng: sum (tính trực tiếp ra kết quả) ;

hoặc Sum(biểu diễn dạng công thức);

Cú pháp: sum(bieu_thuc_trong_tong, bien =gia_tri_dau gia_tri_cuoi);

Sum(bieu_thuc_trong_tong, bien =gia_tri_dau gia_tri_cuoi);

Hay add(bt, i=m n);

• Tính tích: product (tính trực tiếp ra kết quả);

hoặc Product (biểu diễn dạng công thức);

Cú pháp: product(bieu_thuc_trong_tong, bien =gia_tri_dau gia_tri_cuoi);

Product(bieu_thuc_trong_tong, bien =gia_tri_dau gia_tri_cuoi);

Hay mul(bt, i=m n);

Chú ý: giá trị vô cùng được biểu diễn bằng từ khóa infinity

>Sum( 2^(2*k)/Pi^(1/2),k=0 infinity) =sum(2^(2*k)/Pi^(1/2),k=0 infinity);

Chú ý : > sum(i^2,i); tương đương > sum(k^2,k=1 i-1);

• Dãy : seq(bt, i=1 n); seq(f, i = x) hay bt$i=1 n;

> seq( sin(Pi*i/6), i=0 6 );

Trang 9

, , , , , ,

0 12

Lệnh zip( f , u , v ); zip( f , u , v d ); thực hiện phép toán f trên 2 danh sách u,v Với d là

giá trị mặc nhiên cho dữ liệu danh sách ngắn hơn

Chú ý: select(f, e, b1, , bn); chọn dữ liệu từ biểu thức

remove(f, e, b1, , bn); di chuyển dữ liệu từ biểu thức

selectremove(f, e, b1, , bn): chọn và di chuyển dữ liệu từ biểu thức

f : biểu thức logic; e: biểu thức bất kỳ, b1, ,bn : các tùy chọn

Ví dụ : > integers := [$10 20];

:=

integers [ 10 11 12 13 14 15 16 17 18 19 20 , , , , , , , , , , ]

> select(isprime, integers); cho[ 11 13 17 19 , , , ]

> remove(isprime, integers); cho[ 10 12 14 15 16 18 20 , , , , , , ]

> selectremove(isprime, integers); cho[ 11 13 17 19 [ , , , ] , 10 12 14 15 16 18 20 , , , , , , ]

B ĐẠI SỐ :

1 Khai triển, đơn giản và phân tích biểu thức đại số

• Định giá biểu thức : value(%);

• Khai triển biểu thức đại số

- Cú pháp: expand(bieu_thuc_dai_so);

> expand(bt);

> bt:=(x+y)^15;

Trang 10

• Thay giá trị cho biến trong biểu thức

Cú pháp: subs(bien = gia_tri , bieu_thuc);

> subs( {x=y, y=x}, [x,y] );

Chú ý : eval(BT,x=a);# Tính toán biểu thức khi x=a hay Eval(bt,x=a);

Một số kiểu chuyển đổi: abs,algebraic, and, array, base, binary, binomial,

boolean_function, boolean_operator, bytes, Chebyshev, compose, confrac, D, decimal, degrees, diff, dimensions, elementary, exp, expln, expsincos, factorial, float, fullparfrac, hex, hexadecimal,Int, int, list, listlist,ln, Matrix,matrix,metric, name,octal, or, parfrac,

Trang 11

piecewise, polar, polynom,power, radians,radical, rational, ratpoly, RealRange, set, signum ,sincos, sqrfree,string, Sum,sum,surd, symbol, tan, trig, trigh, truefalse,Vector, vector, xor,`*`, `+`

> bt:=(a*x^2+b)/(x*(-3*x^2-x+4)):

> convert(bt,parfrac,x):

> bt:=(x^2-1)/(x+2);

> convert(bt,parfrac);

• Chuyển đổi và rút gọn : combine(f); hay combine(f,tên);

• Khử căn ở mẫu : radsimp(bt,ratdenom);

Cú pháp: ten_ham := bien -> piecewise(đk_1, bt_1, đk_2, bt_2, , đk_n, bt_n);

Ý nghĩa: nếu đk_i đúng thì hàm nhận giá trị là bt_i

> f:=x->piecewise(x<=-1,x^2-1,x<=1,-abs(x)+1,sin(x-1)/x);

> f(1);

• Các phép toán trên hàm : f+g, f-g, f*g, f/g, f@g , f@@(-1)

> (sin@@2)(Pi/2); tương dương sin(sin(Pi/2));

> (sin@@(-1))(Pi/2); cho arcsin(Pi/2)

3 Giải (bất) phương trình, hệ (bất) phương trình

• Sử dụng một lệnh chung duy nhất: lệnh solve

- Cú pháp: solve(phuong_trinh , {bien_1, bien_2, });

solve ({pt_1, pt_2, }, {bien_1, bien_2, });

solve(bat_phuong_trinh , {bien_1, bien_2, });

solve ({bpt_1, bpt_2, }, {bien_1, bien_2, });

Trang 12

• Giải gần đúng : fsolve( eqns, vars, options );

Trong đó : options:

avoid=s : tránh các nghiệm s dạng {var = value}

complex : Tìm nghiệm gần đúng trên trường C

fulldigits : mọi tính toán xấp xỉ trong fsolve dùng nhiều hơn kí số thập phân của Digits maxsols=n : tìm ít nhất n nghiệm của đa thức

Tìm nghiệm trên khoảng a b hay x = a b hay {x=a b, y=c d, }

expr assuming property;

expr assuming x1::prop1, x2::prop2,

Ví dụ : >assume(a>0, a<1); limit(a^n, n=infinity);

• Dư : rem(a, b, x); hay rem(a, b, x, 'q');

• Thương : quo(a, b, x); hay quo(a, b, x, 'r');

Trang 13

- Đặt màu cho đồ thị: color = <màu>

- Đặt độ dày k cho đồ thị: thickness = k

- Đặt số điểm vẽ cho đồ thị: numpoints = k;

Trang 15

• Vẽ đồ thị của hàm số không liên tục

Khi vẽ đồ thị của một hoặc nhiều hàm số có điểm gián đoạn, ta phải thêm tùy chọn

discont =true để đồ thị được vẽ chính xác hơn

> g:=x->(x^2-1)/(x-2):

> plot(g(x),x=-10 10,y=-5 15,discont=true,color=blue):

• Vẽ đồ thị hàm ẩn

Có những hàm số mà chúng ta không có được công thức tường minh y=f(x), khi đó để vẽ

được đồ thị của chúng, ta sẽ dùng hàm implicitplot

Cú pháp: implicitplot([bt_1, bt_2, ], x=gt_dau gt_cuoi, y=gt_dau gt_cuoi,

Trang 16

animate(ham_co_tham_so,x=gt_dau gt_cuoi, tham_so = gt_dau gt_cuoi);

animate3d(ham_co_tham_so,x=gt_dau gt_cuoi, y=gt_dau gt_cuoi, tham_so

Trang 17

CHƯƠNG 2 PHÉP TÍNH VI-TÍCH PHÂN

Ý nghĩa: tính giới hạn của ham_so khi x tiến đến a Kết quả được thể hiện dưới dạng

công thức(lệnh Limit) hoặc kết quả cụ thể (lệnh limit)

Diff(ham_so, bien); value(%);

Ý nghĩa: tính đạo hàm cấp 1 của ham_so theo bien Kết quả được thể hiện dưới dạng

công thức(lệnh Diff) hoặc kết quả cụ thể (lệnh diff)

> f := x->x^2*sqrt(x^2+1):

> Diff(f(x),x)= diff(f(x),x);

> simplify(%);

Trang 18

• Tính đạo hàm cấp cao

Cú pháp: diff(ham_so, bien, bien, bien, );

Diff(ham_so, bien, bien, bien, );

hoặc diff(ham_so, bien$k);

Diff(ham_so, bien$k);

Ý nghĩa: tính đạo hàm cấp k của ham_so theo bien Kết quả được thể hiện dưới dạng

công thức (lệnh Diff) hoặc kết quả cụ thể (lệnh diff)

implicitdiff({f1, ,fm}, {y1, ,yn}, {u1, ,ur}, x);

implicitdiff({f1, ,fm}, {y1, ,yn}, {u1, ,ur}, x1, ,xk);

Trang 19

Int(ham_so, bien); value(%);

Ý nghĩa: tính tích phân của ham_so theo bien Kết quả được thể hiện dưới dạng công

thức (lệnh Diff) hoặc kết quả cụ thể (lệnh diff)

Int(ham_so, bien=a b); value(%);

Ý nghĩa: tính tích phân của ham_so với bien đi từ a đến b Kết quả được thể hiện dưới

dạng công thức (lệnh Diff) hoặc kết quả cụ thể (lệnh diff)

Trang 20

+ Đổi biến : changevar(s, f); changevar(s, f, u); changevar(t, g, v);

Trong đó : s – dạng h(x) = g(u), f - Int(F(x), x = a b), u – biến mới

• Bài toán tính diện tích hình thang cong

Bài 1 Tính diện tích hình thang cong giới hạn bởi hàm số f(x)=3*x-x^3 , trục Ox và hai

đường thẳng x=0, x=1.Ta dùng int(abs(f(x)),x=a b);

Bài 3 Tính diện tích miền phẳng cho bởi tham số :x=x(t), y=y(t),a≤t≤b

S:=int(abs(y(t)*diff(x(t),t)),t=a b); hay S:=int(abs(x(t)*diff(y(t),t)),t=a b);

Bài 4 Tính diện tích miền phẳng cho bởi tọa độ cực::r=r(t),a≤t≤b

S:=1/2*int(r(t)^2,,t=a b);

Trang 21

Bài 5 Tính độ dài đường cong hàm số f(x):

+ Cho bởi y=f(x): L:= int(sqrt(1+diff(f(x),x)^2),x=a b);

+ Cho phương trình tham số x=x(t); y=y(t):

Bài 7 Tính diện tích mặt tròn xoay của hàm quay quanh trục Ox

S := int(2*Pi*abs(f(x))*sqrt(1+ diff(f(x),x)^2), x=a b);

• Bài toán khảo sát hàm số

#Chieu bien thien:

print(`Ham tang tren `);

Trang 22

#Mien xac dinh

real minus {solve(d*x+e=0,x)};

printf("\t \t x= %a",op([g])); fi;

print(`Tiem can Xien :`);

Trang 23

Tính tổng tích phân

+ Tính tổng :

leftsum(f(x), x=a b); hay leftsum(f(x), x=a b, n);

rightsum(f(x), x=a b); hay rightsum(f(x), x=a b, n);

middlesum(f(x), x=a b); hay middlesum(f(x), x=a b, n);

Ví dụ : > with(student):

> leftsum(x^k*ln(x), x=1 3);

1 2

leftbox(f(x), x=a b, <plot options>);

leftbox(f(x), x=a b, n, 'shading'=<color>, <plot options>);

rightbox(f(x), x=a b, <plot options>);

rightbox(f(x), x=a b, n, 'shading'=<color>, <plot options>);

middlebox(f(x), x=a b, <plot options>);

middlebox(f(x), x=a b, n, 'shading'=<color>, <plot options>);

Ví dụ : > with(student):leftsum(x^2,x=0 1,n); limit(A,n=infinity);

> middlebox(x^4*ln(x), x=2 4, color=YELLOW);

> middlebox(sin(x)*x+sin(x), x=0 2*Pi, 5, shading=BLUE);

> middlebox(sin(x)*x+sin(x), x=0 2*Pi, 5, color=GREEN);

+Tính xấp xỉ bằng phương pháp Simpson:

ApproximateInt(f(x), x = a b, method = simpson, opts);

ApproximateInt(f(x), a b, method = simpson, opts);

ApproximateInt(Int(f(x), x = a b), method = simpson, opts);

>ApproximateInt(sin(x), x=0 5, method = simpson);

>ApproximateInt(x*(x - 2)*(x - 3), x=0 5, method = simpson, output = plot);

>ApproximateInt(tan(x) - 2*x, x=-1 1, method = simpson, output = plot, partition = 50);

Ngày đăng: 22/10/2014, 21:00

Xem thêm

w