Prezentare Maple

78
M A P L E Software pentru calcule matematice

description

in acest document am pus capitolele 8 si 9 din cartea mea "Algebra LIniara", capitole in care am incercat o prezentare sumara a soft-ului Maple

Transcript of Prezentare Maple

Page 1: Prezentare Maple

M A P L E – Software pentru calcule matematice

Page 2: Prezentare Maple

C a p i t o l u l 8

INTRODUCERE ÎN MAPLE

8.1. Ce este Maple ?

8.1.1. Noţiuni generale

Maple este un software specializat în calcule matematice. Posibilităţile lui

cuprind aproape toate compartimentile matematicii contemporane.

Sistemul Maple se foloseşte în regim de dialog interactiv, precum şi prin scrierea

programelor cu ajutorul limbajului său propriu (limbajul Maple), orientat spre calcule

matematice de orice natură. Spre deosebire de limbajele de programare de nivel înalt

(Fortran, Basic, C, Pascal etc.), Maple rezolvă multe probleme matematice doar prin

apelare la comenzi, fără a fi nevoie să se compună programe aparte.

Baza sistemului Maple o constituie nucleul principal – programul transformărilor

simbolice. În plus, Maple conţine câteva mii (peste 3000) de funcţii şi proceduri speciale, care

formează aşa-numitele biblioteci, orientate spre transformările simbolice şi calcule numerice din

diverse compartimente ale matematicii. Maple mai dispune de o grafică puternică şi foarte

uşor de utilizat, de o arhitectură modulară, care permite adăugarea de noi proceduri şi

funcţii.

Programul Maple operează deopotrivă cu numere întregi, fracţionare şi

aproximative, ceea ce-i permite sistemului să returneze rezultatele rezolvării problemei

cu o exactitate ideală (exactitate infinită). Cu Maple soluţia multor probleme poate fi

obţinută nu numai numeric, ci şi sub formă analitică, adică cu ajutorul unor formule.

Din această cauză se mai spune că Maple este un program de matematici simbolice.

92

Page 3: Prezentare Maple

În zilele noastre Maple cu versiunile sale (Maple V, Maple 6 – 9 şi recenta

versiune Maple 10) este cel mai performant sistem de calcule matematice în stare să

realizeze cele mai complexe proiecte. Maple execută transformări şi simplificări

algebrice complexe; calculează sume şi produse finite şi infinite, limite şi integrale;

rezolvă numeric şi analitic sisteme algebrice (şi transcendente) de ecuaţii şi inecuaţii;

calculează determinanţii matricelor cu elemente simboluri matematice; determină toate

rădăcinile unui polinom; determină numeric şi analitic soluţia sistemului de ecuaţii

diferenţiale ordinare, precum şi a unor clase de ecuaţii cu derivate parţiale etc.

Scrierea unui program în Maple este foarte simplă, fiind vorba doar de aplicarea

unor comenzi formate din termeni uzuali din vorbirea curentă. Complexitatea

programelor şi procedurilor depinde numai de utilizator, deoarece peste 80% din miile

de comenzi Maple sunt de fapt programe Maple. Programele Maple pot fi modificate şi

extinse în aşa mod încât să ofere utilizatorului soluţiile optime ale problemei în cauză.

8.1.2. Fereastră Maple

Lansarea sistemului Maple se efectuează prin comenzi specifice sistemului de

operare pe care este instalat. Vom considera în continuare sistemul de operare

Windows, caz în care lansarea se face prin activarea

• icon-ului Maple sau

• aplicaţiei Maple din directorul în care a fost instalat sistemul Maple.

În urma efectuării acestei comenzi se deschide o fereastră (vezi fig.8.1) în care apare

prompterul „ > ” specific sistemului Maple.

93

Page 4: Prezentare Maple

Fig. 8.1. Aspectul general al ferestrei sistemului Maple

Sistemul Maple devine în acest fel interactiv, adică la fiecare comandă sau

funcţie tastată şi urmată de „ ; ” sau „ : ” şi, bineînţeles, acceptată de Maple (editarea

comenzii sau funcţiei încheindu-se prin Enter), sistemul o execută şi afişează pe ecran

rezultatul, dacă este cazul.

Fereastra Maple (vezi fig.8.1), la fel ca alte aplicaţii de genul acesta, este o

fereastră Windows şi constă din Titlul ferestrei (pătrăţelul 1) după care imediat urmează

Bara meniului de bază (pătrăţelul 2) care conţine butoanele File, Edit, Wiew, Insert,

Format, Spreadsheet, Options, Window şi Help. Sub bara meniului de bază se află

Panoul instrumentelor de bază (pătrăţelul 3) cu butoane ce repetă cele mai des utilizate

comenzi ale meniului de bază. Un clic pe buton este suficient ca comanda să fie

îndeplinită. Mai jos de panoul de instrumente se află Panoul contextual (pătrăţelul 4)

forma căruia depinde de poziţia cursorului. Câmpul de lucru (pătrăţelul 5) ocupă cea

mai mare suprafaţă a ferestrei interfeţei. Din câmpul de lucru fac parte Foile de lucru

Maple. Interfaţa sistemului Maple este de tipul multe documente şi permite lucrul cu

mai multe foi, care şi formează aşa-numitele Documente Maple. În partea de jos a

ferestrei se află Linia stare (pătrăţelul 6) care are în componenţa sa mai mulţi parametri

caracteristici sistemului Maple, precum şi o scurtă informaţie referitoare la comanda

aleasă sau la butonul panoululi de instrumente.

Meniul de bază, la rândul său, constă din:

• File – comenzi standard pentru operare cu fişiere;

• Edit – comenzi standard pentru redactarea unui text;

• View – comenzi standard de gestionare cu structura ferestrei Maple;

• Insert– inserarea diverselor texte, grafice 2- şi 3-dimensionale;

• Options– stabilirea diverşilor parametri;

• Windows – comenzi pentru a trece de la o foaie de lucru la alta;

• Help – conţine informaţie despre sistemul Maple.

Dialogul dintre utilizator şi sistemul Maple este organizat sub forma unei sesiuni

– utilizatorul introduce solicitările ce ţin de soluţionarea unei probleme (comenzi,

expresii, proceduri) care sunt preluate şi prelucrate de sistem. Informaţia introdusă şi

rezultatele prelucrării ei compun Foaia de lucru care este formată din:

1. domeniul de introducere (înregistrare) – conţine linii comenzi şi începe cu

prompterul ”>”(vezi pătrăţelele 1 din fig.8.2);

94

Page 5: Prezentare Maple

2. domeniul de afişare – conţine rezultatele prelucrării informaţiei introduse:

expresii analitice, obiecte grafice sau comunicări despre erorile comise (vezi

pătrăţelele 2 ale fig.8.2);

3. domeniul comentariilor text – explică modul de funcţionare al procedurilor.

Informaţia liniei text nu este prelucrată de Maple. O linie comandă poate fi

transformată într-o linie text prin intermediul butonului . Pentru

revenirea la linia iniţială (linia text → linia comandă ) se apasă .

Domeniul de înregistrare a informaţiei şi domeniul de afişare formează aşa-numitul

grup de calcule, care este marcat în stânga de o paranteză pătrată. Un grup de calcule

poate conţine mai multe domenii de înregistrare şi, respectiv, domenii de afişare.

Fig.8.2. Foaie Maple

Ceea ce caracterizează, însă, un grup este că toate instrucţiunile grupului se îndeplinesc

la o singură apăsare Enter, adică toate instrucţiunile domeniului de lucru vor fi

îndeplinite.

95

Page 6: Prezentare Maple

Fig.8.3. Domeniul de afişare

Exemple

1) Cu ajutorul secvenţei

> 2*5^3/125-x^2*sin(z-Pi)-13/52;

)sin(4

7 2 zx+

# programul a îndeplinit toate operaţiile indicate în expresia înscrisă în linia

stare şi a afişat rezultatul )sin(4

7 2 zx+ . Mai mult, observăm că programul a

făcut şi unele modificări: a simplificat fracţia 4

1

52

13 −=− .

2) Expresia

xx 44 cossin64

48 ++−

poate fi simplificată cu ajutorul comenzii combine( ) după cum urmează

> combine(-48/64+sin(x)^4+cos(x)^4;

( )x4cos4

1

Şi în cazul acestui exemplu sistemul a executat simplificările posibile. Din

96

Page 7: Prezentare Maple

cursul de trigonometrie se ştie că prin intermediul formulelor

)32cos44(cos8

1sin 4 +−= xxα şi

)32cos44(cos8

1cos4 ++= xxα

rezultă relaţia x4cos4

1

4

3cossin 44 +=+ αα . Programul a efectuat, de

sine stătător, şi a redus termenii, adică xx 4cos4

1

64

484cos

4

1

4

3 =−+ .

Expresiile în Maple dispun nume. Operatorul de atribuire este „:=”. În cazul în

care expresia are un nume poate fi afişat doar numele acesteia.

Exemplu

Să se atribuie expresiei xx 44 cossin52

39 ++− numele C. Acest lucru se

obţine cu

> C:=(-39/52+sin(x)^4+cos(x)^4;

44 )cos()sin(4

3: xxC ++−=

Programul a simplificat fracţia - 52

39. Cu ajutorul comenzii combine( )

programul simplifică expresia 44 )cos()sin(4

3: xxC ++−= , atribuindu-i

un alt nume

> R:= combine(C);

R:= )4cos(4

1x

Acum apelând la R, obţinem rezultatul de mai înainte:

> R;

97

Page 8: Prezentare Maple

( )x4cos4

1

Acelaşi rezultat se obţine şi dacă

> C := combine(C); C;

C := ( )x4cos4

1

( )x4cos4

1

Maple este un limbaj al expresiilor. Expresiile în Maple conţin operatori sau

caractere speciale, funcţii şi nume de variabile. Expresiile introduse de utilizator se

afişează pe ecran (pe spaţiul de lucru) şi sunt interpretate şi evaluate de instrucţiunile

programului. Instrucţiunile (comenzile) Maple, de cele mai multe ori, au forma

> variabilă: = expresie ;

fiind foarte scurte şi extrem de simple, se mai numesc instrucţiuni-expresie.

Maple mai admite încă un tip de instrucţiuni şi anume instrucţiuni-procedură:

> Nume_comandă (argument, opţiuni);

Numele unei comenzi, de regulă, corespunde menirii acesteia. Astfel, sum

înseamnă sumă, det – determinant, int – integrală, intparts - integrare prin părţi,

max – maximum, select – selecţie, solve – rezolvare, subs – substituire,

inverse – inversă, evalt – evaluare, simplify – simplificare, expr – expresie,

combine – combinaţie, sqrt – radical de ordinul doi etc.

Toate instrucţiunile Maple pot fi consultate. Pentru aceasta este necesar ca după

„?” să urmeze denumirea (chiar şi ipotetică) a instrucţiunii, urmată de Enter sau clic

pe .

După această scurtă expunere a unor comenzi cititorul este invitat să înceapă să

experimenteze cu Maple, să rezolve cât mai multe şi diverse probleme. În felul acesta va

acumula noi cunoştinţe despre sistemul Maple. Totodată, pentru o mai profundă

cunoaştere a programului, este bine să ştim structura acestuia, parametrii instrucţiunilor

şi alte noţiuni legate de acest sistem.

98

Page 9: Prezentare Maple

8.2. Obiecte Maple

8.2.1. Limbajul sistemului Maple

Ca orice alt limbaj algoritmic de programare Maple constă din caractere,

expresii, sintaxă.

Caracterele limbajului Maple sunt literele mari şi mici ale alfabetului latin,

cifrele arabe şi încă 32 de caractere speciale, dintre care menţionăm: _ , ;, :, -, *, /, ^, !,

=, <, >, (, ), [, ], {, }, « , %, #, ? etc.

Sintaxa cuprinde regulile de înscriere a cuvintelor în propoziţii şi determină

sensul dat de Maple când primeşte o comandă. Dacă comanda, din punct de vedere

sinacsic, nu este scrisă corect Maple semnalizează acest fapt printr-un mesaj de tipul

syntax error, indicând totodată şi locul unde a fost comisă eroarea.

Exemple

> ++7;

Syntax error, `+` unexpected

Sistemul Maple nu admite consecutiv două semne"+". În Maple există mai

multe forme de scriere a numerelor cu virgulă mobilă:

> 3.7e-3, 3.7E-03, +0.0037 ;

.0037, .0037, .0037

> Float(14142, -4) ;

1.4142

> 5.e-4 ;

Syntax error, missing operator or `;`

Scrierea corectă este 5.0e-4 (între punctul zecimal şi sufixul exponential

99

Page 10: Prezentare Maple

neaparat trebuie să fie o cifră) si returnează .0050

Cuvinte rezervate sau cuvinte-chee în Maple sunt cuvintele cu sensuri

speciale care în programe nu pot fi folosite ca variabile.

Exemple

Iată câteva cuvinte rezervate în Maple:

of, then, else, fi, for, in, by, to, while, do,

od, proc, local, end, option, global, read,

stop, union, minus, or, not şi altele.

Separatori Maple. În Maple pentru separarea uor expresii, comenzi, funcţii

se folosesc spaţiile sau semnele de punctuaţie. Pentru obţinerea spaţiilor între simboluri

(sau expresii) pot fi folosite tastele: Space, Tab, Enter. Spaţiul liber (blank) se obţine

cu ajutorul tastelor Space sau Tab, iar un spaţiu între linii – cu tasta Enter.

Semnele „:” şi „;” se folosesc pentru separarea expresiilor (propoziţiilor). Deosebirea

dintre ele este următoarea: semnul „:” în cadrul unei sesiuni interactive nu permite

afeşarea rezultatului executării operaţiei.

Expresiile precedate de semnul # fac parte dintr-un comentariu (nu influenţează

programul Maple).

Exemple

> x:=y ;

x := y

> x:=y ;

Syntax error, `=` unexpected

Eroarea apare în urma scrierii incorecte: între „:” şi „=” este un spaţiu liber.

Spaţiile libere nu sunt admise în interiorul lexemelor.

> C := 2*t + x*z ; # 11 septembrie 2001 a fost ziua atentatului

sângeros asupra Americii

100

Page 11: Prezentare Maple

C := 2 t + y z

Tot ce urmează după semnul # nu este luat în considerare de programul

Maple.

Conţinutului unei comenzi poate fi transferat şi în altă linie

dacă se acţionează Shift-Enter.

8.2.2. Obiecte Maple

Expresii. Expresiile sunt noţiunile de bază cu care operează Maple. O expresie

constă dintr-un nume, formule şi diverse tipuri de date. Ordinea executării operaţiilor în

expresie este cea cunoscută în matematica elementară: operaţiile din paranteze, apoi

ridicarea la putere, pe urmă înmulţirea şi împărţirea şi, în sfârşit, adunarea şi scăderea.

În cazul când pentru determinarea ordinii operaţiilor unei expresii există mai multe

sensuri se folosesc parantezele rotunde„(, )”. Maple operează cu numere şi nume unite

între ele cu operatori matematici: + (adunare), - (scădere), * (înmulţire), / (împărţire), ^

(ridicare la putere), @ (compoziţie) etc. Practic, lungimea unei expresii nu este limitată.

Exemple

1) Expresii scrise în Maple precum şi rezultatul acestora afişat pe ecran:

