Maple Analyse Algebre Petit Cours

Embed Size (px)

Citation preview

MAO :Initiation Maple ENSA Khouribga 1Professeur : SEHMAOUI Maple Analyse 1 Rappel : Simplement une fonction est un objetf qui agit sur des arguments pour renvoyer un rsultat f (arg1,,argn) reprsente limage parfde la squence darguments arg1,,argn. Un nombre peut tre considr comme une fonction constante : > x:=2; x(4), x(2,6); :=x 2 , 2 2 2 Sommes et produits : La fonction sum permet de sommer les expressions (expr(i) )pour i variant de i_min au i_max. La fonction Sum (S en majuscule) permet dobtenir la forme inerte. >sum(exp(i),i=i_min..i_max) ; > Sum(k^3,k=1..n)=factor(sum(k^3,k=1..n)); = =k 1nk3n2( ) +n 124 On peut approximer la valeur de e par : > Sum(1/k!,k=0..1000)=evalf(sum(1/k!,k=0..1000)); = =k 010001! k2.718281828> Sum(1/k^4,k=1..infinity)=sum(1/k^4,k=1..infinity); = =k 11k4490 La fonction product ralise le produit des expressions (expr(i), i variant de i_min i_max, la fonction Product (avec P en majuscule) permet de donner la forme inerte. > product(k^2/(k+1),k=1..20)=product(k^2/(k+1),k=1..20); = =k 120k2 +k 11158524765798400003 Comment dfinir des fonctions personnalises ? : Le nombre de fonctions intgres Maple est important, mais on a souvent besoin de dfinir ses propres fonctions. La syntaxe est : - pour une fonction dune seule variable : >f :=var->expr; # (->):les signes moins et suprieur - pour une fonction de n variables : >f :=(var1,,varn)->expr; MAO :Initiation Maple ENSA Khouribga 2Professeur : SEHMAOUI > f:=x->x^3+5*x+4; :=fx+ +x35 x 4 > f(0), f(1), f(-2); , , 4 10 -14 > g:=(x,y)->x*y+x-y; :=g( ) , x y+ x y x y > g(0,0), g(5,2), g(-4,-8); , , 0 13 36 > h:=x->x^2+5*x+4;solve(h(x)); :=hx+ +x25 x 4 , -1 -4 > factor(h(x)); ( ) +x 4 ( ) +x 1 > restart:g:=x->sqrt(x^2); :=gx x2 > simplify(g(x),assume=real); x > simplify(g(x),assume=positive); x 3-1: Domaine de dfinition d'une fonction: La fonction singularpermet de dterminer les singularits de certaines fonctions:singular(1/x); { } =x 0 singular(tan(x)); { } =x+_Z1~ 123-2: La continuit : La fonction iscont permet d'tudier la continuit de certaines fonctions: > iscont(1/x,x=-2..2); false > iscont( 1/x, x=0..1 ); true 4 Fonctions dfinies par intervalles : La fonction piecewise permet de dfinir une fonction partir de conditions sur diffrents intervalles : piecewise(cond1,f1,cond2,f2,,condN,fN,f_autrement) > f:=x->piecewise(x restart: > f:=x->x^2+x;f(2); :=fx+x2x6 > g:=x->x^3;g(6); :=gx x3 216 > (g@f)(2);# les parenthses sont obligatoires. 216 > (f@g)(2); 72 >(g@f)(z); ( ) +z2z3 > (f@g)(a); +a6a3 * On utilise la syntaxe f@@n pour former... f f f o o o > restart: > g:=x->x^3; :=gx x3 > h:=x->(g@@3)(x); :=h g( ) 3 > h(2); 134217728 6 Drivation. La fonction diff permet de driver une fonction. (Voir aussi la fonction D). > restart: > g:=x->x^8+3*x^5; MAO :Initiation Maple ENSA Khouribga 4Professeur : SEHMAOUI :=gx+x83 x5 > diff(g(x),x); +8 x715 x4 ( ) ( ) g( ) -18> diff(diff(g(x),x),x); +56 x660 x3 > diff(g(x),x$2); +56 x660 x3 On Remarque bien que diff(g(x),x$2)= diff(diff(g(x),x),x)> diff(g(x),x$8);# la drive 8ime 40320 7 Intgration. La fonction int permet dintgrer une fonction.int(expr,x) et int(expr,x=a..b) ; > > Int( sin(x), x ); # remarquer le Int avec I en majuscule d( (( ) sinx x> int( sin(x), x ); # remarquer le int avec i en minuscule ( ) cosx On peut aussi intgrer entre deux bornes a et b. > Int( exp(-x^2)*ln(x), x=0..infinity )=int( exp(-x^2)*ln(x), x=0..infinity ); =d(((0e ee e( ) x2( ) lnx x 412 ( ) ln 2On obtient alors sa valeur approche laide de la fonction evalf : > Int( exp(-x^2)*ln(x), x=0..infinity )=evalf(int( exp(-x^2)*ln(x), x=0..infinity )); =d(((0e ee e( ) x2( ) lnx x -0.8700577270

> > Int( cos(x)^2, x=0..Pi/4)=int( cos(x)^2, x=0..Pi/4 ); =d((04( ) cosx2x+ 148 MAO :Initiation Maple ENSA Khouribga 5Professeur : SEHMAOUI Les limites et dveloppements asymptotiques : 1- Limite dune expression, dune suite, dune fonction somme dune srie Limites : avec la fonction limit(expr,x=a,option)option=(left = gauche), (right = droite) > limit(sin(x)/x,x=0); 1 > limit(1/x^3,x=0); undefined Utilisation de la forme inerte Limit. > Limit(1/x^3,x=0,right)=limit(1/x^3,x=0,right); =lim + x 01x3 > q:=sum((1+i^2)/i^5,i=1..n); :=q+ + + 124( ) , 4+n 112( ) , 2+n 1 ( ) 5 ( ) 3> limit(q,n=infinity); +( ) 5 ( ) 3 > evalf(%); 2.238984658 2- Suites rcurrentes Maple permet de trouver des rcurrences. Ainsi partir lexpression Un+1=f(Un) Maple peut trouver une expression de la forme Un=g(n) qui ne ncessite plus le calcul des termes prcdents : Pour trouver la forme rcurrente en utilise la fonction rsolve : >rsolve({quations de rcurrences, conditions initiales},f(variable)) ; > restart: rsolve({u(n)=u(n+1)-2*u(n-1),u(0)=1,u(1)=2},u(n)); 2n > restart: u:=rsolve({u(n)=3*u(n+1)-4*u(n-1),u(0)=1,u(1)=2},u(n),makeproc); > evalf(u(100)); > evalf(u(30)); > restart: rsolve({f(n) = -3*f(n-1) - 2*f(n-2), f(1)=1,f(2)=1}, {f}); { } =( ) f n +3 ( ) -1n( ) -2n > restart: f:=rsolve({f(n) = -3*f(n-1) - 2*f(n-2), f(1)=1,f(2)=1}, {f},makeproc); MAO :Initiation Maple ENSA Khouribga 6Professeur : SEHMAOUI f n proc proc proc proc( ) := if if if if then then then then else else else else end if end if end if end if f(23); -8388605 3- Dveloppements limits et asymptotiques Les fonctions : taylor(expression,var=point,ordre) ;Pour raliser des dveloppements limits ou de Taylorseries(expr,x=a,n) ou asympt(expr,x,n). Pour des dveloppements asymptotiques plus gnraux Lordre n est facultatif et vaut 6 par dfaut. le DL de sin(x) au voisinage de zero lordre 8 secrit: > taylor(sin(x),x=0,8); + +x16 x31120 x515040 x7( ) Ox8 Pour rutiliser le dveloppement limit, il sera ncessaire de le convertir en polynme en utilisant la fonction convert : > P:=convert(taylor(sin(x),x=0),polynom); :=P +x16 x31120 x5 > asympt(x/(1-x-x^2),x); + + + 1x1x22x33x45x5|\

|||O1x6 > asympt(sum(1/k,k=1..n)-ln(n),n,10);#la constante d'Euler + + + +12 n112 n21120 n41252 n61240 n8|\

|||O1n10 > gamma=evalf(gamma); = 0.5772156649 > taylor(sqrt(sin(x)), x=0, 4); Error, does not have a taylor expansion, try series() > series(sqrt(sin(x)), x=0, 4); +xx( ) / 5 212( ) Ox( ) / 9 2 Leadterm donne le terme principal dune srie: > series(leadterm(sin(x^3)/(2*x)),x=0); 12 x2 MAO :Initiation Maple ENSA Khouribga 7Professeur : SEHMAOUI Rsolution formelle ou numrique dquations et de systmes dquations. 1- Equation de degr quelconque : Pour rsoudre lquation de degr n, on utilise la fonction solve : >solve(anxn+an-1xn-1+a1x+a0,x) ; Pours rsoudre lquation 4x2+5x-9=0, on entre: > solve(4*x^2+5*x-6=0,x); ,34-2La commande assumeLa commande assume permet de prciser des conditions sur des variables. Par exemple si x est positif, alors l'quation x2=4 a une seule solution x=2.> solve(sqrt(x^2)=2); , 2 -2 > assume(x>0);# x est positif> solve(sqrt(x^2)=2); 2 > x:='x'; #Pour rtablir x comme variable sans valeur. :=x x > solve(sqrt(x^2)=2);# deux solutions nouveau. , 2 -2 Maple peut rsoudre formellement une quation de degr infrieur ou gal trois : > solve(a*x^2+b*x+c=0,x); ,+bb24 a c2 abb24 a c2 a Si lquation est dfinie numriquement et ne comporte quune seule variable, on peut ne pas spcifier expr=0 aussi par rapport quelle variable : > solve(x^3+2*x^2+x+2=0,x); , , -2 I I > solve(x^3+2*x^2+x+2,x); , , -2 I I > solve(x^3+2*x^2+x+2); , , -2 I I Cherchons maintenant rsoudre lquation : xex-1=0. > solve(x*exp(x)=1,x); ( ) LambertW 1 > evalf(%); 0.5671432904 MAO :Initiation Maple ENSA Khouribga 8Professeur : SEHMAOUI LambertW(x) est en fait dfinie comme tant lune des solutions de yey=x, il faut alors rsoudre numriquement lquation. La rsolution numrique se fait avec la fonction fsolve : >fsolve(quation,var,option) ; > fsolve(x*exp(x)=1,x); 0.5671432904 > q := 3*x^4 - 16*x^3 - 3*x^2 + 13*x + 16: fsolve(q, x); , 1.324717957 5.333333333 > fsolve(q, x,1..2); 1.324717957 > fsolve(q, x,5..6); 5.333333333 Pour donner Maple le nombre maximum de solutions trouver en utilise la fonction maxsols: > fsolve(x^5-2*x^4+2*x^3-3*x^2-2*x+2,x); , , -0.7589676366 0.5934719689 1.911366223 > fsolve(x^5-2*x^4+2*x^3-3*x^2-2*x+2,x,maxsols=1); -0.7589676366 > fsolve(x^5-2*x^4+2*x^3-3*x^2-2*x+2,x,maxsols=2); , -0.7589676366 0.5934719689 Pour rsoudre les quations dans Z on utilise la fonction isolve : > q:=x^3+1/2*x^2-13/2*x+3; :=q+ +x312 x2132x 3> isolve(q,x); , { } =x 2 { } =x -3 > solve(q,x); , ,122 -3Remarque : Lors de la rsolution dquations, il arrive que le rsultat soit exprim en utilisant la fonction RootOf(expr), qui dsigne les racines de expr. Celles-ci ne sont pas toujours exprimables laide des fonctions usuelles. On peut cependant utiliser evalf(...) pour voir les racines exprimables ou des valeurs approches de ces racines. > solve(x-cos(x)=0,x); ( ) RootOf +_Z ( ) cos_Z > evalf(%); 0.7390851332 2- Systmes dquations : Maple permet de rsoudre un systme dquations avec la mme fonction solve. >solve({equa1,equa2,equaN},{var1,var2,varN}) ; Pour rsoudre le systme : MAO :Initiation Maple ENSA Khouribga 9Professeur : SEHMAOUI 3 15 2 0x yx y+ =+ = On crit: > solve({x+3*y=1,5*x+2*y=0},{x,y}); { } , =y513 =x-213 Lquation peut tre de degr quelconque (ne pas dpasser la capacit du machine). > solve({x^2+y^2-1=0,x+y+1=0},{x,y}); , { } , =y 0=x -1 { } , =y -1=x 0 MAO :Initiation Maple ENSA Khouribga 10Professeur : SEHMAOUI Calcul matriciel : Maple Algbre 1: Dfinition d'une matrice: La dfinition d'une matrice se fait l'aide de la fonction matrix > nom:=matrix(n,m); > A:=matrix(2,3); :=A ( ) array , , ..1 2..1 3 [ ] Utilisez la fonction evalm pour afficher la matrice A dans la forme habituelle evalm(A);

((((A, 1 1A, 1 2A, 1 3A, 2 1A, 2 2A, 2 3 > B:=matrix(2,3,(i,j)->i+j); # i= nombre de lignes, j=nombrer de colonnes 2 Oprations courantes sur les matrices OprationNotation Addition+ Soustraction- Multiplication&* Puissance^ou** > A1:=matrix([[1,2,3],[4,5,6],[7,8,9]]); :=A1

((((((1 2 34 5 67 8 9 > B1:=matrix([[0,1,2],[3,1,2],[5,1,0]]); :=B1

((((((0 1 23 1 25 1 0 Somme: > A1+B1=evalm(A1+B1); =+A1 B1

((((((1 3 57 6 812 9 9 Produit: > P:=A1&*B1; > evalm(P); :=B

(((2 3 43 4 5 :=P A1 &* B1MAO :Initiation Maple ENSA Khouribga 11Professeur : SEHMAOUI

((((((21 6 645 15 1869 24 30 > evalm(2*A1);

((((((2 4 68 10 1214 16 18 Puissance: > S:=A1^3; :=S A13 > evalm(S);

((((((468 576 6841062 1305 15481656 2034 2412 3 Fonctions du package linalg Le package linalg est compos de trs nombreuses fonctions qui permettent des manipulations volues sur les matrices. 3.1 Oprations lmentaires: Chargez le package linalg avec l'instruction: >with(linalg): On peut utiliser la fonction matadd du package (linalg) pour calculer la somme de deux matrices matadd(A1,B1);

((((((1 3 57 6 812 9 9 On peut utiliser la fonction multiply du package (linalg) pour calculer le produit de deux matrices > multiply(A1,B1);

((((((21 6 645 15 1869 24 30 3.2 Oprations sur les matrices: Fonctionsmanipulations traceCalcule la trace de la matrice detCalcule le dterminant de la matrice transposeeCalcul la transpose de la matrice inverseCalcule l'inverse de la matrice rankCalcule le rang de la matrice gausselimEffectue un pivot de Gauss sur la matrice eigenvalsCalculs les valeurs propres de la matrice eigenvectorsCalcule les vecteurs propres de la matrice MAO :Initiation Maple ENSA Khouribga 12Professeur : SEHMAOUI charpolyCalcule le polynme caractristique de la matrice> idm:=Matrix(3,3,shape=identity); det(x*idm-A)=charpoly(A,x) > A:=matrix(4,4,(i,j)->i*j-1); :=A

(((((((((0 1 2 31 3 5 72 5 8 113 7 11 15 > B:=matrix(4,4,(i,j)->`if`(i=j,1,0)); :=B

(((((((((1 0 0 00 1 0 00 0 1 00 0 0 1 > with(linalg): > C:=matrix([[1,3],[-2,4]]);trace(C); :=C

(((1 3-2 4 5 > det(C); 10 > inverse(C);

((((((((25-31015110 > eigenvectors(C); ,

(((, , + 5212 I 15 1 { }

(((, 3414 I 15 1

(((, , 5212 I 15 1 { }

(((, + 3414 I 15 1> eigenvals(C); , + 5212 I 15 5212 I 15> charpoly(C,x); +x25 x 10> solve(%); , + 5212 I 15 5212 I 15MAO :Initiation Maple ENSA Khouribga 13Professeur : SEHMAOUI XI-Equations diffrentielles Rsolution dquations diffrentielles linaires du premier ordre : La rsolution des quations diffrentielles se fait laide de la fonction dsolve : Soit lquation : xy' + y - 3x2 = 0> eq:=x*diff(y(x),x) + y(x) - 3*x^2 = 0; > :=eq=+ x |\

|||ddx( ) yx ( ) yx 3 x20> dsolve(eq); =( ) yx +x3_C1x Rsolution dquations diffrentielles du deuxime ordre :dsolve({equ diff , cond init},{fonctions(variables)}) ; soit lquation : > dsolve({diff(theta(t),t$2)+omega^2*theta(t),D(theta)(0)=0,theta(0)=Pi/6},theta(t)); =( ) t16 ( ) cos t