Lap Trinh Tinh Toan Maple

Embed Size (px)

Citation preview

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    1/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    1

    CHNG I

    M AU

    1. M au

    2. Mot so v du

    2.1 a thc2.2 Tha so2.3 Ch dan2.4 Cac con so2.5 Giai tch

    2.5.1 Vi phan2.5.2 Ham so toan hoc2.5.3 Tch phan2.5.4 Tong2.5.5 Gii han2.5.6 Chuoi va khai trien chuoi

    3. Cau truc d lieu3.1 Tap hp va danh sach3.2 Mang va Bang

    4. Cac v du ve ai so tuyen tnh

    5. Cac v du Giai phng trnh ai so

    6. Cac v du Giai phng trnh vi phan

    7. Cac v du ve li giai so va ve cac phng trnh truy hoi

    8. Xuat ket qua

    9. Lap trnh trong Maple10. Th vien cua Maple

    11. Tao lap cac Package

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    2/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    2

    1. M au

    Maple la mot ngon ng mo phong toan hoc (Maple ch la mot ten rieng

    Canada, khong phai la Mathematics Pleasure nh nhieu ngi thng ngh).Kieu tnh toan cua Maple c biet di nhieu ten khac nhau nh : Algebraicmanipulation, Symbolic computation, Computer algebra . ac iem c ban cuamot ngon ng nh the la no co kha nang, mot cach an hoac hien, tien hanh cactnh toan ma cac phan t khong nhat thiet phai c gan gia tr .Mot ac iem khac la no co kha nang hnh thanh cacphep n gian, rut gon cacbieu thc, va cac phep bien oi khac, thc hien tren cac phan t cha c gangia tr. Chang han,

    > f:=x^3-y^3 ;

    f x y:= 3 3

    > factor(f) ;( )( )x y x xy y + +2 2

    Ai a tng quen vi cac ngon ng lap trnh truyen thong nh Fortran, Pascal,C se thay rang cac ky hieu trong v du tren c dung cho hai muc ch khacnhau : ky hieuf c dung nh mot bien, no c gan mot gia tr, cac ky hieux,

    y c dung nh cac an, cha co gia tr .

    Trong Maple, cac cau lenh thng c gan gia tr cang ve sau neu co the,chang han, cau lenh :

    a:=1 ;gan gia tr 1 cho a . Neu cau lenh tiep theo sau la :

    x:= a + b ;th gia tr 1+b c gan cho tenx, va neu tiep theo la :

    b:=-1 ;f:= sin(x) ;

    se lam chox co gia tr 0 , va gia tr 0 nay se c gan vao bieu thc cuaf (lu yrang sin(0) c t ong rut gon la 0 ). Va neu nh tiep theo ta lai thc hiencau lenh :

    b:=0 ;

    g:=sin(x) ;khi o gia trx se la 1 va sin(1) se c gan cho g (Lu y rang sin(1) c xemnh mot ky hieu (symbol) hnh thc, va khong t ong c tnh gia tr, tuy vay taco the tnh gia tr so cua no de dang bang lenh evalfse c trnh bay ve sau)

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    3/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    3

    2. Mot so v du

    2.1 a thc :

    Maple co the x ly cac a thc mot bien hoac nhieu bien ca dang khaitrien hoac khong khai trien .

    > (x+1)^4 * (x+2)^2 ;( ) ( )x x+ +1 24 2

    > expand(%) ;6 5 4 3 2

    8 26 44 41 20 4+ + + + + + > factor (%) ;

    ( ) ( )x x+ +1 24 2

    Dau nhay kep % ch bieu thc va mi tnh xong, tng t, hai dau lien tiep %%ch bieu thc trc bieu thc va mi tnh xong, ba dau %%%ch bieu thc trchai bieu thc va mi tnh .

    ** hay ^ : luy tha* : nhan

    / : chia:= : gan gia tr ( nh ngon ng Pascal )

    Lu y rang moi cau lenh cua Maple eu ket thuc bang dau cham phay;

    > a:= expand( (x*y/2 - y^2/3) * ( x-y) * (3*x+y) ) ;

    a x y x y xy y:= + +3

    22

    1

    6

    1

    3

    3 2 2 3 4

    Maple khong t ong bien oi mot bieu thc hu ty thanh dang chnh tac :

    > a / (x^3-x^2*y-x*y+y^2) ;

    3

    2 21

    6

    1

    33 2 2 3 4

    3 2 2

    x y x y xy y

    x x y xy y

    + +

    +

    Tuy nhien co the bien oi theo yeu cau :

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    4/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    4

    > normal (%) ;1

    6

    9 3 22 2

    2

    ( )x xy y y

    x y

    V du ve tnh c so chung ln nhat (gcd)va boi so chung be nhat (lcm) cua caca thc , lu y rang , neu ket thuc cau lenh bang dau hai cham : Maple van

    tnh toan va ghi nhan ket qua nhng khong hien th ket qua ra man hnh :

    > gcd(x^3+1, x^2+3*x+2) ;x+1

    > p:=55*x^2*y+44*x*y-15*x*y^2-12*y^2 :

    > q:=77*x^2*y-22*x^2-21*x*y^2+6*x*y :

    > gcd(p,q) ;11x-3y

    > lcm (15* (x-5) * y , 9* (x^2-10*x+25) ) ;45 450 1125

    2x y xy y +

    2.2 Tha so

    Maple biet cach phan tch cac a thc tren nhieu mien : mien nguyen, cac trnghu han, va cac trng so ai so .

    > factor (x^4-2) ;4

    2

    > factor (x^4-2 , sqrt(2) ) ;( )( )x x2 22 2+

    Tham so th hai trong factorch mien m rong ai so. Tham so nay co the la cac

    can thc nh tren, hoac mot nghiem sonao o. RootOf(x^4-2) dung e ch motnghiem cuax^4-2 . Lenhalias c dung e nh ngha cho ky hieu alpha :

    > alias(alpha=RootOf(y^2-2) ) :> factor(x^4-2 , alpha );

    ( )( )x x2 2+

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    5/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    5

    Chu y : neu ta dung ten cac bien theo cac ten mau t hylap : alpha, beta,delta, gamma, eta , Maple se hien th cac mau t tng ng : , , , ,

    Mot v du khac, ta biet rang a thc 6 5 4 3 1+ + + + + la khong the rut gon

    tren mien nguyen, nhng no co the phan tch tren mien nguyen ong d vi 2 .Ta se dung lenh Factor(chu y khac vi factor, va ghi nh trc khi c trnhbay chi tiet phan ngon ng lap trnh , rangMaple phan biet ch thng va ch

    hoa) :

    > f:= x^6+x^5+x^4+x^3+1 ;

    f x x x x:= + + + + +6 5 4 3 1

    > Factor (f) mod 2 ;( )( )x x x x4 21 1+ + + +

    2.3 Ch dan

    Maple co mot he thong ch dan tot, co the x dung mucHelp tren thanh congcu e tra cu mot t, mot ham hoac cac muc chuyen . Cung co the dung dauhoi ? e xem ban than mucHelp , hoac ? ng trc mot ham can tm ch dan, vdu :

    > ?factor ;

    FUNCTION : factor - Factor a Multivariate Polynomial

    CALLING SEQUENCES :factor(a)factor(a,K)

    PARAMETERS :a - an expressionK - an algebraic extension

    SYNOPSIS :- The function factor computes the factorization of a multivariate polynomialwith integer, rational, or algebraic number coefficients.

    - If the input, a, is a rational function, then it is first ``normalized'' (seenormal) and the numerator and denominator of the resulting expression arethen factored. This provides a ``fully-factored form'' which can be used tosimplify in the same way the normal function is used. However, it is moreexpensive to compute than normal.

    - If the input, a, is a list, set, equation, range, series, relation, or func-

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    6/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    6

    tion, then factor is applied recursively to the components of a.

    - The call factor(a,K) factors a over the algebraic number field defined by K.K must be a single RootOf, a list or set of RootOfs, a single radical, or alist or set of radicals.

    - If the second argument K is not given, the polynomial is factored over thefield implied by the coefficients. Note that any integer content (see firstexample below) is not factored.

    EXAMPLES :> factor(6*x^2+18*x-24) ;

    6 (x + 4) (x - 1)

    > factor((x^3-y^3)/(x^4-y^4)) ;x2 + y x + y2

    -----------------(x + y) (x2 + y2 )

    > factor(x^3+5) ;x3 + 5

    > factor(x^3+5, 5^(1/3)) ;(x2 - 51/3 x + 52/3 ) (x + 51/3 )

    > factor(x^3+5, {5^(1/3),(-3)^(1/2)}) ;1/4 (2 x + (-3)1/2 51/3 - 51/3 ) (2 x - (-3)1/2 51/3 - 51/3) (x + 51/3 )

    > factor(y^4-2,sqrt(2)) ;(y2 - 21/2 ) (y2 + 21/2 )

    > alias(alpha = RootOf(x^2-2)) :> factor(y^4-2,alpha) ;(y2 - alpha2) (y2 + alpha2)

    > factor(x^3+y^3) ;(x + y) (x2 - y x + y2 )

    > factor(x^3+y^3,(-3)^(1/2)) ;1/4 (2 x - y + (-3)1/2 y) (2 x - y - (-3)1/2 y) (x + y)

    SEE ALSO : ifactor, Factor, AFactor, factors, sqrfree, collect, galois, irreduc, roots

    2.4 Cac con so trong Maple

    Maple tien hanh cac phep toan so hoc la chnh xac oi vi cac dang hu ty :

    > 1/2 + 1/3 + 2/7 ;47

    42

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    7/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    7

    va cac tnh toan bao am so ch so can thiet theo yeu cau :

    > p:=1153* (3^58+5^40) / (29! -7^36) ;

    138050757149755272140719943145368630657311403714453245983

    Cac hang so trong Maple co the c xap x bang cac so cham ong vi so so letuy y , co the ieu chnh bang lenh Digits(gia tr mac nh la 10), lenh evalf secho gia tr so :

    > evalf(p);2.571433313

    Neu cac so nhap vao cho dang so cham ong, ket qua t ong dang tng ng

    > 1/2.0 + 1/3.0 + 2/7.0 ;1.119047619

    Cac ham lng giac tnh theo radian :

    > h:=tan (3* Pi/7) ;

    h: tan=

    3

    7

    > evalf (h);4.381286277

    > Digits :=40 ;Digits :=40

    > evalf (h) ;4.381286267534823072404689085032695444160

    >Digits := 10 ;Digits := 10

    Maple co rat nhieu ham ac biet khac ngoai cac ham lng giac . Neu oi so cuacac ham nay c cho dang so cham ong th gia tr ham cung c tnh tng

    ng , v du mot so ham ac biet nh ham sai so erf x e dttx

    ( ) = 22

    0, hoac

    ham Zeta : Zeta si si

    ( ) ==

    1

    1

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    8/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    8

    > erf(3) ;erf (3)

    > evalf(%) ;0.9999779095

    >Zeta (2.2) ;1.490543257

    Maple co the phan tch thanhtha so nguyen to, hoackiem tra so nguyen to :

    > p:=2^(2^6)+1 ;p:=18446744073709551617

    > isprime (p) ;false

    > ifactor(p) ; (67280421310721) (274177)

    Ngoai ra Maple con biet nhieu so ac biet khac nh cac he so nh thc, cac soBernoulli, Euler, Fibonacci, Bell, Stirling

    > bernoulli (4) ;

    1

    30

    > seq (binomial (10,k), k=0..10) ;1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1

    2.5 Cac v du trong Giai tch

    2.5.1 ao ham

    Viec lay ao ham trong Maple c thc hien bang lenh diff ,tham so th nhat la bieu thc c lay ao ham, tham so th hai la bien se layao ham theo :

    > diff(sin(x) * cos(x) , x ) ; cos(x) 2 -sin(x) 2> diff(sin(x) * x^(x^x) , x ) ;

    ( )cos( ) sin( ) ln( ) ln( )x x x x x x xx

    xx x x

    xx x

    + + +

    1

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    9/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    9

    > diff(g(x) , x ) ;d

    dxg x( )

    > diff(erf(x) , x ) ;

    2

    2

    e x

    Muon biet dang ham erf(x) ra sao, ta ve o th cua no cung vi ca o th aoham cua no :

    > plot ( { erf(x) ,diff(erf(x),x) }, x=-5..5 ) ;

    ao ham cap cao :

    > f := x^9+3*x^7-x^5+5*x^3+1 ;

    f x x x x:= + + +9 7 5 33 5 1

    > diff(f,x,x,x) ;504 630 60 30

    6 4 2+ +

    hoac n gian co the dung, chang han ao ham cap 6 theo x :

    > diff(f , x$6) ;60480 15120

    3x x+

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    10/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    10

    Ta cung can quan tam encac hnh thc tnh toan va hien thqua cac v du sau :

    V du :

    > diff(exp(-x^2) , x ) ;

    xe x

    2

    > % ;

    22

    xe x

    V du :

    > Diff(ln( x / (x^2+1) ) , x ) ;

    xx

    xln 2

    1+

    > Diff(ln( x / (x^2+1) ) , x ) : % = value (%) ;

    ( )

    x

    x

    x

    x

    x

    xx

    xln

    ( )2

    2

    2

    2 2

    2

    1

    1

    12

    11

    +

    =

    +

    +

    +

    > normal (%) ;

    x

    x

    x

    x

    x xln

    ( )2

    2

    21

    1

    1+

    =

    +

    V du :

    > Diff(x^(x^x) , x ) : % = value (% ) ;

    ( ) ( )x

    x x x x xx

    xx x x

    xx x

    = + +

    ln( ) ) ln( )1

    > collect (% , ln(x) ,simplify ) ;

    ( ) ( ) ( ) ( )x

    x x x x x xxx x x x x xx x x x

    = + ++ + + +

    ln( ) ln( )2 1

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    11/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    11

    2.5.2 Cac ham so toan hoc

    Trong Maple, cac ham toan hoc mot hay nhieu bien co the c nh ngha theo

    mot cach rat t nhien. Cac ham nay sau o co the nhan cac cua bien la sohay kyhieu :

    > f := x -> sin(x) / x ;

    f xx

    x:

    sin( )=

    > f (2.0) ;0.4546487134

    > f (u) ; sin( )u

    u

    > g := (x,y) -> x*y*sin(x*y) ;g x y xy xy: ( , ) sin( )=

    > g (1,s) ;s ssin( )

    > g (1.0 , 2.0 ) ;1.819594854

    > plot3d(g , -6..6,-6..6 ) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    12/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    12

    Cac ham co the c ao ham bang toan t D , ket qua se c mot ham khac :

    > D (sin+cos ) ;cos - sin

    > f := x -> sin(x)/x ;

    f xx

    x:

    sin( )=

    > D (f) ;

    xx

    x

    x

    cos( ) sin( )2

    Toan t D con co the dung e tnh ao ham rieng. D[i](h) tng ng vi aoham cua h theo bien th i

    > h := (x,y) -> x^5-x^2*y-y^2 ;

    h x y x x y y: ( , )= 5 2 2

    > D[2] (h) ;( , )x y x y 2 2

    > D[1,2] (h) ;( , )y 2

    Ghi chu : Can phan biet cac ham toan hoc va cac bieu thc hay ai lng toanhoc phu thuoc vao cac bien .

    V du, ham mot bien :

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

    >plot(f,-Pi..Pi) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    13/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    13

    Bieu thc phu thuoc (mot bien) :

    > g:=x*sin(x) ;

    > plot(g, x=-10*Pi..10*Pi) ;

    V du, ham hai bien :

    > h:=(x,y) -> x^2+y^2 ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    14/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    14

    >plot3d(h,-4..4,-4..4);

    Bieu thc phu thuoc (hai bien) :

    > k:=x*y*sin(x+y) ;

    > plot3d(k , x=-Pi..Pi,y=-Pi..Pi) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    15/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    15

    2.5.3 Tch phan

    Mot kha nang quan trong cua Maple la viec tnh cac tch phan giai tch, bangcach x dung int , cu phap tng t nh lenhdiff .

    > f := (x^3+9*x^2+28*x+27) / ( (x+3)^3*x ) ;

    fx x x

    x x:

    ( )=

    + + +

    +

    3 2

    3

    9 28 27

    3

    > int (f,x) ;

    +

    +1

    2 3 2( )ln( )

    xx

    Lu y, tng t nh lenhDiff la mot toan t hnh thc, ta cung co lenhInt :

    > Int (exp(x^2),x) ;

    > Int(y(t) , t) ;

    > Int(x*cos(x),x) = value(Int(x*cos(x),x)) ;

    hoac trnh bay theo dang khac :

    >Int(x*cos(x),x) = int(x*cos(x),x) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    16/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    16

    > int (f , x=1..2) ;9

    8002+ ln( )

    > int (x^5 / (43-x^2)^(19/2) , x ) ;

    1

    1343

    172

    195 43

    7396

    221 43

    4

    2

    17

    2 2

    15

    2

    17

    2

    x

    x x x( ) ( ) ( )

    +

    > int ( ln(t)^2 * t^(1/2) * exp(-t) , t=0..infinity ) ;

    1

    42 4 2

    1

    22 2 2 2

    5

    2 2 2 + + +ln( ) ln( ) ln( )

    (trong o la hang so Euler : = 0.5772156649)

    > evalf(%) ;0.829626907

    Mot khi Maple khong the tm c mot ap so kn cho mot tch phan, bat nhhay xac nh, no tra tr ve dang a nhap vao :

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

    > int (exp(-t) / (1+t^(3/2) ) , t=0..infinity ) ;

    Ket qua cua bieu thc nay co the mo phong bang cac cong cu khac cua Maple,

    rieng trong v du nay v ket qua la hang so nen ta co the dung evalf e tm motxap x so (ngha la thc hien tch phan so ) :

    > evalf(%) ;0.6130734052

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    17/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    17

    Trong v du sau ay, ta se tnh chuoi Taylor cua ham ket qua (chuoi se c trnhbay chi tiet phan sau, va mot chng sau)

    > int ( exp(x^3) , x ) ;

    e dxx3

    > taylor (% , x=0,15 ) ;

    x x x x x O x+ + + + +1

    4

    1

    14

    1

    60

    1

    312

    4 7 10 13 16( )

    Lu y : Trong cac tnh toan tiep theo (neu co) , ket qua tren se khong c xem nh mot bieu

    thc tham gia tnh toan, v co so hang O x( )16

    , muon loai bo thanh phan nay, ta co the dung cac

    lenh sau : convert (% , polynom ) ; hoac bang lenh : subs (O = 0 , %) ; (ch O = so 0 )

    Mot so tch phan co the co mot dang kn khac :

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

    > int ( f , x=0..1 ) ;

    > evalf(%) ;0.556825463

    2.5.4 Tong

    V du cuoi cung tren cho thay Maple tnh tong chay tren cac nghiem (a

    xap x) cua a thc. Ngoai ra, Maple co lenh tnh tong, cu phap tng t nhlenh tnh tch phan int :

    > sum (i , i=0..n-1) ;1

    2

    1

    2

    2n n

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    18/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    18

    > sum ( i^2 , i =1..9876543210 ) ;

    321139442946604922593984029585

    > sum ( binomial(n,i) , i = 0..n ) ;2

    n

    > sum (i^4 * 7^i , i=1..n-1 ) ;

    > sum ( (i-1) / (i+1) , i=1..k ) ;

    > sum (i^4 * 4^i / binomial(2*i,i) , i=0..n-1 ) ;

    > sum ( 1/i^2 + 1/i^3 , i=1..infinity ) ;

    2.5.5 Gii han

    Maple co the tnh gii han cua mot bieu thc khi mot bien nao o tien en motgia tr at biet :

    > r:= (sin(x)-x) / x^3 ;

    > limit ( r , x=0 ) ;

    > limit ( r , x=infinity ) ;0

    > limit (Psi(2*exp(x) )-x , x=infinity ) ;ln(2)

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    19/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    19

    2.5.6 Chuoi va khai trien chuoi

    Khai trien chuoi cua mot bieu thc en cap tuy y, mac nh la en cap 6

    > series ( ln(1+z) , z=0 ) ;

    > series (erf(x) , x=0 ) ;

    > series (exp(-x^2) * (1-erf(x) ) , x=0 , 4 ) ;

    Ket qua khai trien bang lenh series khong nhat thiet phai la mot chuoi Taylor, taco the co mot chuoi Laurent nh v du sau :

    > series ( GAMMA(x) , x=0, 3 ) ;

    > evalf() ;

    Ta xem mot so v du ve cac ham Bessel. Maple dung cac tenBesselJ vaBesselKe ch cac ham Bessel Jv(x) va Kv(x) , tuy nhien ta co the viet tat chung bangcac ch JvaK thong qua lenh nh nghaalias :

    > alias (J=BesselJ , K=BesselK) :> series (J(0,x) , x=0 , 10 ) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    20/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    20

    Lenhseries con co the cho mot chuoi tong quathn la mot chuoi Laurent thuantuy , nh v du sau ay, lu y rang mot he so cuax3 la ln(x) :

    > series (K(3,x) , x=0 , 5 ) ;

    Ngoai ra Maple con co the khai trien tiem can :

    > f := n * (n+1) / (2*n-3) ;

    > asympt ( f , n ) ;

    > asympt ( erf(x) , x ) ;

    Cac khai trien chuoi co the dung e xap x cac ham so, chang han nh xap xPade, phan thc lien tuc hoac chuoi Chebyshev . Ta xem v du sau so sanh giasin(x) va xap x Pade cua no, ket qua c minh hoa bang o th :

    > series ( sin(x) , x=0 , 10 ) ;

    > approx :=convert ( ,ratpoly ) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    21/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    21

    > plot ( {approx , sin(x) } , x=-3*Pi/2 .. 3*Pi/2 ) ;

    3. Cac cau truc d lieu

    La mot he toan hoc, nhng Maple cung con la mot ngon ng lap trnh, nocung co cac cau truc d lieu nhmang (array) va bang (tables) , cung nh co cacoi tng toan hoc nha thc, chuoi .

    Tap hp vadanh sach la hai cau truc d lieu can ban ma ta se x dungtrong cac muc tiep theo. Chung c xay dng t cac day , ngha la cac bieu

    thc phan cach bi dau phay .

    > s := sin , cos , tan ;s := sin , cos , tan

    Day co the tao bi lenh seq :

    > seq ( i^2 , i=1..10 ) ;

    3.1 Tap hp va Danh sach

    Tap hp c bieu dien bang cach x dungdau moc tap hp { } , va cactoan t tap hp : union , intersect , minus , va member . Lu y rangth t

    cac phan t trong mot tap hp la tuy y (khong quan trong) , o la khai niem toanhoc cua tap hp. Maple dung th t alphabet cho cac phan t :

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    22/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    22

    > a := {exp , sin , cos } ;

    > b: = {s} ;

    > a union b ;

    > aminus b ;

    > a intersect b ;

    > member (sin , b ) ;

    Danh sach khac vi tap hp cho cac phan t co mot th t nhat nh (dongi x dung nh) , c bieu dien bidau moc vuong [ .. ]

    > c := [ 1 , 2 , 3 , 2 , 1 ] ;

    Viec chon cac phan t cua mot tap hp hoac mot danh sach (va tong quat hn,chon cac thanh phan cua mot bieu thc) c thc hien bang ham op .

    op(i , expr) , ch thanh phan th icua bieu thc expr, tng t ham nops(expr)ch so thanh phan cua expr :

    > nops (c) ;5

    > op (2,c) ;2

    > c[2] ;2

    Ghep hai danh sach bang cach dung op :

    > d := [2,5,46 ] ;

    > e := [op (c) ,op (d) ] ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    23/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    23

    Cac ham so co the tac ong len cac phan t cua mot danh sach bang cach dunglenh map :

    > map ( x -> x^2 , c ) ;

    > convert (b , list ) ;

    > map (D , ) ;

    Va ta co the x dung vong lap tren cac phan t cua mot tap hp hay mot danhsach theo mot cach rat t nhien :

    > for f in b dodiff(f(x),x) od ;

    3.2 Mang va Bang

    Maple co cau trucmang (array) nh hau het cac ngon ng lap trnh. Mangc tao ra bang cach dung lenh array va xac nh kch tht. Cu phap oi vicac phan t, tng t nh cac ngon ng khac.

    V du : Tao mot mang mot chieu

    > u :=array ( 1..4 , [ 1.32 , 4.57 , 9.87 , 11.4 ] ) ;

    > u[2] ;

    4.57

    Co the x dung vong lap e nhap cac phan t cho mang . V du tao mot mang haichieu :

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    24/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    24

    > A :=array (1..3 , 1..3) :> for ifrom 1to 3do for jfrom 1to 3do A[i,j] := i^2 - j^2 odod:>print (A) ;

    Ngoai mang ra , Maple con co cau truc bang . Khac vi mang , cac ch so cuabang co the co moi gia tr, khong nhat thiet phai la so nguyen . Bang c taora ngay khi ta nh ch so cho mot bien cha tng c nh ngha la mot mang .

    > Cao[ Hoa] : = 175 * cm ;

    > Cao[Hong] := 185 * cm ;

    > Cao[TB] := ( Cao[Hoa] + Cao[Hong] ) / 2 ;

    D nhien ta van co the nh ngha mot bien nao o la mot bang . Va ta cung cothe x ly cac ch so cua bang , nh v du sau :

    > COLORS :=table ( [red=(rot,rougr) , blue=(blau,bleu) ] ) ;

    > for c in entries(COLORS) do print(c) od ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    25/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    25

    4. Cac v du ve ai so tuyen tnh

    Maple co nhieu th vien chuyen biet cho cac lnh vc trong toan hoc (c

    goi la cac Package), trong chng sau se gii thieu ro hn ve cac th vien cuaMaple, ay ta xem mot so v du ve package linalg , th vien cac tnh toantrong ai so tuyen tnh (linearalgebra) .e goi th vien nay, ta x dung lenh :

    > with(linalg) ;

    Ham lenh with se nap th vien linalg, va ke t ay ta co the x dung cac ham ac liet ke tren, chang han cac khai bao va cac tnh toan sau ay :

    Trong Maple , vector c bieu dien bangmang mot chieu, va co the tao ra bang

    lenh khai bao vector (cua th vien linalg) , hoacarray :

    > u := vector([1,2,3]) ;

    > v := vector([0,0,1]) ;

    Tnh goc gia hai vector u va v :

    > angle(u,v) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    26/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    26

    Ma tran c bieu dien bangmang hai chieu, cac phan t c liet ke tng dong, chu y cac cu phap trong khai bao (cac moc vuong) :

    > a :=matrix ( [ [x,y,z] , [y,x,y] , [z,y,x] ] ) ;

    Tnh nh thc :

    > det (a) ;

    >factor(%) ;

    Cac phan t cung co the liet ke trong mot moc vuong neu kch tht ma tranc khai bao ro :

    > b :=matrix(3,3,[1,2,3,-2,1,-2,-3,2,1] ) ;

    Tnh ma tran ao :

    > inverse(b) ;

    Tnh cacgia tr rieng cua ma tran b , x dung lenh eigenvals :

    > eigenvals(b) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    27/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    27

    Hoac cung co the tnh cac gia tr rieng nay theo tng bc thong qua a thc actrng :

    > charmat(b,lambda) ;

    > det(%) ;

    > solve(%, lambda) ;

    Hoac co the tnh gia tr so cua cac gia tr rieng cua ma tran b :

    > evalf(Eigenvals (b) ) ;

    Cac v du sau ta tnh mu cua ma tran, trong toan hoc co the dung e giai mot he

    cac phng trnh vi phan tuyen tnh :

    > B :=matrix (2,2,[22,28,-15,-19] ) ;

    > exponential(B , t) ;

    Maple con biet nhieu loai ma tran ac biet, chang han cac ma tran Vandermondeva ma tran Hilbert:

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    28/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    28

    > vandermonde([u,v,w]) ;

    > factor(det(%) );

    > H :=hilbert(2,x) ;

    > inverse(H) ;

    Ngoai ra, ta con co the tnh cac dang chnh tac Hermite va Smith cua cac ma tran

    > smith(%,x) ;

    Ghi chu : Cac ham cua Package linalg co the x dung ma khong can phai keu

    ca th vien linalg vao (bang lenh with nh tren) : trc moi ham lenh ta ch canch ro ten Package , v du : linalg[det](A) , linalg[angle](u,v) ,

    Hoac cung co the ch keu mot ham lenh duy nhat e dung, bang cach dung, chang

    han with(linalg,det ), va ke t o co the dung lenhdet ma khong phai ch nh gthem .

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    29/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    29

    Mot v du khac, th vien linalg con cho ta hamjacobian e tnh Jacobian cua motham vector :

    > f := 1+cos(x-y) / sin(x+y) :

    > g := 1-cos(x+y) / sin(x-y) :> J := linalg[jacobian]([f,g] , [x,y] ) ;

    5. Cac v du giai phng trnh ai so

    Ham solve trong Maple co the giai nhieu loai phng trnh, bao gom cac phngtrnh n vi cac ham s cap thong dung, hoac he cac phng trnh tuyen tnhhoac cac phng trnh a thc .V du , ta tm tat ca cac nghiem cua mot phng trnh a thc :

    > p := 2*x^5-3*x^4+38*x^3-57*x^2-300*x+450 ;

    > solve(p=0,x) ;

    > solve(a*x^2/2+b*x+c=0 ,x ) ;

    V du khac, ta co mot he 4 phng trnh tuyen tnh 4 an so :

    > f1 := 3*r + 4*s - 2*t + u = -2 :> f2 := r - s + 2*t +2*u = 7 :> f3 := 4*r -3*s +4*t -3*u =2 :> f4 := -r + s +6*t -u = 1 :

    > Dapso :=solve({f1,f2,f3,f4} , { r,s,t,u } ) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    30/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    30

    X dung lenh subs , ta co the thay cac gia tr li giai r , s , t , u tr lai phngtrnh ban au e kiem tra tnh ung an cua li giai :

    > subs(Dapso,{f1,f2,f3,f4} ) ;

    Cac phng trnh con co the co cac he so la cac tham so :

    > eq := {x+y+z = a , x+2*y-a*z = 0 , b*z+a*y = 0 } :> solve(eq,{x,y,z} ) ;

    V du sau ve giai he cac phng trnh a thc :

    > eqs := {x^2+y^2=1 , x^2+x=y^2 } :> solve(eqs,{x,y}) ;

    6. Cac v du giai phng trnh vi phan

    Neu ham lenh solve dung e giai cac phng trnh ai so, th ham dsolve cdung e giai cac phng trnh vi phan. Maple co the giai cac phng trnh viphan cap mot va hai :

    > f1 := x^2*diff(y(x),x) + y(x) = exp(x) ;

    > dsolve( f1,y(x) ) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    31/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    31

    ( Lu y trong ket qua tren, hang so bat ky la _C1 )

    Ta co the cho cac ieu kien au cho cac phng trnh vi phan :

    > eq :=diff(y(t),t) + y(t) ^2 + (2*t+1) * y(t) + t^2 +t +1 = 0 ;

    > dk := y(1) = 1 ;

    > simplify (dsolve({eq,dk} , y(t) ) ) ;

    Maple cung co the tm cac chuoi xap x cho cac nghiem cua cac phng trnh viphan :

    > pt := x^2 *diff(y(x),x$2) + x*diff(y(x),x) + (x^2-u^2)*y(x) = 0 ;

    > dsolve(pt,y(x),series) ;

    7. Cac v du ve li giai so va ve cac phng trnh truy hoi

    Ham lenh solve co gang tm cac li giai dang ky hieu hnh thc (symbolic).oi khi chung ta ch can tm cac li giai so (numeric) , va oi khi cung chcan tm nghiem trong mot khoang ac biet nao o. Lenh fsolve noi chung setm ch mot ket qua so ma thoi, tuy vay , oi vi cac a thc no se tm tat ca

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    32/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    32

    cac nghiem thc ( hoac tat ca cac nghiem phc neu nh tieu e complexc ch ra) :

    > fsolve(x^4-2,x) ;

    > fsolve(x^4-2,x,complex) ;

    > fsolve(x=cos(x) , x ) ;

    > eq1 := sin(x+y)-exp(x)*y = 0 :

    > eq2 := x^2-y = 2 :> fsolve({eq1,eq2} , {x,y} , {x=-1..1 , y=-2..0} ) ;

    Ngoai ra Maple con co the giai cac phng trnh trong mien nguyen Z bang

    lenh isolve , va cac phng trnh trong mien nguyen ong d Z mod p banglenh msolve .

    Ta xem mot so v du ve giai cac phng trnh truy hoi bang lenh rsolve :> rsolve(s(n) = -3*s(n-1) - 2*s(n-2) , s(n) ) ;

    > rsolve( {s(n)= -3*s(n-1) - 2*s(n-2) , s(1)= 1 , s(2)=1 } , s(n) ) ;

    > rsolve(s(n)= 3*s(n/2) + 5*n , s(n) ) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    33/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    33

    Ngay ca mot khi Maple khong the tm c mot li giai dang hien , ta cung cothe ap dung cac cong cu khac cua Maple, nh khai trien tiem can chang han :

    > rsolve( x(n+1)=(n-1)*x(n)-x(n-1)/(n+1) , x(n) ) ;

    > asympt(% , n ,4 ) ;

    8. Cac dang xuat ket qua

    Maple co the xuat cac ket qua a tnh toan ra di nhieu dang : dangLaTex hoac dangma nguon cua cac ngon ng so truyen thong nhFortran , Cieu nay giup chuyen oi cac tnh toan hnh thc sang tnh toan so, tien enviect ong hoa lap trnh (tao ma nguon) cho cac tnh toan tren may tnh .

    Ta xet v du xuat ket qua cho tnh toan jacobian cua mot ham vector :

    > f := 1+cos(x-y) / sin(x+y) :> g := 1-cos(x+y) / sin(x-y) :

    > J := linalg[jacobian]( [f,g] , [x,y] ) ;

    Xuat dang ma LaTex :

    > latex (J) ;

    \left [\begin {array}{cc} -{\frac {\sin(x-y)}{\sin(x+y)}}-{\frac {\cos(x-y)\cos(x+y)}{\left (\sin(x+y)\right )^{2}}}&{\frac {\sin(x-y)}{\sin(x+y)}}-{\frac {\cos(x-y)\cos(x+y)}{\left (\sin(x+y)\right )^{2}}}\\\noalign{\medskip}{\frac {\sin(x+y)}{\sin(x-y)}}+{\frac {

    \cos(x-y)\cos(x+y)}{\left (\sin(x-y)\right )^{2}}}&{\frac {\sin(x+y

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    34/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    34

    )}{\sin(x-y)}}-{\frac {\cos(x-y)\cos(x+y)}{\left (\sin(x-y)\right )^{2}}}\end {array}\right ]

    Xuat dang ma nguon ngon ng Fortran> fortran(J,optimized) ;

    t1 = x-yt2 = sin(t1)t3 = x+yt4 = sin(t3)t6 = t2/t4t7 = cos(t1)t8 = t4**2

    t11 = cos(t3)t12 = t7/t8* t11t16 = t4/t2t17 = t2**2t20 = t11/t17*t7

    J(1,1) = -t6-t12J(1,2) = t6-t12J(2,1) = t16+t20J(2,2) = t16-t20

    Hoac co the tao dang ma nguon Fortran nay thanh mottap tin tren a, e dungcho cac tnh toan so bang ngon ng Fortran sau nay :

    > fortran(J ,optimized,filename = vidu ) ;

    Ghi chu : Tham sooptimizednham lam toi u so phep tnh (t phep tnh nhat cothe) , ta co the so sanh bang ham anh gia so phep tnhcost nh sau :

    > readlib(cost) :> readlib(optimize) :

    > cost(J) ;

    > cost(optimize(J) ) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    35/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    35

    Xuat dang ma nguon ngon ng C> readlib(C) :> C(J ,optimized) ;

    t1 = x-y;t2 = sin(t1);t3 = x+y;t4 = sin(t3);t6 = t2/t4;t7 = cos(t1);

    t8 = t4*t4;t11 = cos(t3);t12 = t7/t8*t11;t16 = t4/t2;t17 = t2*t2;t20 = t11/t17*t7;

    J[1][1] = -t6-t12;J[1][2] = t6-t12;J[2][1] = t16+t20;J[2][2] = t16-t20;

    9. Lap trnh trong Maple

    Mot van e quan trong nhat cua he Maple la ngon ng lap trnh Maple ,c dung e tao ra cac chng trnh con , cac ham , thu tuc va cac th vien

    rieng (Packages) . Ta se xem xet sau ay mot so thu tuc (procedure) viet trongMaple.

    Lu y :Cac chng trnh viet bang Maple co the c soan thao bang cac trnh

    soan thao text khac hoac Maple text, chi tiet se c trnh bay ngay trong phamnay, nhng neu c viet ngay trong Maple th sau khi anh xong mot dong lenh,hay nhan phm SHIFT+ENTER, khi o may se khong thc hien lenh nay ma cha con tro xuong hanh di va hien dau nhac e ta viet lenh tiep theo Sau khiviet xong tat ca cac lenh can thiet, ta nhan ENTER, th tat ca cac lenh tren sec thc hien tuan t t tren xuong. Neu oan chng trnh nay la mot thu tuc

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    36/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    36

    (procedure) hay mot ham (function) , th ta co the x dung lien tiep theo. Muon lulai oan chng trnh nay, ta dunh lenh save ngay sau khi ket thuc oan chngtrnh, chang han muon lu di ten : vidu trong th muc e:\maplev3\khoai ta dung

    save ` e:/maplev3/khoai/vidu

    hoac save ` e:/maplev3/khoai/vidu.m

    va mot khi muon keu oan chng trnh (thu tuc, ham) nay vao x dung, ta dunglenh :

    read ` e:/maplev3/khoai/vidu

    hoac read ` e:/maplev3/khoai/vidu.m

    Chu y rang : ten tap tin dang *.m se t ong c lu dangma rieng cua Maple

    khong the xem c bang cac trnh soan thao thong thng, va khi c goi lai,(bang lenhread) , noi dung se khong c hien th lai khi goi , nhng d nhien taco the x dung chng trnh (thu tuc, ham) o. Vi cac tap tin a lu dangkhongco phan m rong la .m , khi goi lai , noi dung se c hien th lai .

    V du 1 : Thu tuc tnh cac so Fibonacci

    > F := proc(n) option remember ;> F(n) := F(n-1) + F(n-2) ;

    > end :> F(0) := 0 :> F(1) := 1 :

    Giai thch : Ham tren co ten laF , oi so la n , se c truyen gia tr khi goi option remember : he se lu nh cac gia tr tnh c

    Va sau o ta co the x dung thu tuc nay :

    > F(101) ; 573147844013817084101

    > seq ( F(i) , i = 1..10 ) ;1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    37/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    37

    V du 2 : Tnh o lech chuan cua mot day cac so

    > sigma := proc(data)> local mean , n , s , x ;> n := nops(data) ;> if n < 2 then ERROR( `Phai cha it1 nhat 2 gia tr ` ) fi ;> mean := 0 ;> for x in data do mean := mean + x od ;> mean := mean / n ;> s := 0 ;> for x in data do s := s + (x-mean)^2 od ;

    > sqrt( s/(n-1) ) ;> end :

    Giai thch :

    Thu tuc co tensigma , oi sodata la day cac con so local mean , n , s , x : cac bien mean , x, s, x ch la bien a

    phng, ngha la ch co y ngha rieng trong oan chng trnh nay

    Chu y cau truc ieu kien : if then fi ; Chu y cau truc lap : for do od ;

    Sau o ta co the dung :

    > sigma( [ 1,2,3,4,5,6] ) ;1

    27 2

    > sigma( [ 0.5 , 3.2 , 5.1 ] ) ;2.311565127

    V du 3 : Tnh biet thc cua mot phng trnh bac hai

    > # Tnh delta cua mot phng trnh bac hai> delta := proc(f)> local a,b,c ;> a:=coeff ( lhs(f) , x^2 ) :> b:=coeff( lhs(f), x) :> c:=coeff( lhs(f),x,0) :> simplify ( b^2-4*a*c ) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    38/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    38

    > end :

    Giai thch :

    Bat au bang # : o la dong chu thch, khong phai noi dung Thu tuc co ten deta , oi sof: la mot phng trnh bac hai theo x a,b,c la cac bien a phng lhs(f) : ve trai cua f ( tng t neu rhs(f) : ve phai cua f ) Lenhcoeff lay he so , coeff(lhs(f) , x^2 ) : lay he so ng vi x2 simplify ( ) : n gian , rut gon

    Va sau o x dung :

    > delta (x^2-x+5) ;

    -19

    > f:=(m^2+1)*x^2-4*m*x+m+6=0 ;

    > delta(f) ;

    > f:=(2*m-4)*x^2-3*x+7=0;

    > Delta := delta(f);

    V du 3 : Tnh cac a thc Chebyshev loai mot Tn(x) , t cap 0 en cap n ,va lu trong mot bang.

    (nhac lai: a thc Chebyshev : T0(x)=1 , T1(x)=x , Tn(x)=2xTn-1(x)-Tn-2(x) )

    > ChebyshevTable := proc(n)> local p , k ;> if not type(n,integer) or n < 1 then> ERROR(`oi so phai la so nguyen dng ` ) ;

    > fi ;> p[0] := 1 ; p[1] := x ;> for k from 2 to n do> p[k] := expand(2*x*p[k-1] - p[k-2] ) ;> od ;> RETURN ( eval(p) ) ;

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    39/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    39

    > end :

    Va khi x dung :

    > a := ChebyshevTable(5) :> a[0] , a[1] , a[2] , a[3] , a[4] , a[5] ;

    Lu y : Cac a thc Chebyshev la trc giao tren oan [-1,1] , ngha la vi hai athc Chebyshev Ti(x) va Tj (x) , i j , ta co :

    Va sau ay la mot oan chng trnh e kiem tra tnh chat trc giao noi tren, hoaccung co the xem la oan chng trnh kiem tra cac lenh tch phan cua Maple :

    > check := proc(T,n)> local i , j , r ;> for i from 0 to n do

    > for j from 0 to i-1 do> r := int(T[i]*T[j]/sqrt(1-x^2) , x=-1..1 ) ;> if r 0 then RETURN( (i,j) = r ) fi ;> od ;> od ;> print ( ` all okay ! ` ) ;> end :

    Va ta x dung thu tuc nay e kiem tra cho cac a thc cha trong day a tren :

    > check(a,5) ;

    V du 4 : Thu tuc tnh cac a thc Bessel : y0(x)=1 , y1(x)=x+1 ,

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    40/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    40

    n > 1 : yn(x)=(2n-1) x yn-1(x) + yn-2(x)

    > y := proc (n :nonnegint , x : name )

    > if n= 0 then 1> elif n=1 then x+1> else y(n,x) := expand( (2*n-1) * x * y(n-1,x) + y(n-2,x) )> fi ;> end :

    Giai thch : proc (n :nonnegint , x : name ) : ay la mot cach khai bao loai

    cua tham so cua thu tuc,nonnegint la loai nguyen khong am (non-

    negative-integer). Chu y cau truc if then elif then else fi ; co the thaybang hai cau truc ieu kien long nhau, nhng moi cau truc ieu

    kien luon bat au bang if va phai co ket thuc bang fi ; nhng vi

    elif .. then n gian hn .

    Va khi x dung, chang han :

    > y (5,z) ;

    10. Th vien cua Maple

    Th vien cua Maple bao gom 4 phan chnh :

    1. Th vien chuan (standard library)2. Th vien hon hp(miscellanous library)3. Packages(cac th vien chuyen biet theo tng lnh vc rieng)4. Th vien ong gop chung(share library)

    Tuy vay he thong ch tai vao bo nh chnh cac ham va thu tuc khi can thiet.

    Mot khi ta goi mot thu tuc hay ham trong th vien chuan, cha c goi vaot trc o, Maple se t ong nap thu tuc hay ham nay t bo nh ngoai vaobo nh trong va tien hanh cac tnh toan .

  • 7/29/2019 Lap Trinh Tinh Toan Maple

    41/41

    Lap trnh tnh toan hnh thc cho cac bai toan trong C Hoc - Nguyen Dung, NCSR 1998(Symbolic programming for problems of mechanics)

    Th vien hon hp cha cac thu tuc hay ham rieng le , t c dung enthng xuyen. Cac thu tuc hay ham nay phai c nap vao t bo nh ngoaibang lenh readlib :V du :

    > f := exp(a * z) / (1+exp(z) ) ;

    > residue( f , z=Pi*I) ;

    Trong ket qua tren may khong the hieu va x ly c v cha c nap vao bo nhtnh toan thu tuc residue, o la thu tuc tnh thang d cua mot ham phc tai motiem cc, thu tuc nay nam trong th vien hon hp, va ta phai tai vao trc khi xdung no :

    > readlib(residue);proc(f,a) ... end

    > residue(f , z=Pi*I) ;

    > residue ( 1 / (z^2+a^2 ) , z=a*I) ;