> a – b + c/d;

a - b + d

c

• > 5*t^3 + 2*t^2 – t + 19.37;

5 t3 + 2 t2 - t + 19.37

> x^2/9 - y^2/25;

22

25

1

9

1yx −

2) > 6 + 8*5 - 4 + 16 ;

101

Page 12: Prezentare Maple

58

> (6+8)*5-4+16;

82

> (6+8)*(5-4)+16;

30

> (a+b+c)/(a*c);

ac

cba ++

Dacă expresia conţine paranteze de prisos analizatorul sintaxic le va omite.

Deseori se confundă x/y*z cu x/(x*y) sau cu (x/y)*z. Rezultatele acestor secvenţe

sunt:

y

xz,

yz

x,

y

xz.

Numere. Cele mai simple obiecte, totodată şi cele mai simple expresii, cu care

operează Maple sunt cele legate de numere, linii şi nume.

Numere întregi şi raţionale. Maple deopotrivă operează cu numere scrise sub

forma zecimală şi cea fraţionară. Numerele întregi sunt succesiuni formate din una sau

mai multe cifre. Cifra zero de la începutul unui număr întreg este neglijată de programul

Maple. Numerele fracţionare au în componenţa lor operatorul de împărţire (/) pentru a

evidenţia numărătorul şi numitorul.

Exemple

> 00059300461254000;

59300461254000

> - 06354129087;

-6354129087

> + 946713248295100;

946713248295100

102

Page 13: Prezentare Maple

Constante matematice. Printre constantele matematice fac parte:

• Pi – 3,141592653589793238462643…;

• exp(1) – baza logaritmului natural;

• I – 1− (unitatea imaginară);

• infinity – infinit;

• -infinity – minus infinit;

• true, false – constante din algebra Bool, etc.

Posibilitatea exprimării valorilor numerice sub forma lor exactă (de exemplu, 3

1

şi nu 0,33333… ) este un avantaj al algebrei simbolice. De regulă, valorile exacte se

păstrează pe întreg mersul calculelor. În anumite cazuri valorile exacte se transformă în

valori aproximative. Se întâmplă acest lucru atunci când expresiile conţin mai multe

tipuri de date.

Exemple > 2/7 + 5;

7

37

> 2/7 + 5.0;

5.285714286

> Pi/3; Pi/3.0;

3

1 Pi

.3333333333 Pi

103

Page 14: Prezentare Maple

Linii. Succesiunea formată din caractere de orice natură şi cuprinsă între

ghilimele inverse („`”) poartă denumirea de linie Maple. Imaginea ghilimelelor

corespunde apostrofului. Caracterele speciale ( +, ., / etc ) pot fi parte componentă a

unei linii numai dacă sunt cuprinse între ghilimele, de altfel sunt interpretate ca

operatori.

Exemple

> `Grigore C. Moisil este cel care a pus bazele

informaticii în România`;

Grigore C. Moisil este cel care a pus bazele informaticii în România

> `27x + 5xyz - 3x`;

27x + 5xyz - 3x

Semnele + , - fac parte din componenţa liniei. La fel şi semnul / din exemplul ce

urmează. Este parte componentă a liniei

> ` mat.inv.exist./det.dif.zero`;

mat.inv.exist./det.dif.zero

> 27*x +5*x*y*z - 3*x; # Deoarece expresia nu conţine ghilimele rezultă

că + şi – sunt operatori matematici

24x + 5xyz

> integ.def;

integdef

Nume. Prin nume în Maple se înţelege o linie formată din caractere (a – z, A –

Z), cifre ( 0 – 9) şi semnul _ (spaţiu). Numele, la fel ca numerele întregi, pot avea o

lungime „infinită”. Numele Matematica1 este diferit de numele matematica1. Orice

linie, adică orice secvenţă de semne, luată între ghilimele inverse, poate fi un nume.

Numele indicat de o linie formată din semne permise coincide cu numele format din

aceleaşi semne fără ghilimele. Astfel, `Matematica1` şi Matematica1 este unul şi

acelaşi nume. Ghilimelele inverse permit includerea ghilimelelor în textul unei linii.

Funcţia type deosebeşte nume de tip linie – string şi nume indexate – indexed.

Exemple > 2*m^3 - 3 ;

104

Page 15: Prezentare Maple

2m3 – 3

> t : = 5 ; t^2 - 9*t + 10;

t := 5

-10

> `ghilimele `` inverse`;`dintr``un număr`;

ghilimele `inverse

dintr`un număr

> length(0), length(147), length(`Maple este un pachet de programe matematice`), length(abc),

length(x+7*x^2+11);

0, 3, 44, 3, 18

> P[3,4], B[i,2*k-3*m-1], M[3][7], aliaj[Fe,Cu][1,2];

P3,4, Bi,2k-3m-1, 73Μ , 1,2CuFe,aliaj ]

> e:=A[1,2]+A[2,1]-a[1,1]*a[2,2];

e := 2,1Α + 1,2Α - a1,1a2,2

Ghilimele. După cum rezultă de mai sus, ghilimelele inverse servesc la crearea

liniilor. Sistemul Maple mai utilizează şi aşa-numitele ghilimele de accentuare.

Pentru a avea acces la rezultatul unei comenzi, acesteia i se va atribui un nume.

Prin urmare, operatorul cuprins între ghilimele drepte, se eliberează de ele la o

introducere. Altfel spus, executarea se va întrerupe la o trecere prin analizatorul

sintactic, adică de fiecare dată când analizatorul sintactic întâlneşte o expresie luată în

ghilimele drepte suprimă partea exterioară a lor.

Exemple

> ''factor(x^3 - 2*x^2 - 3)'';

'factor(x3 - 2 x2 - 3)'

> 'factor(x^3 - 2*x^2 - 3)';

factor(x3 - 2 x2 - 3)

> factor(x^3 - 2*x^2 - 3);

x3 - 2 x2 - 3

105

Page 16: Prezentare Maple

> ''cos''(Pi) ;

'cos'( π)

> 'cos'(Pi);

cos( π)

> cos(Pi);

-1

Şiruri. Mai multe expresii separate prin virgule formează un şir (o

consecutivitate) de expresii. Majoritatea comenzilor Maple folosesc şiruri de expresii

sub formă de parametri. Modul cel mai simplu de creare a unui şir este introducerea

consecutivă a expresiilor.

Exemple

> 2*a+a,2*b+c,2*c+d,m*n+3*p-q;11,12, 13,sqrt(3),

exp(2);

3 a, 2 b + c, 2 c + d, m n + 3 p - q

11, 12, 13, 3 , 2e

> a, d, c+k, 2*3, 7*sqrt(2);

a, d, c + k, 6, 7 2

Alt mod de creare a şirurilor este utilizarea operatorului„$”( de unul singur sau

împreună cu operatorul multe puncte „ ..”(zonă). Cu ajutorul operatorului „$” se obţin

succesiuni ordonate.

Exemple

> m$8 ;

m, m, m, m, m, m, m, m

106

Page 17: Prezentare Maple

> $1..5;

1, 2, 3, 4, 5

> k^3 $ k = - 2..6;

-8, -1, 0, 1, 8, 27, 64, 125, 216

> 2*i^2 $ i = - 4..6;

32, 18, 8, 2, 0, 2, 8, 18, 32, 50, 72

> m[i] $i = - 1..5;

m-1, m0, m1, m2, m3, m4, m5

Altă modalitate de formare a şirurilor este aplicarea comenzii seq. Această

comandă este de mare folos când se doreşte efectuarea rapidă a calculelor.

Exemple

> seq(i^2/(i!+1), i = 1..7);

5041

49,

721

36,

121

25,

25

16,

7

9,

3

4,

2

1

> seq(D(f),f=[sqrt,cos^2,tan,ln,exp,1/sin]); # D

este operatorul de derivare

sqrt

1

2

1, -2 sin cos, 1 + tan2 , a ->

a

1, exp, -

2sin

cos

> max(exp(1),sin(3*Pi/6),sqrt(10),Pi,int(x^2,x =

2..3));

3

19,

107

Page 18: Prezentare Maple

deoarece 3

19dxx

3

2

2 =∫ .

Mulţime. Sistemul Maple conţine două noţiuni importante: noţiunea de mulţime

şi cea de listă.

Prin mulţime se înţelege o secvenţă neordonată de expresii cuprinse între

acoladele { }. Orice expresie admisibilă în Maple este parte componentă a unei

mulţimi. Elementele mulţimii care se repetă sunt excluse de sistem în mod automat şi se

rearanjează într-o manieră convenţională. Sistemul Maple prevede trei operatori care

operează cu mulţimi: union (uneşte elementele a două mulţimi în una singură),

intersect (creează o mulţime cu elemente comune ale mulţimilor componente) şi

operatorul minus (exclude din prim mulţime elementele celeilalte mulţimi).

Exemple

>{`verde`,`negru`,`write`,+743.569,`club

Internet`};

{club Internet, 743.569, verde, negru, write}

> { -1, -1, -2, -3, 2, -2 }, {a[1], a, c[1],

a[1], c[1]};

{-1, -2, 2, -3}, {a1, a, c1 }

În secvenţele indicate elementele -1 şi -2 precum a1 şi c1 se repetă pe când

rezultatul este returnat fără repetări

> {x, x, y, z, t,11}union{y, t, 11, 11, 17};

{11, 17, x, y, t, z}

> {x, x, y, z, t, 11}intersect{y, t, 11, 11, 17};

{11, y, t}

> {a1, a2, a3}minus{a1, b1, b2}; {x, x, y, z, t,

11}minus{y, t, 11, 11, 17};

108

Page 19: Prezentare Maple

{a2, a3}

{x, z}

Listă. Un şir de expresii luate între paranteze pătrate „ [, ] ”) poartă denumirea

de listă. Listele, spre deosebire de mulţimi, sunt obiecte ordonate în sensul că ordinea

expresiilor în listă se păstrează întocmai pe întreg parcursul calculelor. Elementele care

se repetă nu sunt excluse din listă.

Exemple

> [0, 1, -3.75,sqrt(2.3), 4, 3, 2^3, 1]; [t, y/y^2,m,x^3];

[0, 1, -3.75, 1.516575089, 4, 3 , 8, 1]

[ t, y

1, m, x3 ]

> [a[1], a, c[1], a[1], c[1]];

[a1, a, c1, a1, c1 ]

> [{m,a,c}, {c,a,m}, {s, o, f, t, w, a, r, e}];

[{m, c, a}, {m, c, a}, {t, f, r, s, a, w, o, e}]

Elementele ultimei liste sunt mulţimi. Dacă ordinea elementelor unei mulţimi

poate fi modificată nu acelaşi lucru se poate spune de ordinea elementelor unei liste.

Ordinea iniţială a listei din memorie nu se modifică.

Maple prevede comenzi şi pentru efectuarea de operaţii cu elementele listelor.

Printre aceste comenzi fac parte: select( ), remove( ), zip( ) şi sort( ). Cu

comanda select(parametrul1, parametrul2), în dependenţă de regula indicată ( o relaţie

logică – parametrul1) în listă (parametrul2) se selectează elementele şi se returnează

într-o listă, păstrându-li-se ordinea. Comanda remove( ) exclude din listă elementele

care nu respectă regula stabilită şi returnează lista elementelor rămase. Două liste mai

pot fi unite în una singură cu ajutorul comenzii op( ). Dacă însă unirea se face în

conformitate cu o anumită regulă, atunci se aplică comanda zip( ). Primul parametru

indică regula de unire a perechilor de elemente Comanda sort( ) sortează liste în

109

Page 20: Prezentare Maple

conformitate cu o anumită lege dată. În acest caz parametrul1 este o listă, pe când

parametrul2 – o regulă.

Exemple

> M:= array([x, sin(x), sqrt(x), y]); # Dacă name se referă la un tablou sau

array, atunci Maple returnează intrările tabloului(sau array)

M := [x, sin(x), x , y]

> M[3]; # Maple execută o selecţie a listei propuse, anume elementul 3 din

listă

x

> large := t-> is( t>5 );

large := t -> is( 5 < t )

> d := [-8, 2, 0, 105, 2*Pi, sin(5), 5.5*cos(6)];

d := [-8, 2, 0, 105, 2 Pi, sin(5), 5.5 cos(6)]

> select(large,d);

[105, 2 Pi, 5.5 cos(6)]

> remove(large,d);

[-8, 2, 0, sin(5)]

Mai există şi comanda type( ), care selectează elemente de un anumit tip.

Exemple

> select (type,d,numeric);

[-8, 2, 0, 105]

Fie date listele

A:= [seq(ithprime(i), i = 1..6)];

B:= [seq(binomial(6,i), i=1..6)];

A := [2, 3, 5, 7, 11, 13]

B := [6, 15, 20, 15, 6, 1]

Listele A şi B pot fi unite într-o listă dacă se aplică secvenţa

> [ op(A), op(B)];

110

Page 21: Prezentare Maple

[2, 3, 5, 7, 11, 13, 6, 15, 20, 15, 6, 1]

> zip((a,b) -> {a,b}, A, B);

[{2, 6}, {3, 15}, {5, 20}, {7, 15}, {6, 11}, {1, 13}]

> pare:=(a,b) -> [a,b];

Cu secvenţele > pare := (a, b) -> [a, b] : şi > C:=zip(pare,A,B);

se obţine o listă de liste:

C := [[2, 6], [3, 15], [5, 20], [7, 15], [11, 6], [13, 1]]

Lista de liste ajută la construirea graficelor. Astfel, pentru lista de liste

> M:= [[0,0],[2,5], [5, 7], [8,13],[8.76,12],[11, 6],[12.7,9], [15,0]];

M := [[0, 0], [2, 5], [5, 7], [8, 13], [8.76, 12], [11, 6], [12.7, 9], [15, 0]]

prin intermediul comenzii plot se obtine graficul din fig.8.4

> plot(M);

Fig.8.4

Iată şi câteva cazuri de ordonare:

> sort([3.75,5,21/3,1.15],(x,y)->evalb(x>y)); # se scriu

elementele listei conform legii indicare( în cazul dat în ordinea

descrescătoare):

[7, 5, 3.75, 1.15]

> bf:= (x,y)->is(x<y);

bf := (x, y) -> is(x < y)

> sort([sqrt(5.6),sqrt(5.67), Pi, cos(4.25), 3.69,

int(x^2, x = 0..2)], bf); # ordinea elementelor este

111

Page 22: Prezentare Maple

cea crescătoare:

[-.4460874899, 2.366431913, 2.381176180, 3

8, π, 3.69]

8.3. Operatori Maple

Sistemul Maple admite mai mulţi operatori: aritmetici, logici, de concatenare, de

derivare, de compoziţie etc. Operatorii au o importanţă aparte la crearea expresiilor şi

efectuarea operaţiilor matematice.

8.3.1. Operatorul de atribuire

Operatorul de atribuire este „:=” şi, de regulă, se aplică în cazurile când unui

nume trebuie să i se atribuie o valoare. Dacă unei variabile x i se atribuie o valoare ( de

exemplu, 105) apoi, în continuare, i se va atribuie o altă valoare (de exemplu, 17)

programul Maple „ţine minte” doar ultima valoare. Operatorul „=”, spre deosebire de

operatorul „:=” , stabileşte o legătură între variabilă şi valoarea expresiei.

Operatorul „=” , numit operator-ecuaţie, se aplică în cazurile când se apelează la

parametrii unei comenzi sau când se cer extrase rezultatele calculelor. Unele comenzi

Maple funcţionează doar datorită operatorului „=”. Printre acestea fac parte şi

comenzile ce ţin de rezolvarea diferitor tipuri de ecuaţii:

• solve – rezolvă în mod analitic ecuaţii liniare şi neliniare, inegalităţi şi

sisteme de ecuaţii,

• fsolve – rezolvă numeric ecuaţii liniare şi neliniare, inegalităţi si

sisteme de ecuaţii,

• dsolve – rezolvă ecuaţii diferenţiale ordinare,

• rsolve – rezolvă ecuaţii recurente.

Exemple

> a = b + 21 ;

a = b + 21

> a;

112

Page 23: Prezentare Maple

a

> b;

b

> sols:= solve({2*x = 8, x - 2*y = -1}, {x, y});

sols := {x = 4, y = 2

5}

> x;

x

> y;

y

8.3.2. Ditto – operatori

Ditto – operatorii sunt de tip nulari şi se referă la expresiile calculate anterior.

Forma acestor operatori este „ % ”, „ %% ” şi „ %%% ”. Operatorul „ % ” recheamă

rezultatul comenzii anterioare, operatorul „ %% ” recheamă rezultatul comenzii

executate până la rezultatul anterior şi, în sfârşit, „%%%” recheamă rezultatul de mai

înainte.

Exemplu Să se calculeze soluţia sistemului de ecuaţii liniare

=+−=++=++

.3334

,243

,122

321

321

321

xxx

xxx

xxx

Stabilim cinci semne după virgulă (comanda Digits()) şi scriem sistemul:

> Digits:=5:2*x[1]+x[2]+2*x[3]=1;3*x[1]-4*x[2]+x[3]=2;4*x[1]-3*x[2]+3*x[3]=3;

= + + 2 x1

x2

2 x3

1

= − + 3 x1

4 x2

x3

2

= − + 4 x1

3 x2

3 x3

3

113

Page 24: Prezentare Maple

> solve({%,%%,%%%},{x[1],x[2],x[3]}); evalf(%);# Parametrii

%, %%, %%% din parantezele figurate a comenzii solve( ) înseamnă adresarea

către ecuaţia a treia (%), ecuaţia a doua (%%) şi prima ecuaţie (%%%).

Argumentul comenzii evalf( ) înseamnă rezultatul returnat de comanda

solve( ), adică soluţia 3

1,

3

2,0 321 −=== xxx transformată în

fracţie zecimală

{ }, , = x1

0 = x3

23

= x2

-13

{ }, , = x1

0. = x3

0.66667 = x2

-0.33333

8.3.3. Operatorul de concatenare

Reuniunea mai multor linii în una singură poate fi obţinută şi cu ajutorul

operatorului

cat ( `A`, `B`, `C`, …)

unde `A`, `B`, …sunt linii. Comanda returnează linia `ABC…`.

Un instrument util pentru formarea de nume şi linii este şi semnul de

concatenare„.” (punct), cu ajutorul căruia pot fi create mulţimi de nume.

Exemple

> cat(`Mihai Eminescu-` , `poetul nepereche`);

Mihai Eminescu-poetul nepereche

> seq(nume.i, i=2..6);

nume2, nume3, nume4, nume5, nume6

> add(M.k, k=1..5);

M1 + M2 + M3 + M4 + M5

8.3.4. Operatorul de compoziţie

114

Page 25: Prezentare Maple

Operatorul de compoziţie se aplică la crearea funcţiilor compuse şi are forma:

• f@g când se doreşte crearea compoziţiei funcţiilor f şi g sau

• f@@n când se aplică f de n ori.

Exemple

> (ln@sin)(x);

ln(sin(x))

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

:= f → x2

+ 1 x2

2

+ 14

+ 14

+ 14

+ 14

+ 14

( ) + 1 x22

2

2

2

2

> g:=t->sqrt(t)/(1-t^4);(g@@3)(t);

:= g → tt

− 1 t4

t

− 1 t4

− 1t2

( ) − 1 t44

− 1t

( ) − 1 t42

− 1t2

( ) − 1 t44

4

8.3.5. Operatorul neutru

115

Page 26: Prezentare Maple

Acest operator este determinat de utilizator. Numele unui astfel de operator

trebuie să înceapă neapărat cu caracterul & urmat de caractere permise. Nu pot fi părţi

componente ale operatorului caracterele &, ( ), [ ], { }, ; , : , ‚” , #, _ etc.

Operatorul neutru depinde de următoarele comenzi:

¿ define (aa(oper)), unde oper este un nume a operatorului, aa este nume a

obiectului,

¿ define (oper, propriety1, propriety2, …), unde oper este nume, iar

propriety sunt proprietăţi ale operatorului. Cu aceste comenzi se determină

regulile pentru calcule şi de simplificare ale operatorului.

Exemplu

> define(Linear(`&L`));

> &L(5*(x^2)+3*(y+2*x) – 8x);

5 &L(x2) + 3 &L(y) - 2 &L(x)

8.4. Funcţii Maple

Maple oferă mai multe posibilităţi de prezentare a funcţiilor. Mai întâi, dacă

expresiei i se atribuie un nume, acest lucru înseamnă că numele propriu-zis este o

funcţie în raport cu variabilele care fac parte din expresie.

Exemplu

> h := x^3 - 5*sin(x) + 7*cos(x)^2 - 4.575:

> h;

x3 - 5 sin(x) + 7 cos(x)2 - 4.575

Prin intermediul operatorului „:=" variabila h coincide cu valoarea expresiei

x3-5sin(x)+7cos(x)2-4.575 . Introducând acum

> x; # în cazul dat variabila x nu are o valoare numerică

x

116

Page 27: Prezentare Maple

Dacă însă

> x := 3;

x := 3

> h; # h va primi valoarea :

22.425 - 5 sin(3) + 7 cos(3)2

sau, dacă se aplică ditto operatorul, rezultă că

> evalf(%);

28.57999596

adică am obţinut valoarea expresiei x3 - 5 sin(x) + 7 cos(x)2 - 4.575 pentru x =

3. Prin urmare, variabila h este valoarea expresiei matematice cu numele h.

Pentru diverse valori atribuite variabilei x şi h va primi valori diferite. Prin

urmare, variabila h este o funcţie de x.

Maple conţine un număr mare de funcţii: funcţii standard şi funcţii speciale. Iată

lista unora din aceste funcţii (vezi tab. 8.1)

Tabelul 8.1. Funcţii standard

Scriere

matematică

Scriere în

Maple

Scriere

matematică

Scriere în

Maple ex exp(x) cosecx csc(x) lnx ln(x) arcsinx arcsin(x) lgx log10(x) arccosx arccos(x) logax log[a](x) arctgx arctan(x) √x sqrt(x) arcctgx arccot(x) |x| abs(x) shx sinh(x) sinx sin(x) chx cosh(x) cosx cos(x) thx tanh(x) tgx tan(x) cthx coth(x) ctgx cot(x) δ (x) dirac(x) secx sec(x) θ (x) Heaviside(x)

Variabila h poate fi variabilă şi pentru alţi operatori de atribuire.

117

Page 28: Prezentare Maple

Exemplu

> y:= 2*h^2-sqrt(13.5)*h + 2;# h este variabilă pentru expresia y

y := 2 (22.425 - 5 sin(3) + 7 cos(3)2 )2 --80.39471122 + 18.37117307 sin(3)

25.71964230 cos(3)2

> evalf(%);

1530.622728

8.5. Structuri Maple

Expresiile sunt formate din mai multe tipuri de obiecte. Printre acestea fac parte

string, interger, fraction, float, function, operatorii aritmetici +,

*, ^ etc. Tipul obiectului poate fi definit cu ajutorul comenzii whattype( ).

Exemple

> whattype(21/315);

fraction

> whattype([a1,a2,a3,a4,a5,a6]);

list

> whattype([3,4,7,8,9,13],[a[1],a[2],a[3]]);

exprseq

> whattype((z^3 + 2*z -7)*(x - y));

*

Tipul obiectului de asemenea poate fi consultat în orice moment însă nu poate fi

afişat dinnainte aşa cum se procedează, de exemplu, în limbajul Fortran când tipul

variabilei se stabileşte pe întreg parcursul funcţionării programului. Tipul variabilei

poate fi obţinut cu ajutorul comenzii type( ).

Exemple

118

Page 29: Prezentare Maple

> H:= ` România - ţară pitorească`; M:= `Maple este un

program universal de calcule matematice`;

H := România - ţară pitorească

M:= Maple este un program universal de calcule matematice

> type(H, integer); type (M, fraction); type(M, string);

false

false

true

> whattype ( x= z^3 +z - 1);

=

Analiza structurii obiectelor se efectuează cu comanda hastype( ). În felul

acesta se stabileşte dacă un obiect conţine subobiecte de un anumit tip. Comanda

has( ), la rândul ei, indică dacă în componenţa obiectului se conţine un anumit

subobiect.

Exemple

> hastype(205 +13/15, fraction); hastype(205+13/15, integer);

true

false

> hastype(x^2-7*x-5, `*`);

true

> hastype(x^2-7*x-5, -5);

true

> has(x^2-7*x-5, 2*x); has(x^2-7*x-5, -7*x);

false

true

> hastype(int(sin(sqrt(x)), x), fraction); int(sin(sqrt(x)),n x);

true

119

Page 30: Prezentare Maple

2 sin( x ) - 2 x cos( x )

Orice obiect Maple constă din subobiecte care, la rândul lor, au în componenţa

lor obiecte de alt tip (de un nivel mai mic) şi tot aşa până când se va ajunge la obiectele

de bază.

Mijloacele Maple permit examinarea şi extragerea elementelor bazice care fac

parte din obiect. Această posibilitate este de mare folos atunci când se operează cu

obiecte mari. Pentru astfel de cazuri sunt prevăzute comenzile op( ) şi nops( ), care se

referă în mod direct la tipului obiectului. În cazul când obiectul supus analizei este o

expresie comanda nops( ) va indica numele subobiectului (expresiei) de prim nivel care

este parte componentă a obiectului, iar comanda op( ) poate fi aplicată pentru

evidenţierea acestor subobiecte.

Exemple

> f:=6.5*x^(1/3) + 3*sin(x)^2*cos(x) + 2*sqrt(x) –3*x– 7;

f := 6.5 x1/3 + 3sin(x)2cos(x) + 2 x – 3 x – 7

> nops(f); # numărul obiectelor expresiei

5

> op(f); # obiectele componente ale expresiei

6.5 x1/3 , 3sin(x)2 cos(x), 2 x , –3 x, –7

Comanda op( ) poate fi folosită şi la extragerea elementelor individuale ale

expresiei sau, dacă se aplică de mai multe ori, poate să „coboare” până la subobiecte.

Exemple

> g:= 3*x^3+x*sin(x)-2/cos(x)+23; d:= f;

g := 3 x3 + x sin(x) - 2

cos x + 23

d := 6.5 x1/3 + 3sin(x)2cos(x) + 2 x – 3 x – 7

> op(1,g); op(2,f); op(3,g); op(4,g);

120

Page 31: Prezentare Maple

3 x3

3 sin(x)2 cos (x)

- 2

cos x

23

> x:=Pi/6; g; evalf("); x:=Pi; g; evalf("); x:=3; f; evalf(");

x := 16

π

1

72π3

1

12π−

433 + 23

21.38304104

x := π

3 π3 + 25

118.0188301

x := 3

6.5 ¿31/3 + 3 sin(3)2cos(3) + 2 3 - 16 (observăm

că programul în mod automat a calculat –3x –

7 pentru x = 3)

- 3.22042285

> op(1,op(2,g)); op(1,op(1,g)); op(0,op(4,g)); op(2,op(3,g));

x

3

integer

1

cos x

> whattype(op(2,g);

expreseq

> op(0,op(1,g));

integer

121

Page 32: Prezentare Maple

Dacă obiectul luat spre examinare este o variabilă cu indice (cu numele N)

comanda nops( ) va returna indicele variabilei, comanda op(i, N) va returna indicele i,

iar op(0, N) – numele variabilei.

Exemple

> nops(A[i, j]); nops(A[m][n]);

2

1

> op(1,A[i,j]); op(1,A[m][n]);

i

n

> op(0,A[2,3]);

A

8.6. Operaţii analitice cu comenzi Maple

Maple este conceput ca utilizatorul să poată să grupeze termenii unei expresii, să

descompună expresiile în factori, să deschidă paranteze, să transforme o fracţie raţională

în fracţii elementare etc. Maple mai prevede comenzi pasive şi comenzi active.

Comenzile cu forma activă fac calcule imediat, returnând rezultatul pe foaia de lucru, pe

când comenzile pasive – afişează doar înscrierea matematica a expresiei. Deosebirea

dintre o comandă activă şi una pasivă este că comanda pasivă începe cu o literă mare.

Printre comenzile cu două forme amintim cele legate de calcularea derivatei (diff( ) şi

Diff( )), integralei (int( ) şi Int( )), sumei (Sum( ) şi sum( )), produsului

(product( ) şi Product( )) etc.

8.6.1. Comanda simplify( )

Expresiile algebrice pot fi aduse la o formă mai simplă cu ajutorul comenzii

simplify( ). În general, problema simplificării în majoritatea sistemelor de calcule

122

Page 33: Prezentare Maple

analitice nu este simplă. În unele cazuri unele simplificări pot fi considerate simple, iar

în alte cazuri, aceleaşi modificări, din alt punct de vedere, se consideră compuse. De

exemplu, atunci când se rezolvă o ecuaţie trigonometrică nu întotdeauna este raţional să

înlocuim sin(x)2 + cos(x)2 cu 1, deşi această operaţie, fără doar şi poate, este o

simplificare. Uneori, însă, e mai bine ca 1 să se prezinte prin suma sin(x)2 + cos(x)2. În

Maple comanda simplify( ) operează cu mai multe proceduri: simplify/exp,

simplify/ln, simplify/sqrt, simplify/trig, implify/radical,

simplify/power etc.

Exemple Să se aducă la o formă mai simplă expresiile:

a) A = + + + + 2 ( )cos x 2 4 ( )sin x ( )cos x ( )cos x ( )sin x 1

− + + − 4 ( )cos x 2 2 ( )sin x ( )cos x 3 ( )cos x 3 ( )sin x 3 ,

b) B =

+ + ( )sin − π α 2 ( )tan − π α 2

tan +

3 π2

α2

sin +

π2

α ( )cos − α 2 π ,

c) C = − + + − a3 b3 3 a2 b 2 c 3 a b2

Avem:

> simplify(A);

+ 1 ( )sin x( )cos x

> simplify(sin(Pi-alpha)^2+tan(Pi-alpha)^2*tan(3*Pi/2+

alpha)^2+sin(Pi/2+alpha)*cos(alpha-2*Pi));

2

> B:=sin(Pi-alpha)^2+tan(Pi-alpha)^2*tan(3*Pi/2+

alpha)^2+sin(Pi/2+alpha)*cos(alpha-2*Pi); # Observăm

că sistemul şi fără comanda simplify( ) a adus expresia la o formă mai simplă

:= B + + ( )sin α 2 ( )tan α 2 ( )cot α 2 ( )cos α 2

> simplify(B);

2

> C:=a^3-b^3+3*a^2*b+2*c-3*a*b^2: simplify(C,{a^3-

3*a*b^2=1,3*a^2*b=b^3});

+ 2 c 1

123

Page 34: Prezentare Maple

8.6.2. Comanda expand( )

Parantezele într-o expresie algebrică pot fi deschise(închise) cu comanda

expand( ). Pentru o fracţie algebrică comanda deschide paranteze la numărător, apoi

împarte fiacare termen al expresiei obţinute la numitorul fracţiei fără a efectua

transformări. Comanda „ştie să lucreze” cu funcţii matematice şi „cunoaşte” regulile de

deschidere a parantezelor în expresiile care conţin funcţiile sin( ), cos( ), tg( ), sh( ),

ch( ), th( ), ln( ), exp( ), abs( ), precum şi un număr mare de funcţii matematice

speciale.

Exemple Să se deschidă parantezile în expresiile:

a) ( ) − x 3 ( ) + x 4 2, b)

( ) − x 2 3

( ) + x 2 2 , c) ( )sin + + x y z , d)

( ) + x 1 2 ( ) + − y 2 z 3 t (faţă de x+1).

Avem

> expand((x-3)*(x+4)^2);expand((x-2)^3/(x+2)^2);

expand(sin(x+y+z));expand((x+1)^2*(y+2*z-3*t),x+1);

+ − − x3 5 x2 8 x 48

− + − x3

( ) + x 2 2

6 x2

( ) + x 2 2

12 x

( ) + x 2 2

8

( ) + x 2 2

( )sin x ( )cos y ( )cos z ( )sin x ( )sin y ( )sin z ( )cos x ( )sin y ( )cos z − + ( )cos x ( )cos y ( )sin z +

+ − ( ) + x 1 2 y 2 ( ) + x 1 2 z 3 ( ) + x 1 2 t

8.6.3. Comanda factor( )

Un polinom cu coeficienţi numerici se descompune în factori cu ajutorul comenzii

factor( ).

Exemple

Să se descompună în factori:

> factor(x^3*y+x^3*b+a*x^2*y+a*b*x^2+2*x^2*y^2+2*b*x^2

*y+2*a*x*y^2+2*a*b*x*y+x*y^3+b*x*y^2+a*y^3+a*b*y^2);

124

Page 35: Prezentare Maple

( ) + x y 2 ( ) + y b ( ) + x a

> E:=3*sin(x)*cos(x)^2+sin(x)^3-cos(x)^3-

3*sin(x)^2*cos(x):factor(E);

( ) − ( )sin x ( )cos x 3

> factor(4*x^2+16*x-20);

4 ( ) + x 5 ( ) − x 1

> factor(x^3-7,complex);factor(x^3-7,real);

( ) + x + .9564655914 1.656647000 I ( ) + x − .9564655914 1.656647000 I

( ) − x 1.912931183

( ) − x 1.912931183 ( ) + + x2 1.912931183 x 3.659305710

> factor(a^3-b^3);

( ) − a b ( ) + + a2 a b b2

8.6.4. Comanda normal( )

O fracţie algebrică poate fi redusă cu comanda normal( ). Dacă parametrul este

o listă, o mulţime, un şir, o ecuaţie sau o funcţie comanda se aplică tuturor

componentelor parametrului.

Exemple > fracţie:=1/(x+1) - 1/(x+2) + x/(x+1);

:= fractie − +

1 + x 1

1 + x 2

x + x 1

> fracţie:=normal(fracţie);

:= fractie

+ x 1 + x 2

> normal((x^3+y^3)/(x+y)^3);

− + x2 y x y2

( ) + x y 2

> normal(sin((x*(x^2-1)+x)/(x^2)));

( )sin x

> m:=tan(x/(x+1)-x)^2+cot(-x/(x+1)+x);normal(m);

125

Page 36: Prezentare Maple

:= m +

tan −

x + x 1

x2

cot − +

x + x 1

x

+

tan

x2

+ x 1

2

cot

x2

+ x 1

8.6.5. Comanda combine( )

Gruparea termenilor unei expresii se obţine cu comanda combine( ).

Comanda, practic, „cunoaşte” toate regulile ce ţin de transformările funcţiilor

matematice elementare.

Exemple > combine(Int(cos(x),x=-Pi..Pi)-Int(sin(x),

x=-Pi..Pi));

d⌠

⌡−π

π

− ( )cos x ( )sin x x

> combine(Limit(2^x,x=a)*Limit((2^x)^b,x=a)+C);

lim → x a

+ 2( ) + x x b

C

> combine(exp(x)*exp(y^3)*exp(ln(cos(alpha)*

sin(alpha))),exp);

( )cos α ( )sin α e( ) + x y3

> P:=4^sqrt(x)*6^y*7^z*24^t:combine(P, power);

combine(x^(cos(a)^2),power);

4( )x

6y 7z 24t

x( )( )cos a 2

> combine([8*cos(x)^3*sin(x)-4*sin(x)*cos(x),

8*cos(x)^4-8*cos(x)^2+1],trig);

[ ],( )sin 4 x ( )cos 4 x

126

Page 37: Prezentare Maple

8.6.6. Comanda collect( )

Termenii asemenea pot fi grupaţi cu comanda collect( ).

Exemple

> E:=a*sin(x)-sin(x)*2-a*cos(x)+2*cos(x)*sin(x);

:= E − − + a ( )sin x 2 ( )sin x a ( )cos x 2 ( )sin x ( )cos x

> F:=collect(E,sin(x));

:= F − ( ) − + a 2 2 ( )cos x ( )sin x a ( )cos x

> H:=collect(F,cos(x));

:= H + ( ) − 2 ( )sin x a ( )cos x ( ) − a 2 ( )sin x

> g:=int(x^2*(exp(x)-exp(-x))+x^2,x);

:= g − + + + + + x2 e x 2 x e x 2 e x x2

e x

2 x

e x

2

e x

13

x3

> collect(g,exp(x));

+ + ( )− + + 2 x 2 x2 e x 1

3x3 + + 2 x 2 x2

ex

> collect(g,x);

+ + + +

13

x3

+

1

e xe x x2

− 2

1

e x2 e x x

2

e x2 e x

8.6.7. Comanda rationalize( )

Cu rationalize( ) se obţin transformări cu fracţii numerice şi algebrice.

Dacă argumentul funcţiilor transcendente este o fracţie cu iraţionalităţi la numitor

procedura de raţionalizare nu funcţionează.

Exemple > expresia_1:=6/(3-sqrt(3));

:= expresia_1 6

1

− 3 3

> rationalize(expresia_1);

127

Page 38: Prezentare Maple

+ 3 3

> expr_2:=(1+3^(1/3))/(1-3^(1/3));

:= expr_2

+ 1 3( )/1 3

− 1 3( )/1 3

> rationalize(%);

12

( ) + 1 3( )/1 3

( ) + + 1 3( )/1 3

3( )/2 3

> rationalize([x/(x-sqrt(5)),x/(x-sqrt(1+sqrt(5)))]);

,

x ( ) + x 5

− x2 5

x ( ) + x + 1 5 ( ) − + x2 1 5

− − x4 2 x2 4

> f:=[(x^2-y^2)/(x+sqrt(y)),x^2*y/(x+sqrt(x+sqrt(7)))];

:= f

, − x2 y2

+ x y

x2 y

+ x + x 7

> rationalize(f);

,

( ) − x2 y2 ( ) − x y

− x2 y

x2 y ( ) − x + x 7 ( ) − + x2 x 7

− + − x4 2 x3 x2 7

> 1/(1+root(cos(1/(1-sqrt(beta))),3));

1

+ 1

cos

1

− 1 β

( )/1 3

> rationalize(%);

− + 1

cos

1

− 1 β

( )/1 3

cos

1

− 1 β

( )/2 3

+ 1

cos

1

− 1 β

> f1:=1/(1-(1+sqrt(alpha))^(1/3));rationalize(%);

1

− 1 ( ) + 1 α

13

− + + 1 ( ) + 1 α

13

( ) + 1 α

23

α

128

Page 39: Prezentare Maple

8.6.8. Alte comenzi

Pentru simplificarea expresiilor, care conţin radicali de ordin diferit de ordinul

doi, se apelează la comanda radnormal( ).

Exemple

>sqrt(3+sqrt(3)+(10+6*sqrt(3))^(1/3))=radnormal(sqrt(3

+sqrt(3)+(10+6*sqrt(3))^(1/3)));

= + + 3 3 ( ) + 10 6 3( )/1 3

+ 1 3

Comanda convert(exp, param) transformă exp în tipul indicat de param. In

particular, poate fi transformată o expresie care conţine sinx şi cosx într-o expresie care

va conţine doar tgx dacă se va indica param = tan sau, invers, tgx, ctgx pot fi

transformate în sinx şi cosx dacă se indică parametrul sin sau cos.

În general, menirea comanzii convert( ) este convertirea unei expresii în altă

expresie. Astfel, de exemplu,

>convert(list, vector);

transformă o listă de expresii de un anumit tip într-o listă de alt tip (cu aceleaşi

elemente).

129

Page 40: Prezentare Maple

C a p i t o l u l 9

PACHETE ŞI GRAFICĂ MAPLE

9.1. Pachete ale algebrei liniare

9.1.1. Noţiuni de bază

Sistemul Maple dispune de un nucleu şi o bibliotecă cu un număr impresionat de

pachete specializate care conţin comenzi pentru rezolvarea problemelor din cele mai

diferite compartimente ale matematicii. Astfel, versiunea Maple 6 are în componenţă 40 de

astfel de pachete, iar Maple 9 deja conţine 85 de astfel de pacete.

Biblioteca de bază conţine cele mai des folosite comenzi care se încarcă odată cu

lansarea sistemului. Dacă, însă, o comandă nu face parte din biblioteca de bază sau din

nucleu, utilizatorul este obligat să încarce pachetul în componenţa căruia se află comanda

în cauză sau, pur şi simplu, doar comanda care-l interesează din pachetul respectiv.

Comenzile unui pachet se încarcă cu with(nume pachet) sau, dacă se doreşte încărcarea

doar a unei comenzi, atunci se apelează la with(nume pachet, nume comandă).

Lista celor mai des folosite pachete ale sistemului Maple este următoarea:

alcurves, combinat, genfunc, geometry, geom3d, plots, group, linalg,

GF, LinearAlgebra, networks, plottools, powseries, simplex, stats,

tensor, DiscreteTransforms, GaussInt, context, LinearOperators,

MathematicalFunctions, MatrixPolynomialAlgebra, OreTools, Sudent,

Student[Calculus], Sumtools, sumtools, Student[LinearAlgebra],

Student[Precalculus], VariationalCalculus, VectorCalculus,

student etc.

130

Page 41: Prezentare Maple

Utilizatorii interesaţi de un anumit pachet sau de o funcţie pot obţine informaţia

necesară, adresându-se Sistemului de informaţie Help.

9.1.2. Pachetul linalg

Sistemul Maple (începând cu versiunea 6) prevede două pachete care conţin

comenzi pentru efectuarea celor mai diverse transformări din algebra liniară. Acestea sunt

linalg şi LinearAlgebra, funcţionalitatea cărora este aproape identică. Dacă

pachetul linalg este parte componentă a tuturor versiunilor anterioare ale sistemului

Maple, pachetul LinearAlgebra reprezintă o nouă modalitate de lucru cu matricele

numerice, inclusiv şi cu matricele de dimensiuni mari.

Obiectele de bază cu care operează comenzile acestor pachete sunt matricele, însă

noţiunea de matrice din linalg nu este echivalentă cu cea a pachetului

LinearAlgebra. Pachetul linalg „construieşte” matrice cu comanda (funcţia)

array( ), iar LinearAlgebra utilizează obiecte bazate pe structura r-table. Matricele

şi vectorii sunt create de constructorii speciali Vector( ) şi Matrix( ) sau de structura

<a, b, c> (<a|b|c>). Pachetul linalg operează cu matrice la nivel de nume, adică nu

pot fi efectuate operaţii asupra elementelor matricelor. Pentru efectuarea unor astfel de

operaţii este nevoie şi de comanda evalm( ). Pachetul LinearAlgebra, la rândul său,

conţine comenzi cu ajutorul cărora pot fi efectuate operaţii la nivel de elemente ale

matricelor.

Pachetul linalg conţine comenzi pentru scrierea matricelor şi vectorilor, propune

un număr mare de comenzi pentru operarea cu diverse structuri ale obiectelor pentru

rezolvarea sistemelor de ecuaţii liniare, pentru eterminarea valorilor şi vectorilor proprii a

unei matrice, pentru transformarea matricelor sub diverse forme etc.

Matricele sau vectorii în Maple se definesc fie cu comanda array( ) (din biblioteca

standard), fie cu comenzile marix( ) şi vctor( ). Comanda array( ) are forma

array(intervale, listă, opţiuni);

Parametrii comenzii nu sunt obligatorii, ordinea acestora fiind arbitrară. Parametrul

intervale sunt numere întregi despărţite prin virgulă. Valorile elementelor intervalului sunt

date de parametrul listă sub formă de listă pentru intervale unidimensionale sau sub formă

131

Page 42: Prezentare Maple

de listă de liste pentru intervale de mai multe dimensiuni. Parametrul opţiuni poate primi

valorile symmetric, antisymmetric, identy şi diagonal.

Exemple > vec1:=array(1..3,[x[1],x[2],x[3]]);vec2:=

array(1..2,[4,-7]);

:= vec1 [ ], ,x

1x

2x

3

:= vec2 [ ],4 -7

> matr:=array(1..2,1..2,[[a[11],a[12]],[a[21],a[22]]]);

:= matr

a11

a12

a21

a22

> A:=array(1..3,1..3,[[1,0,-1],[2,1,4],[2,-6,0]]);

:= A

1 0 -12 1 42 -6 0

Vectorii şi matricele, după cum a fost menţionat mai sus, se obţin şi cu ajutorul

comenzilor vector( ) şi matrix( ):

vector (n, [elementul 1, elementul 2, … ] );

matrix (n, m, [ elementul 1, elementul 2, …] );

Exemple > vect:=vector(2,[a[1],a[2]]); b:=vector(3, [2,0,-9]);

:= vect [ ],a1

a2

:= b [ ], ,2 0 -9

> A:=matrix(2,3,[a[11],a[12],a[13],a[21],a[22],a[23]]);

:= A

a11

a12

a13

a21

a22

a23

132

Page 43: Prezentare Maple

Maple conţine comezi care evidenţiaază substructuri ale matricei: coloane, linii,

submatrice, minori. Comanda row(A, i ) indică linia i în matricea A, iar col(A, j ) –

coloana j. Cu submatrix(A, i1..in, j1..jm) se extrag submatrice din matricea dată. În

cazul unui vector se apela la comanda subvector(vec, i1..in). Dacă, însă, pentru o

matrice dată se doreşte evidenţierea minorului Mij , atunci se aplică comanda minor(A, i, j)

Exemple > F:=matrix(4,3,[cos(x),sin(x),tan(x),x,x^2,

x^3,t,t^2,t^3,2,8,16]);

:= F

( )cos x ( )sin x ( )tan x

x x2 x3

t t2 t3

2 8 16

> row(F,3);col(F,2..3);

[ ], ,t t2 t3

,[ ], , ,( )sin x x2 t2 8 [ ], , ,( )tan x x3 t3 16

> F1:=submatrix(F,2..4,2..3);

:= F1

x2 x3

t2 t3

8 16

> F2:=extend(F,0,1,4);F3:=minor(F2,3,4);

:= F2

( )cos x ( )sin x ( )tan x 4

x x2 x3 4

t t2 t3 4

2 8 16 4

,

:= F3

( )cos x ( )sin x ( )tan x

x x2 x3

2 8 16

133

Page 44: Prezentare Maple

9.1.2.1. Operaţii cu matrice

Comanda evalm( ) adună matrice. Amintim, evalm( ) efectuează operaţii la nivel

de obiecte, folosind operaţiile: + (adunare), - (scădere), &* (înmulţire ), / (împărţire), ^

(ridicare la putere ). Prin urmare, suma a două matrice (de aceleaşi dimensiuni) poate fi

obţinută cu evalm(A+B).

Produsul matricelor A şi B este rezultatul comenzilor multiply(A, B) sau

evalm(A&*B) cu condiţia că dimensiunile matricelor sunt de natură ca operaţia în cauză

să aibă loc.

Exemple > with(linalg):A:=array([[1,2],[3,4]]);B:=

array([[1,-1],[0,-1]]);

:= A

1 2

3 4 , := B

1 -1

0 -1

> C1:=evalm(A+2*B);C2:=evalm(2*A+B^2);

:= C1

3 03 2 ,

:= C2

3 46 9

> C3:=evalm(sin(A));C4:=evalm(A&*B);

:= C3

( )sin 1 ( )sin 2( )sin 3 ( )sin 4 ,

:= C4

1 -33 -7

Cu evalm(A^k) poate fi obţinută matricea Ak, iar comenzile inverse(A) sau

evalm(1/A) calculează Aˉ1. Matricea transpusă AT se va obţine cu transpose(A).

Determinantul matricei A şi rangul acesteia se obţin cu ajutorul comenzilor det(A) şi

rank(A).

Exemple > A := array( [[1,-x],[2,3]] );B:=array([[2,3],

134

Page 45: Prezentare Maple

[0,1]]);

:= A

1 −x2 3 ,

:= B

2 3

0 1

> B1:=evalm(B^3);B2:=inverse(B);A1:=inverse(A);

:= B1

8 210 1 ,

:= B2

12

-32

0 1 , := A1

31

+ 3 2 xx

+ 3 2 x

−21

+ 3 2 x1

+ 3 2 x

> multiply(B2,B);A2:=multiply(A,A1);

1 0

0 1

:= A2

+ 31

+ 3 2 x2 x

+ 3 2 x0

0 + 31

+ 3 2 x2 x

+ 3 2 x

> simplify(A2);

1 00 1

> A3:=transpose(A);B3:=transpose(B1);

:= A3

1 2

−x 3 , := B3

8 021 1

> rank(B);rank(B3);det(A);det(A1);

2, 2, 3+2x, 1

+ 3 2 x

135

Page 46: Prezentare Maple

9.1.3. Pachetul LiniarAlgebra

Acest pachet este realizat sub forme de module, bazându-se pe o nouă construcţie a

limbajului Maple. Comenzile pachetului pot fi chemate cu ajutorul operaţiei adresării către

obiect „ : –”.

> LinearAlgebra:-nume_comandă(parametri);

Înainte de a pune în funcţiune o comandă a acestui pachet trebuie activat:

with(LinearAlgebra); sau o comandă în aparte with(LinearAlgebra,

nume_comandă);

Pachetul LinearAlgebra operează cu scalari, expresii algebrice, matrice,

vectori. Matricele şi vectorii sunt opera constructorului de matrice şi a constructorului de

vectori. Constructorul de matrice este comanda Matrix( ), care are forma:

Matrix(r,c,init,ro,sc,sh,st,o,dt,f,a);

Semantica parametrilor şi valorile admisibile sunt indicate în tabelul 9.1.

Tabelul 9.1. Parametrii constructorului de matrice

Parametrul Semnificaţia

r Număr nenegativ sau o zonă de numere întregi pozitive care începe cu 1 şi reprezintă numărul liniilor matricei

c Număr nenegativ sau o zonă de numere întregi pozitive, care încep cu 1 şi reprezintă numărul coloanelor matricei

i n i t I n d i c ă v a l o r i l e e l e m e n t e l o r m a t r i c e i . P o a t e f i :

procedură - parametru de intrare: un cuplu de numere întregi care determină indicii elementului şi returnează valoarea elementului, de exemplu, (i, j) → (i*j);

expresie algebrică care se calculează ca o procedură de doi parametri şi returnează valorile elementului;

tabel, elementele căruia (cu indici nenegativi), reprezintă elementele matricei;

o mulţime de ecuaţii de forma (i, j) = valoare, unde indicii nenegativi sunt indicii elementelor matricei ;

136

Page 47: Prezentare Maple

tablou bazat pe r-tabele, creat de comanda array( ) sau Array( ), indicele începe cu 1;

matrice bazată pe r-tabel, creată de constructorul Matrix(,);

listă - elementele căreea sunt interpretate ca valori a liniei 1 ale matricei sau listă compusă din liniile a matricei ;

r o Are forma readonly sau readonly = true; valorile elementelor matricei nu pot fi modificate

s c Ecuaţie de forma scan = nume sau scan = listă care determină structura sau ordinea datelor iniţiale

s h Ecuaţie de forma shape=nume sau shape=listă care determină una sau mai multe funcţii incluse sau funcţii cu indice ale utilizatorului

s t Ecuaţii de forma storage=nume, unde nume este una din regiunile admise a memoriei; determină cerinţele memoriei pentru repartizarea elementelor matricei

o Păstrează elementele matricei în memorie (pe linii sau coloane)

d t Ecuaţie de forma datatype=nume, unde nume este tipul de date păstrate sub formă de matrice

f Ecuaţie de forma fill=valoare şi determină valoarea atribuită elementelor nedefinite ale matricei, implicit este 0

a Ecuaţie de forma attributes=listă şi determină atributele matricei (pozitiv definită ) cu ajutorul cărora matricea a fost creată

Nu toţi parametrii constructorului de matrice sunt obligatorii. Lipsa parametrilor

este echivalentă cu o matrice de dimensiunea 0× 0. Prin urmare, importanţi sunt primii trei

parametri. Prezenţa celorlalţi parametri face ca procesul de prelucrare a datelor să fie mai

rapid.

Exemple > Matrix(3); Matrix(3,4);

137

Page 48: Prezentare Maple

0 0 00 0 00 0 0

,

0 0 0 0

0 0 0 00 0 0 0

> Matrix(1..1,1..5,-3);

[ ]-3 -3 -3 -3 -3

> Matrix([[3,2,1],[-1,-2,-3]]);

3 2 1-1 -2 -3

> Matrix(3,(i,j)->s^(2*i-j));

s 11s

s3 s2 s

s5 s4 s3

Prin suma matricei A cu scalarul s se înţelege operaţia A + sE, unde E este matricea

unitate şi dim(A) = dim(E).

Exemple > S:=s + <<a[11]|a[12]|a[13]>,<a[21]|a[22]|a[23]>>;

S:=s*IdentityMatrix(2,3)+<<a[11]|a[12]|a[13]>,

<a[21]|a[22]|a[23]>>;

:= S + s

a11

a12

a13

a21

a22

a23

:= S + s

1 0 00 1 0

a11

a12

a13

a21

a22

a23

> s:=7:a[11]:=1:a[12]:=- 1:a[13]:=2:a[21]:=3:

a[22]:=4:a[23]:=5:S;

138

Page 49: Prezentare Maple

8 -1 23 11 5

> -5*<2|4|6>; # Produsul dintre un scalar şi o matrice-linie

[ ], ,-10 -20 -30

> 5*<<2*x,8>|<3,6*t>>;# Produsul dintre un scalar şi o matrice

10 x 1540 30 t

9.1.3.1. Produs scalar.

Operaţia „.” se aplică şi la produsul scalar al matricelor şi vectorilor.

Exemple > <2,3>.<4|3>;# Produsul unei matrice-coloană (vector-coloană)

cu o matrice-linie(vector-linie)

8 6

12 9

> <4|3>.<2,3>;# Produsul dintre o matrice-linie si o matrice-

coloană

17

> A:=<<3,a>|<b,10>|<5,c>>;B:=<<1,2,3>|<-1,0,2>>;

:= A

3 b 5a 10 c

:= B

1 -12 03 2

> A.B;

+ 18 2 b 7 + + a 20 3 c − + a 2 c

139

Page 50: Prezentare Maple

Pentru obţinerea Ak se va apela la operaţia produsului scalar sau la operaţia de

ridicare la putere. Exponentul k poate primi şi valori negative.

Exemple > A:=<<2.5|0.4>,<.6|.5>>;

:= A

2.5 .4

.6 .5

> A.A.A.A.A;

115.725849999999994 21.900039999999997232.8500599999999992 6.22565000000000079

> A^5;

115.725850000000008 21.900040000000000632.8500599999999992 6.22565000000000079

> A^(-1);A^(-2);

.495049504950495100 -.396039603960396114-.594059405940594032 2.47524752475247524

.480345064209391048 -1.17635525928830464-1.76453288893245696 6.36212136065091460

> %.A; # Verifică dacă A -1A = E

1.00000000000000022 0.

0. 1.

> A^(-2).A.A; # Verifică dacă A -2A2 = E

.99999999999999944 0.

-.888178419700125232 10-15 .99999999999999956

Evidenţierea unor elemente sau a unor submatrice ale unei matricei se va obţine cu

ajutorul indicilor.

Exemple> M:=Matrix(5,(i,j)->2*i-j);

:= M

1 0 -1 -2 -33 2 1 0 -15 4 3 2 17 6 5 4 39 8 7 6 5

140

Page 51: Prezentare Maple

> M[4,5]; # S-a ales elementul = a45

3

3

> M[5,1..-1];M[1..-1,3]; # Din matricea M s-a extras o linie şi o

coloană

[ ], , , ,9 8 7 6 5 ,

-1

1

3

5

7

> M[1..4,4..5];# Din matricea M a fost extrasă o submatrice

-1 -2 -31 0 -13 2 15 4 3

9.1.3.2. Valori şi vectori proprii.

Să calculăm acum determinantul matricei B = A - λE, unde A =

603

531

412

.

Avem:

> A:=matrix(3,3,[2,1,4,1,3,5,3,0,2]):B:=evalm(A-

lambda*diag(1,1,1));

:= B

− 2 λ 1 4

1 − 3 λ 5

3 0 − 2 λ

> P[3](lambda):=det(B);

:= ( )P3

λ − − + − 11 3 λ 7 λ2 λ3

Pentru determinarea polinomului caracteristic sistemul Maple prevede comanda

charpoly( ):

> charpoly(A,lambda);

141

Page 52: Prezentare Maple

+ − + 3 λ 11 7 λ2 λ3

Rădăcinile ecuaţiei ( )P3

λ = 0 se numesc valori proprii ale matricei A. Prin

urmare,

> val_proprii:=evalf(solve(P[3](lambda), lambda),4);

:= val_proprii , ,-1. 6.236 1.764

Ultimul rezultat se obţine şi cu ajutorul comenzii special prevăzute pentru

calcularea valorilor proprii:

> evalf(eigenvals(A),4);

, ,-1. 6.236 1.764

Din algebră se ştie că pentru ficare valoare proprie a matricei există şi un vector

propriu x care stisface relaţia Ax = λx. Pentru matricea A, avem:

> vectori_proprii:=evalf(eigenvects(A,'radical'),4);

vectori_proprii [ ], ,6.236 1. { }[ ], ,1.412 1.981 1. [ ], ,1.764 1. { }[ ], ,-.0786 -3.981 1., , :=

[ ], ,-1. 1. { }[ ], ,1. 1. -1.

Menţionăm, rezultatul a fost afişat sub forma:

[num, r, {vector}]

Aici num este valoarea proprie a matricei, r – multiplicitatea valorii proprii, vector –

vectorul propriu, iar ‘radical’ este cheiea regimului de obţinere a tuturor valorilor proprii.

9.1.3.3. Metoda lui Gauss

Cu ajutorul comenzilor din pachetele linalg şi LinearAlgebra o matrice

poate fi transformată în diverse forme speciale. Astfel, cu ajutorul comenzii gausselim()

matricea A obţine forma triunghiulară. Metoda lui Gauss se foloseşte cu ajutorul comenzii

ffgausselim( ). Astfel, pentru matricea B se obţine:

> ffgausselim(B);

142

Page 53: Prezentare Maple

1 − 3 λ 5

0 − + 9 3 λ − − 13 λ0 0 − − + − 11 3 λ 7 λ2 λ3

O matrice poate fi redusă la forma triunghiulară şi cu ajutorul algoritmului lui

Gauss-Jordan:

> A := array( [[4,-5,3,-2],[-5,8,-1,2],[-2,3,2,1]] );

:= A

4 -5 3 -2

-5 8 -1 2

-2 3 2 1

> gaussjord(A, 'r'); # Aici r este rangul matricei

1 0 0 -1

0 1 0-719

0 0 11

19

> r;

3

Mai jos prezentăm lista celor mai importante comenzi ale pachetelor linalg şi

LinearAlgebra (vezi tabelul 9.2).

Tabelul 9.2. Lista celor mai importante comenzi care operează cu matrice şi vectori

Denumirea comenzii Semnificaţie

delrows(A, i1..i2)/DeleteRow(A, i1..i2)

Omite liniile unei matrice

delcols(A, i1..i2)/DeleteColumn(A, i1..i2) Omite coloanele unei matrice

row(A,i)/Row(A,i) Selectează liniile unei matrice

col(A,i)/Column(A,i) Selectează coloanele unei matrice

submatrix(A,i1..i2,j1..j2)/SubMat

rix(A,i1..i2,j1..j2) Selectează o submatrice a matricei date

subvector(a,i1..i2)/SubVector(a,

i1..i2)

Selectează o porţiune de coordinate a

vectorului

ScalarMultiply(A) Calculează produsul dintre o matrice/vector şi

143

Page 54: Prezentare Maple

un scalar

MatrixVectorMultiply(A) Calculează produsul scalar dintre o matrice şi un vector–coloană

VectorMatrixMultiply(A) Calculează produsul scalar dintre un vector-

linie şi o matrice

MatrixMatrixMultiply(A) Constituie produsul scalar a două matrice

inverse(A)/MatrixInverse(A) Determină matricea inversă

det(A)/Determinant(A) Calculează valoarea determinantului matricei

minor(A,I,j)/Minor(A,I,j) Calculează valoarea minorului matricei

eigenvals(A)/Eigenvalues(A) Calculează valorile proprii ale matricei

eigenvects(A)/Eigenvectors(A) Calculează vectorii proprii

9.1.4. Rezolvarea sistemelor de ecuaţii liniare cu Maple

Majoritatea operaţiilor cu matrice sunt concepute pentru rezolvarea sistemelor de

ecuaţii liniare. În această privinţă pachetul LinearAlgebra propune mai multe metode

şi mijloace pentru rezolvarea lor. Printre aceste metode amintim:

01 . inversarea matricei coeficienţilor sistemului de ecuaţii ( bAx *1−= ):

02 . aplicarea factorizării LU (method = ‘LU’);

03 . aplicarea decompoziţiei QR (method = ‘QR’);

04 . aplicarea metodei lui Cholesky (method = ‘Cholesky’);

05 . metoda substituţiei inverse (method = ‘subs’).

Exemple Să se determine soluţia sistemului de ecuaţii Ax = b pentru

−−−−−−

−−−

=

9125

4301

5853

5548

A şi

−−

=

5

8

0

4

b .

> white(LinearAlgebra):

144

Page 55: Prezentare Maple

> with(LinearAlgebra): A := <<8,3,-1,-5>|<4,-5,0,-2>|<-

5,8,3,-1>|

<-5,5,-4,-9>>: b:=<4,0,-8,-5>:

9.1.4.1. Metoda LU:

> x:=LinearSolve(A,b,method='LU');

:= x

17152607

-36682607

-1345869

17592607

Verificare:

> A.x-b;

0

0

0

0

Soluţia poate fi obţinută şi în cazul când se aplică decompoziţia LU:

> P,L,U:=LUDecomposition(A);

:= , ,P L U , ,

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

1 0 0 0

38

1 0 0

-18

-113

1 0

-58

-113

-175163

1

8 4 -5 -5

0-132

798

558

0 016352

-21352

0 0 0-2607163

> v2:=Transpose(P).b;

145

Page 56: Prezentare Maple

:= v2

4

0

-8

-5

> v3:=ForwardSubstitute(L,v2);

:= v3

4

-32

-9913

-1759163

> x:=BackwardSubstitute(U,v3);

:= x

17152607

-36682607

-1345869

17592607

sau

x =

0.6578442654

-1.406981204

-1.547756041

0.6747219026

> A.x-b;

0

0

0

0

9.1.4.2. Metoda QR

146

Page 57: Prezentare Maple

> x:=LinearSolve(A,b,method='QR');

:= x

0.657844265439202380

-1.40698120444955865

-1.54775604142692692

0.674721902570003752

Verificare

> A.x-b;

0.888178419700125232 10-15

0.355271367880050094 10-14

0.266453525910037570 10-14

-0.177635683940025046 10-14

Altă modalitate, mai greoaie, este decompoziţia QR:

> Q,R:=QRDecomposition(A);

−−−−−−−−

−−−−−

=

79314.9000

92135.336111.400

46802.583181.813485.60

41209.240705.171360.294987.9

,

61231.060149.010373.050252.0

65738.074550.004446.010050.0

097667.001108.094838.030151.0

42824.028690.029640.080403.0

:, RQ

> v2:=Transpose(Q).b;

:= v2

-6.53274579918487941

1.34848114757230774

4.10412266118843050

-6.60764769791746431

> v3:=BackwardSubstitute(R,v2);

:= v3

0.657844265439202380

-1.40698120444955865

-1.54775604142692692

0.674721902570003752

> A.x-b;

0.888178419700125232 10-15

0.355271367880050094 10-14

0.266453525910037570 10-14

-0.177635683940025046 10-14

147

Page 58: Prezentare Maple

În cazul de faţă exactitatea e cu mult mai mare decât în cazul când se aplică funcţia

(comanda) LinearSolve( ).

9.1.4.3. Metoda lui Cholesky:

> x:=LinearSolve(A,b,method='Cholesky');

Error, (in LinearAlgebra:-LA_Main:-LinearSolve) Matrix

is not positive-definite

Soluţia nu poate fi calculată prin metoda lui Choletsky deoarece matricea dată A nu

este pozitiv definită.

9.2. Grafică Maple

Comenzile sistemului Maple pentru repreyentarea graficelor funcţiilor sunt grupate

în pachetul plots. Sistemul prevede şi comenzi cu ajutorul cărora poate fi urmărit mersul

rezolvării problemei sau a trasării graficului unei funcţii (vezi § 9.4). Printre posibilităţile

grafice ale sistemului Maple, amintim:

• trasarea graficului unei funcţii de o variabilă reală, a unei funcţii date parametric, a

funcţiilor implicite;

• construirea suprafeţelor definite de funcţii dependente de două variabile;

• construirea obiectelor grafice (cerc, sferă, segment, dreptunghi, triunghi etc.) şi

manipularea cu ele;

• construirea graficelor în mişcare (animaţie) pe plan şi în spaţiu.

Înainte de toate, prezentăm fără comentarii un exemplu simplu de trasare a graficului unei

funcţii f(x), ],[ bax ∈ .

Exemplu

148

Page 59: Prezentare Maple

Să se reprezinte graficul funcţiei 5

sin2sin)( 2 xxxf −= pentru ],

2[ ππ−∈x .

> f:=sin(x)^2-2*sin(x/5):plot(f(x),x=-Pi/2..Pi,y=-0.5..1.,

thickness=2,color=black); # Graficul funcţiei este cel din fig. 9.1.

Fig. 9.1

9.2.1. Grafică 2d

Cele mai solicitate comenzi ale sistemului Maple sunt comenzile plot( ) şi

plot3d( ) care intervin la construirea graficelor pe plan şi în spaţiu, motiv pentru care fac

parte din nucleul sistemului.

Sintaxa comenzii plot( ) are forma

plot(f, h, v, opţiune),

unde f este funcţia dată, h şi v sunt domeniile de variaţie ale variabilei independente

(x) şi variabilei dependente (y), iar opţiune este o listă de parametri care determină forma

graficului: grosimea, culoarea, tipul liniilor graficului, tipul axelor sistemului de coordonate

etc.

Pentru scoaterea mai multor grafice pe aceleaşi axe de coordonate în calitate de

prim argument al comenzii se va scrie o listă de funcţii.

Exemplu

149

Page 60: Prezentare Maple

Să se reprezinte graficele funcţiilor 5

sin2sin)( 2 xxxf −= şi

xexg x sin2)( 2 ⋅= − , ],2

[ ππ−∈x pe aceleaşi axe de coordinate.

> f:=sin(x)^2-2*sin(x/5):g:=2*exp(-2*x)*sin(x): plot([f,g],

x=-Pi/2..Pi,- 0.5..1,color=[black,black],

linestyle=[4,1],

labels=["x","Grafice"],title=" Afişarea\n f(x) şi g(x)

pe

aceleaşi axe",legend=["f(x)","g(x)"],thickness=2);

Fig. 9.2

Cu plot( ) se reprezentă şi puncte pe plan dacă acestea se scriu sub forma unei

liste de liste şi se impune condiţia style = POINT. Dacă însă condiţia style =

POINT, pe foaia de lucru va apărea o linie frântă care uneşte punctele listei.

Exemplu

150

Page 61: Prezentare Maple

Să se reprezinte punctele listei 1l = [[-1, 0,3],[-0,5, -0,1], [0, 0,4], [0,5, -0,2], [1, 0,3] ,

[1,5, 0,1]] pe plan cu şi fără condiţia style = POINT.

> l[1]:=[[-1,.3],[-0.5,-.1],[0, .4],[.5, -.2],[1, .3],[1.5,.1]]:

plot(l[1],axes=normal,style=POINT,color=black,symbol=DI

AMOND,

symbolsize=30,title="Puncte pe plan"); # Vezi fig. 9.3.

> plot(l[1],axes=normal,color=black,

symbolsize=30,thickness=2);

# Vezi fig. 9.4.

151

Page 62: Prezentare Maple

Fig. 9.3 Fig. 9.4

Pentru obţinerea graficului unei funcţii parametrice ( )(tx ϕ= şi )(ty φ= ,

],[ bat ∈ ) comanda plot( ) se scrie sub forma:

> plot( ],..),(),([ battt =φϕ <opţiuni>);

Exemplu

Să se reprezinte graficul funcţiei ]2,0[,5cos,3sin π∈== ttytx .

> x:=sin(3*t):y:=cos(5*t):plot([x(t),y(t),t=0..2*Pi],

color=black, thickness=2); # Graficul este cel din fig. 9.5.

152

Page 63: Prezentare Maple

Fig. 9.5

9.2.2. Grafică 3d

Graficul funcţiei de două variabile z = f(x, y) poate fi obţinut cu ajutorul comenzii

plot3d( ), comandă cunoscută sub următoarele formate:

plot3d(expresie, x=a..b, y=c..d, p)

plot3d(f, a..b, c..d, p)

plot3d([expresiaf, expresiag, expresiah], s=a..b, t=c..d, p)

plot3d([f, g, h], a..b, c..d, p)

Primele două formule construiesc graficul unei suprafeţe, a doua şi a treia – grafice

pentru funcţii date parametric. Aici a, b, c şi d sunt constante numerice sau expresii de

tip real, p este un parametru care poate fi: axefont, font, color, coords,

labelfont, thickness, style, symbol, title, linestyle, etc.

Exemplu

Să se construiască graficul funcţiei ],[,,3cos2sin ππ−∈+= yxxyxxz .

> plot3d(x*sin(2*y)+y*cos(3*x),x=-Pi..Pi,y=-Pi..Pi);

153

Page 64: Prezentare Maple

Fig. 9.6

Pentru funcţiile implicite 0),,( =zyxF graficul se obţine cu ajutorul comenzii

implicitplot3d( ).

Exemplu

Pentru funcţia ]2,2[,,,4222 −∈=++ zyxzyx avem sfera din fig. 9.7.

> with(plots):implicitplot3d(x^2+y^2+z^2=4,x=-2..2,y=-

2..2,z=-

2..2,scaling=CONSTRAINED,color=black,style=hidden);

154

Page 65: Prezentare Maple

Fig. 9.7

9.3. Pachete pentru aplicaţii în geometrie

Pentru manipularea cu pachetele cu aplicaţii în geometrie Maple dispune de

pachetele geometry şi geom3d. Primul se referă la geometria euclidiană (geometria

2D), iar cel de al doilea – la geometria din spaţiu (geometria 3D). Obiectele geometrice

sunt caracterizate de diverşi parametri.

Înainte de a începe lucrul, pachetele geometry şi geom3d trebuie încărcate.

Structurile geomeztrice definite sau determinate acţionează doar în cadrul pachetului

respectiv.

9.3.1. Pachetul geometry

Pachetul geometry conţine peste o sută de comenzi care intervin în planimetrie.

Obiectele geometrice se definesc în mod obişnuit: punctul este definit de

coordonatele sale (comanda point), dreapta – de două puncte sau de o ecuaţie (comanda

155

Page 66: Prezentare Maple

line), cerc (circle) – prin trei puncte sau o ecuaţie sau de centrul şi raza (diametrul)

lui.

Exemple Pentru un cerc dat de trei puncte distincte să se determine coordonatele centrului, raza şi

ecuaţia lui. Graficul poate fi obţinut cu comanda draw

> with(geometry):

> circle(c1,[point(A,0,0),point(B,2,0),

point(C,1,2)],'centername'=O1): center(c1),

coordinates(center(c1)); # Centrul şi coordonatele lui

,O1

,1

34

> radius(c1);evalf(%); # Raza cercului

116

25 16

1.250000000

> Equation(c1); # şi ecuaţia acestuia

= + − − x2 y2 2 x32

y 0

Cu ajutorul comenzii detail( ) se obţine descrierea completă a cercului c1, adică numele

obiectului, forma lui, numele centrului, coordinatele centrului, raza cercului şi ecuaţia

cercului.

Figuri geometrice interesante pot fi obţinute cu ajutorul translării, rotaţiei şi

deformării figurilor geometrice de bază.

156

Page 67: Prezentare Maple

Exemplu > with(geometry):

> point(P, 2 , 0), point(Q, 1, 0);

P, Q

> rotation(P1,P,Pi,'counterclockwise');

P1

> coordinates(P1);

[-2, 0]

> rotation(P2,P, Pi/2,'clockwise', Q);

P2

> coordinates(P2);

[1, -1]

> f:=y^2=x: parabola(p,f,[x,y]): point(OO,0,0):

rotation(p1,p,Pi/2,'counterclockwise',OO):

detail({p1,p});

name of the object: p{

form of the object: parabola2d

vertex: [0, 0]

focus: [1/4, 0]

directrix: 1/4+x = 0

equation of the parabola: y^2-x = 0 name of the object: p1,

form of the object: parabola2dvertex: [0, 0]

focus: [0, 1/4]

directrix: 1/4+y = 0

equation of the parabola: x^2-y = 0 }

> rotation(p2,p,Pi,'counterclockwise',OO):

rotation(p3,p,Pi/2,

'clockwise',OO):

draw([p(style=LINE,thickness=2),p1,p2,p3],

style=POINT,symbol=DIAMOND,color=green, title=`Rotaţia unei

157

Page 68: Prezentare Maple

parabole`);# Graficul este cel din fig. 9.8

Fig. 9.8

Mijloacele sistemului Maple sunt comode pentru vizualizarea figurilor care se

construiesc.

Exemplu Prezentăm ilustrarea teoremei lui Pitagora, folosind comanda construcţiei unui poligon

(vezi fig. 9.9):

> with(plots):with(geometry):with(student):a:=3;b:=5;

5:

3:

=

=

b

a

> display(polygonplot([[0,0],[b,0],[0,a]],color=grey), polygonplot([[b,0],[a+b,0],[a+b,b]],color=turquoise),

polygonplot([[a+b,b],[a+b,a+b],[a,a+b]],color=green),

polygonplot([[0,a],[a,a+b],[0,a+b]],color=cyan),

polygonplot({[[b,0],[a+b,b],[a,a+b],

[0,a]]},color=yellow),

158

Page 69: Prezentare Maple

scaling=constrained);

Fig. 9.9

9.3.2. Pachetul geom3d

Comenzile pachetului geometriei tridimensionale geom3d sunt asemen[toare

comenzilor geometriei bidimensionale (pachetul geometry). Pentru determinarea unui

punct, a unei linie, a unui plan sau a unei sfere utilizatorul poate apela la funcţiile point,

line, plane şi sphere. De asemenea poate fi definit un segment (segment), un

segment orientat (dsegment), un triunghi (triangle), precum şi un număr mare de

poligoane, de exemplu, cu comanda tetrahedron poate fi creată o piramidă

Menirea multor funcţii ale pachetului geom3d rezultă din denumirea funcţiilor, iar

caracterul aplicării este analog celui descris pentru pachetul geometry. Având în vedere

cele spuse ne mărginim doar la prezentarea a două exemple: în fig.9.10 este reprezentată o

159

Page 70: Prezentare Maple

sferă în interiorul unui dodecadron, iar în fig.9.11 – două figuri în spaţiu, unde una este

inclusă în cealaltă.

Fig. 9.10

Exemple > with(geom3d): point(o,0,0,0): r := 1.:

> SmallStellatedDodecahedron(p,o,r):

> duality(dp,p,sphere(s,[o,MidRadius(p)])):

draw([p(color=pink),dp(color=blue)],cutout=8/9,lightmod

el=

light4, title=`Sfera în interiorul unui dodecadron `,

orientation=[-4,32]);

160

Page 71: Prezentare Maple

> TruncatedIcosahedron(tric,point(o,0,0,0),2.): draw(tric,

cutout=7/8,lightmodel=light4):

> dodecahedron(dode,o,2.): rad:=1.5:SnubDodecahedron(sdode

o,rad): draw([sdode(color=yellow),dode(color= coral,

cutout=

8/9)], style=patch,lightmodel=light2, orientation=[-

71,56]);

Fig. 9.11

9.4. Pachetul student

Acest pachet a fost elaborat special pentru studenţi şi elevi pentru a prezenta pas cu

pas realizările metodelor matematice. Funcţiile pachetului sunt solicitate şi de multe

persoane preocupate de utilizarea metodelor matematice în activitatea lor.

161

Page 72: Prezentare Maple

Funcţiile pachetului în majoritatea lor coincid cu denumirile acestora şi au

semnificaţiile de mai jos:

■ D – operatorul diferenţial;

■ Diff – forma inertă a comenzii calculării derivatei;

■ Doubleint (Tribleint)– forma inertă a comenzii calculării integralei duble

(triple);

■ Int – forma inertă a comenzii calculării integralei;

■ Limit – forma inertă a comenzii calculării limitei;

■ Product – forma inertă a comenzii calculării produsului termenilor

unu şirului;

■ Sum – forma inertă a comenzii calculării sumei termenilor unui şir;

■ changevar – schimbul de variabile;

■ completesquarte – calculează un patrat complet;

■ distance – calculează distanţa dintre două puncte;

■ integrand – extrage expresia de sub semnul integralei;

■ intercept – calculează punctul de intersecţie a două curbe;

■ intparts – integrare prin părţi;

■ leftbox(rightbox) – ilustrarea grafică a integrării prin metoda

dreptunghiurilor din stânga (din dreapta);

■ leftsum(rightsum) – aproximaţia numerică a integralei cu

dreptunghiuri din stânga (din dreapta);

■ middlebox – ilustrarea grafică a integrării prin metoda

dreptunghiurilor centrale;

■ showtangent – determină graficul funcţiei şi a tangentei acesteia;

■ simpson – calculează integrala prin metoda lui Simpson;

■ slope – calculează şi trasează tangenta funcţiei într-un punct;

■ trapezoid – calculează integrala prin metoda trapezului.

Exemple > with(student):

162

Page 73: Prezentare Maple

> Tripleint(g(x,y,z),x,y,z);

Tripleint(x^2*y*z,x=0..1,y=0..2,z=0..3);

d⌠⌡

d⌠⌡

d⌠⌡

( )g , ,x y z x y z

d⌠

0

3

d⌠⌡

0

2

d⌠⌡

0

1

x2 y z x y z

> evalf(%);

3.000000000

> int(int(int(x^2*y*z,x=0..1),y=0..2),z=0..3);

3

> Tripleint(1,x=0..1,y=0..2,z=0..3);

d⌠⌡

0

3

d⌠⌡

0

2

d⌠⌡

0

1

1 x y z

> evalf(%);

6.000000000

> Tripleint(x+y+z,x=0..a,y=0..b,z=0..c);

d⌠⌡

0

c

d⌠⌡

0

b

d⌠⌡

0

a

+ + x y z x y z

> int(int(int(x+y+z,x=0..a),y=0..b),z=0..c);

+ + 12

a2 b c12

a b2 c12

a b c2

> Doubleint(x^2/(1+y^2),x=0..1,y=0..1);

int(int(x^2/(1+y^2),x=0..1),y=0..1);

d⌠

0

1

d⌠

0

1

x2

+ 1 y2x y

112

π

> evalf(%%);

0.2617993878

163

Page 74: Prezentare Maple

Pentru studenţi şi elevi pachetul student a fost extins cu scopul de a acoperi cât

mai multe domenii din matematică. Astfel, versiunea Maple 9 în plus la pachetul student

conţine un şir de pachete de genul acestuia, ca, de exemplu, pachetele Student,

Student[LinearAlgebra], VectorCalculus, Student[Calculus1],

Student[Precalculus], VarationalCalculus ş.a. destinate disciplinelor

Calculus1 – 3 din planurile de învăţământ al universităţilor din SUA şi care se eliberează

de firma producătoare Waterloo Maple Inc. (vezi site-ul: www.maplesoft.com) la un preţ

redus tinerilor ce-şi continuă studiile.

În continuare, ilustrăm cum cu ajutorul unor comenzi ale acestor pachete se rezolvă

diverse probleme.

9.4.1. Rezolvarea unui sistem de inecuaţii

Pachetul plots conţine o funcţie grafică specială inequal( ), care conturează

domeniul soluţiilor unui sistem de inecuaţii.

Exemplu Să se determine domeniul soluţiilor sistemului de inecuaţii

+< =< =−

−>+

.1,02

,1

,1

xy

yx

yx

> with(plots): inequal( {x+y>-1,x-y<=1,y<=2+.1*x},x=-

4..4,

y=-4..4,optionsfeasible=(color=magenta),optionsopen=

(color=white,thickness=3),optionsclosed=(color=black,

thickness=2),options excluded=(color=cyan)); # Domeniul

este cel din fig. 9.12, unde optionsfeasible redă culoarea domeniului

interior punctele căruia satisfac toate cele trei inecuaţii, optionsopen şi

optionsclosed redau culoarea frontierelor închise şi deschise a domeniului.

164

Page 75: Prezentare Maple

Fig. 9.12

9.4.2. Rezolvarea ecuaţiilor neliniare

Pentru rezolvarea ecuaţiei neliniare x = f(x) aplicăm metoda iteraţiilor simple

(iteraţiile succesive) )( 1−= kk xsx începând cu o valoare iniţială x0.

Exemplu

Să se determine soluţia ecuaţiei xx =+ )1ln(3 .

> f:=x->3*ln(x+1);x||0:=0.5;

:= f → x 3 ( )ln + x 1

:= x0 0.5

> x0:=.5;

:= x0 0.5

> for k from 1 to 20 do x||k:=evalf(f(x||(k-1))); od;

165

Page 76: Prezentare Maple

:= x1 1.216395324

:= x2 2.387646445

:= x3 3.660406248

:= x4 4.617307866

:= x5 5.177557566

:= x6 5.462768931

:= x7 5.598173559

:= x8 5.660378631

:= x9 5.688529002

:= x10 5.701181910

:= x11 5.706851745

:= x12 5.709388956

:= x13 5.710523646

:= x14 5.711030964

:= x15 5.711257755

:= x16 5.711359134

:= x17 5.711404452

:= x18 5.711424708

:= x19 5.711433765

:= x20 5.711437812

Pentru a fi convinşi că iteraţiile xk converg către soluţia ecuaţiei, calculăm soluţia

acesteia cu comanda solve( ):

> f(x)=x;solve(%);

= 3 ( )ln + x 1 x

,0 − − 3

LambertW ,-1 −13

1

e( )/1 3

1

Rezultatul pare neobişnuit: rădăcina evidentă 0 şi o rădăcină sub forma funcţiei

speciale a lui Lambert. Cunoaştem , comanda evalf( ) poate calcula valoarea numerică

a rădăcinei a doua:

> evalf(%);

,0. 5.711441084

Se observă că 5,711441084 şi x20 = 5,711437812 sunt aproape egale (în limita a 5

cifre semnificative).

166

Page 77: Prezentare Maple

9.4.3. Reprezentarea iteteraţiilor lui Newton sub formă simbolică

În Maple, în general, cine caută găseşte, adică nu există problemă simplă pentru

care să nu existe o interpretare grafică sau de altă natură. Ca să fim convinşi de cele spuse,

pentru demonstrarea rezolvării problemei cu metoda analitică, vom recurge la exemplul

care a devenit clasic – realizarea metodei lui Newton pentru rezolvarea ecuaţiei neliniare

f(x) = 0.

După cum se ştie, metoda lui Newton (sau iteraţiile lui Newton)se reduce la

calcularea rădăcinii prin intermediul formulei

)(

)(1

i

iii xf

xfxx

′+=+ , i = 1, 2, … .

Pentru realizare procedeului determinării soluţiei în conformitate cu iteraţiile de mai

sus, compunem programul ce urmează:

> restart: N1:=proc(expr,x)

local iter;

iter:=x-expr/diff(expr,x);

unapply(iter,x)

end;

:= N1 proc( ) end proc,expr x local ;iter ; := iter − x /expr ( )diff ,expr x ( )unapply ,iter x

Pentru obţinerea formulei iteraţionale sub forma analitică în programul de mai sus

este inclusă funcţia (comanda) unapply( ). Acum, considerând funcţia, rădăcina căreia

trebuie calculată, obţinem expresia analitică:

> expr:=sin(x)^2-.5;

:= expr − ( )sin x 2 0.5

> F:=N1(expr,x);

:= F → x − x12

− ( )sin x 2 0.5( )sin x ( )cos x

Considerând o valoare iniţială x0 , pot fi calculate o parte a iteraţiilor:

167

Page 78: Prezentare Maple

> x0:=0.2;

:= x0 0.2

> to 7 do x0:=F(x0);od;

:= x0 1.382611210

:= x0 0.117460944

:= x0 2.206529505

:= x0 2.360830634

:= x0 2.356194357

:= x0 2.356194490

:= x0 2.356194490

Se observă un salt la începutul iteraţiilor, iar apoi valorile rădăcinii converg către

rezultatul final, adică către soluţia ecuaţiei. Ultimile două iteraţii demonstrează acest fapt.

Deşi ecuaţia are două rădăcini, procedeul propus prezintă doar o soluţie. Obţinerea

altor rădăcini depinde de valoarea iniţială: iteraţiile lui Newton converg dacă valoarea

iniţială se află în vecinătatea soluţiei ecuaţiei.

168