{\rtf1\mac\deff2 {\fonttbl{\f0\fswiss Chicago;}{\f2\froman New York;}{\f3\fswiss Geneva;}{\f4\fmodern Monaco;}{\f6\fdecor London;}{\f8\fdecor San Francisco;}{\f11\fnil Cairo;}{\f12\fnil Los Angeles;}{\f13\fnil Zapf Dingbats;}{\f14\fnil Bookman;} {\f16\fnil Palatino;}{\f18\fnil Zapf Chancery;}{\f20\froman Times;}{\f21\fswiss Helvetica;}{\f22\fmodern Courier;}{\f23\ftech Symbol;}{\f24\fnil Mobile;}{\f33\fnil Avant Garde;}{\f34\fnil New Century Schlbk;}{\f101\fnil Wartburg;}{\f118\fnil Warwick S;} {\f128\fnil Moscow;}{\f129\fnil Russian;}{\f135\fnil MATH-BES;}{\f140\fnil Lovell;}{\f149\fnil Detroit;}{\f171\fnil XB Futura ExtraBold;}{\f176\fnil H Futura Heavy;}{\f201\fnil ¡Math;}{\f512\fnil Alexandrie;}{\f2500\fnil Konstanz;}} {\colortbl\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;}{\stylesheet{\s243\qj\tqc\tx4320\tqr\tx8640 \f20 \sbasedon0\snext243 footer;}{\s244\qj\tqc\tx4320\tqr\tx8640 \f20 \sbasedon0\snext244 header;}{\s252\qj\li354\sb40\sa40 \f20\ul \sbasedon0\snext0 heading 4;}{\s253\qj\li354\sb120\sa80 \b\f20 \sbasedon0\snext0 heading 3;}{\s254\qj\sb200\sa140 \b\f20\fs36\ul \sbasedon0\snext0 heading 2;}{\s255\qc\sb240 \b\f20\fs48 \sbasedon0\snext0 heading 1;}{\qj \f20 \sbasedon222\snext0 Normal;}{\s2\sb120\keep\keepn \b\f22 \sbasedon0\snext2 input;}{\s3 \f22\fs20 \sbasedon0\snext3 output;}{\s4\qj\li1120 \f20\fs20 \sbasedon0\snext4 commentaire;}}{\info{\title chap2.doc}{\author EBM}}\paperw11880\paperh16800\margl1701\margr1701\margt1417\margb1417\deftab709\widowctrl\ftnbj\pgnstart8\linestart8 {\*\nextfile disque dur:chap3.doc}\sectd \sbknone\linemod0\linex0\headery1077\footery1077\cols1\colsx709\endnhere {\footer \pard\plain \s243\qc\tqc\tx4320\tqr\tx8640 \f20 \par \pard \s243\qc\tqc\tx4320\tqr\tx8640 {\fs20 Calcul formel avec Maple page }{\fs20 \chpgn }\par }\pard\plain \s255\qc\sb240 \b\f20\fs48 Calculer sur des nombres\par \pard\plain \s254\qj\sb200\sa140 \b\f20\fs36\ul I. Calculer sur des entiers\par \pard\plain \qj \f20 Remarquons que contrairement aux langages de programmation classique, les entiers sont dans Maple de "longueur infinie" : ils ne sont pas limit\'8es en taille (ou plut\'99t la limite est telle que vous ne pour rez jamais l'atteindre pratiquement.\par \pard\plain \s253\qj\li354\sb120\sa80 \b\f20 1.Fonctions utilis\'8ees\par \pard\plain \qj \f20 En dehors des op\'8erations \'8evidentes sur les entiers (+,-,*,^) on utilisera les fonctions suivantes de Maple \par \pard \qj Calcul de la factorielle:\par \pard\plain \s2\sb120\keep\keepn \b\f22 ?factorial\par \pard\plain \s4\qj\li1120 \f20\fs20 CALLING SEQUENCE:\par expr ! or factorial (expr)\par SYNOPSIS: \par - The factorial operator ``!'' and the function factorial both produce the pro-\par duct of the numbers from 1 to the given argument (if it is a non-negative\par integer)\par \pard\plain \qj \f20 \par D\'8ecomposition en produits de nombres premiers:\par \pard\plain \s2\sb120\keep\keepn \b\f22 ?ifactor;\par \pard\plain \s4\qj\li1120 \f20\fs20 CALLING SEQUENCE:\par ifactor(n)\par ifactor(n, method) \par PARAMETERS:\par n - integer or a rational\par method - (optional) name of base method for factoring \par SYNOPSIS: \par - ifactor returns the complete integer factorization of n.\par \par \pard\plain \qj \f20 Tester si un nombre est premier:\par \pard\plain \s2\sb120\keep\keepn \b\f22 ?isprime;\par \pard\plain \s4\qj\li1120 \f20\fs20 CALLING SEQUENCE:\par isprime(n, iter)\par PARAMETERS:\par n - integer\par iter - (optional) positive integer (default 5) \par SYNOPSIS: \par - The function isprime is a probabilistic primality testing routine. \par - It returns false if n is shown to be composite within iter tests and returns\par true otherwise. If isprime returns true, n is ``very probably'' prime\par \par \pard\plain \qj \f20 Trouver le n-i\'8fme nombre premier:\par \pard\plain \s2\sb120\keep\keepn \b\f22 ?ithprime\par \pard\plain \s4\qj\li1120 \f20\fs20 CALLING SEQUENCE:\par ithprime(i)\par PARAMETERS:\par i - positive integer\par SYNOPSIS: \par - The function ithprime returns the i'th prime number, where the first prime\par number is 2.\par \pard\plain \qj \f20 \page Calculer le PCGD et le PPCM de deux entiers\par \pard\plain \s2\sb120\keep\keepn \b\f22 ?igcd;\line ?ilcm;\par \pard\plain \s4\qj\li1120 \f20\fs20 CALLING SEQUENCE:\par igcd(x_1,x_2,...);\par ilcm(x_1,x_2,...);\par PARAMETERS:\par x_1,x_2,... - any integers\par SYNOPSIS: \par - The function igcd computes the greatest common divisor of an arbitrary number\par of integers. The function ilcm computes the least common multiple of an\par arbitrary number of integers.\par \pard\plain \qj \f20 \par \pard\plain \s253\qj\li354\sb120\sa80 \b\f20 2.Exemples d'utilisation\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet 2^100;\par \pard\plain \s3 \f22\fs20 1267650600228229401496703205376\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet ifactor(");\par \pard\plain \s3 \f22\fs20 100\par (2)\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet 100!;\par \pard\plain \s3 \f22\fs20 933262154439441526816992388562667004907159682643816214685929638952175999\\\par 932299156089414639761565182862536979208272237582511852109168640000000000\\\par \pard \s3 00000000000000\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet ifactor(");\par \pard\plain \s3 \f22\fs20 {\fs18 97 48 24 16 9 7 5 5 4 3 3 2\par (2) (3) (5) (7) (11) (13) (17) (19) (23) (29) (31) (37)\par \par 2 2 2\par (41) (43) (47) (53) (59) (61) (67) (71) (73) (79) (83) (89) (97)\par }\pard\plain \s2\sb120\keep\keepn \b\f22 \bullet ithprime(300);\par \pard\plain \s3 \f22\fs20 1987\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet isprime(");\par \pard\plain \s3 \f22\fs20 true\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet ifactor(2^(2^5)+1);\par \pard\plain \s3 \f22\fs20 (641) (6700417)\par \pard\plain \s254\qj\sb200\sa140 \b\f20\fs36\ul II. Calculer sur des rationnels\par \pard\plain \qj \f20 Les nombres rationnels sont repr\'8esent\'8es dans Maple comme quotient de deux entiers premiers entre eux, Maple se chargeant au besoin de faire les simplifications n\'8ecessaires.\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet 1/3 + 2/7;\par \pard\plain \s3 \f22\fs20 13\par ----\par 21\par \pard\plain \qj \f20 Les nombres rationnels sont automatiquement pr\'8esent\'8es sous forme irr\'8eductible\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet 2/8;\par \pard\plain \s3 \f22\fs20 1/4\par \pard\plain \qj \f20 et les op\'8erations sur les rationnels sont effectu\'8ees automatiquement\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet 1/3+1/3+1/3;\par \pard\plain \s3 \f22\fs20 1\page \par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet 1/10!+3/(2^5+1);\par \pard\plain \s3 \f22\fs20 3628811\par --------\par 39916800\par \pard\plain \s254\qj\sb200\sa140 \b\f20\fs36\ul III. Calculer sur des nombres alg\'8ebriques\par \pard\plain \qj \f20 Maple permet \'8egalement de travailler sur des symboles alg\'8ebriques comme la racine carr\'8ee d'un nombre entier ou rationnel (et m\'90me sur une racine symbolique d'un polyn\'99me irr\'8eductible \'88 coefficients entiers ou rationnels, voir pour cela la signification de la fonction {\b RootOf}).\par \pard \qj La racine carr\'8ee utilise la fonction {\b sqrt} , mais son r\'8esultat est automatiquement converti sous forme de puissance fractionnaire.\par \pard\plain \s2\sb120\keep\keepn \b\f22 ?sqrt;\par \pard\plain \s4\qj\li1120 \f20\fs20 FUNCTION: sqrt - square root\par CALLING SEQUENCE:\par sqrt(x) \par PARAMETERS:\par x - any algebraic expression\par SYNOPSIS: \par - The function sqrt forms the square root of its argument x. It returns the\par square root of integers and polynomials which are perfect squares. It is\par mapped onto products.\par \par \pard\plain \qj \f20 \tab Les symboles alg\'8ebriques \'8el\'8ementaires se repr\'8esentent par des puissances fractionnaires ( 3^(1/5) pour la racine 5-i\'8fme de 3.\par \pard \qj \tab Les calculs sur les nombres alg\'8ebriques ne sont pas faits automatiquement et en particulier les produits et les puissances (pour la raison \'8evidente qu'il n'est pas clair que le d\'8e veloppement d'un produit ou d'une puissance conduise r\'8eellement \'88 une expression plus simple). Pour forcer une d\'8eveloppement on dispose de la fonction {\b expand}:\par \pard\plain \s2\sb120\keep\keepn \b\f22 ?expand\par \pard\plain \s4\qj\li1120 \f20\fs20 CALLING SEQUENCE:\par expand(expr, expr_1, expr_2, . . ., expr_n)\par PARAMETERS:\par expr - any algebraic expression\par expr_1, expr_2, ..., expr_n - (optional) expressions\par SYNOPSIS: \par - The primary application of expand is to distribute products over sums. This\par is done for all polynomials. For quotients of polynomials, only sums in the\par numerator are expanded --- products and powers are left alone.\par - expand also knows how to expand most of the mathematical functions including\par sin, cos, tan, sinh, cosh, tanh, det, erf, exp, factorial, GAMMA, ln, max,\par min, Psi, binomial, sum, product, int, limit, bernoulli, euler, BesselJ,\par BesselY, BesselI, BesselK, etc.\par - The optional arguments expr_1, expr_2, ..., expr_n are used to prevent par-\par ticular sub-expressions in expr (expr_1, expr_2, ..., expr_n) from being\par expanded. \par \pard\plain \qj \f20 \par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet expand((sqrt(3)-1)^6);\par \pard\plain \s3 \f22\fs20 1/2\par 208 - 120 3\par \pard\plain \qj \f20 \par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet expand((2^(1/5)-1)^5);\par \pard\plain \s3 \f22\fs20 4/5 3/5 2/5 1/5\par 1 - 5 2 + 10 2 - 10 2 + 5 2\par \pard\plain \s254\qj\sb200\sa140 \b\f20\fs36\ul IV. Calculer sur des r\'8eels\par \pard\plain \qj \f20 Un r\'8eel Maple peut aussi bien \'90tre une expression symbolique que son approximation en virgule flottante.\par \pard\plain \s253\qj\li354\sb120\sa80 \b\f20 1.Fonctions classiques \par \pard\plain \qj \f20 Maple dispose de toute une gamme de fonctions classiques. La plupart de ces fonctions sont en g\'8en\'8eral non \'8evalu\'8ees et leur r\'8esultat reste sous forme symbolique (comme {\b sin(1)}), sauf quand leur r\'8esultat poss\'8f de une simplification naturelle (comme {\b sin(0)}, {\b sin(Pi)}, {\b abs(-sqrt(3))}), o\'9d lorsque le pazram\'8ftre qui leur est pass\'8e est d\'8ej\'88 une approximation en virgule flottante (comme {\b sin(1.5)} ). Dans ce dernier cas, Maple retourne une approximation en virgule flottante du r\'8esultat.\par \pard\plain \s4\qj\li1120 \f20\fs20 abs - absolute value of real or complex argument\par bernoulli - Bernoulli numbers and polynomials\par BesselI - modified Bessel function of the first kind I(v,x)\par BesselJ - Bessel function of the first kind J(v,x)\par BesselK - modified Bessel function of the second kind K(v,x)\par BesselY - Bessel function of the second kind Y(v,x)\par Beta - Beta function: Beta(x,y) = GAMMA(x)*GAMMA(y)/GAMMA(x+y)\par binomial - binomial coefficients: binomial(n,r) = n!/(r!*(n-r)!)\par Ci - cosine integral = gamma + ln(x) + int( (cos(t) 1)/t, t=0..x)\par dilog - dilogarithm integral = int( ln(t)/(1-t), t=1..x )\par Ei - exponential integral = int( exp(t)/t, t= -infinity..x )\par erf - error function = 2/sqrt(Pi) * int( exp(-t^2), t=0..x )\par erfc - complementary error function = 1-erf(x)\par exp - the exponential function: exp(x) = sum(x^i/i!,i=0..infinity)\par factorial - the factorial function factorial(n) = n!\par GAMMA - the gamma function\par GAMMA(z) = int( exp(-t)*t^(z-1), t=0..infinity )\par and the incomplete Gamma function\par GAMMA(a,x) = int( exp(-t)*t^(a-1), t=x..infinity )\par ln - natural logarithm (logarithm with base E = 2.71828...)\par lnGAMMA - ln of the gamma function\par log - initially assigned the name ln. Typically, the user assigns to\par this a function that computes logarithms to some other base.\par log10 - log to the base 10\par Psi - polygamma function Psi(x) = diff( ln(GAMMA(x)), x ) and\par its derivatives Psi(n,x) = diff(Psi(x),x$n)\par signum - sign of a complex argument signum(z) = z/abs(z)\par Si - sine integral = int( sin(t)/t, t=0..x )\par W - the function satisfying W(x) * exp(W(x)) = x\par Zeta - Riemann zeta function Zeta(s) = sum(1/i^s,i=1..infinity)\par and its derivatives Zeta(n,s) = diff(Zeta(s),s$n) and with\par three arguments Zeta(n,s,q) = diff(Zeta(0,s,q),s$n) where\par Zeta(0,s,q) = sum(1/(i+q)^s,i=1..infinity) \par - The trigonometric and hyperbolic functions:\par sin, cos, tan, sec, csc, cot, sinh, cosh, tanh, sech, csch, coth \par - The inverse trigonometric and inverse hyperbolic functions:\par arcsin, arccos, arctan, arcsec, arccsc, arccot, arctan,\par arcsinh, arccosh, arctanh, arcsech, arccsch, arccoth\par \pard\plain \qj \f20 \par \pard\plain \s253\qj\li354\sb120\sa80 \b\f20 2.Evaluation des r\'8eels en virgule flottante\par \pard\plain \qj \f20 Il est essentiel de distinguer dans tout logiciel de calcul formel, l'objet math\'8ematique nombre r\'8e el (par exemple sin(1)) de ses approximations en virgule flottante qui ressemblent aux types real ou float des langages de programmation classiques (comme 0.8414709848\'c9). \par \tab Les approximations de nombres r\'8eels en virgule flottante s'\'8ecrivent de mani\'8fre classique (voir aussi en cas de besoin la signification de la fonction {\b Float}). Comme pour les nombres entiers et contrairement \'88 d'autres langages de programmation, leur taille n'est pas limit\'8ee aussi bien en ce qui concerne le nombre de chiffres avant la virgule que celui apr\'8fs la virgule (ce dernier ayant une valeur par d\'8efauts contenu dans la variable Maple {\b Digits} dont on peut modifier la valeur). Pour ces approximations on dispose d'une fonction d'\'8evaluation en virgule flottante \'88 une pr\'8ecision arbitraire.\par \pard\plain \s2\sb120\keep\keepn \b\f22 ?evalf;\par \pard\plain \s4\qj\li1120 \f20\fs20 FUNCTION: evalf - evaluate using floating-point arithmetic\par CALLING SEQUENCE:\par evalf(expr, n)\par PARAMETERS:\par expr - any expression\par n - (optional) integer specifying number of digits\par SYNOPSIS: \par - evalf evaluates to floating-point numbers expressions (or subexpressions)\par involving constants such as Pi, E, gamma, and functions such as exp, ln, sin,\par arctan, cosh, GAMMA, erf. \par - The accuracy of the result is determined by the value of the global variable\par Digits. By default the results will be computed using 10-digit floating-point\par arithmetic, since the initial value of Digits is 10. A user can change the\par value of Digits to any positive integer.\par - If a second parameter, n, is present the result will be computed using\par n-digit floating-point arithmetic.\par \par \pard\plain \qj \f20 Remarquez le r\'99le important de la variable globale {\b Digits} qui fixe la pr\'8ecision des calculs en virgule flottante\par \pard\plain \s4\qj\li1120 \f20\fs20 Digits number of digits carried in floats (default is 10)\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet evalf(sin(1));\par \pard\plain \s3 \f22\fs20 .8414709848\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet evalf(sin(1),35);\par \pard\plain \s3 \f22\fs20 .84147098480789650665250232163029900\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet evalf(Pi,35);\par \pard\plain \s3 \f22\fs20 3.1415926535897932384626433832795029\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet evalf(2/7,15);\par \pard\plain \s3 \f22\fs20 .285714285714286\par \pard\plain \s253\qj\li354\sb120\sa80 \b\f20 3.Evaluations exactes et \'8evaluations en virgules flottantes\par \pard\plain \qj \f20 Comparer les calculs suivants\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet sin(1);\par \pard\plain \s3 \f22\fs20 sin(1)\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet sin(1.0);\par \pard\plain \s3 \f22\fs20 .8414709848\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet evalf(sin(1))-sin(1.0);\par \pard\plain \s3 \f22\fs20 0\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet sin(Pi);\par \pard\plain \s3 \f22\fs20 0\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet sin(evalf(Pi));\par \pard\plain \s3 \f22\fs20 -9\par -.4102068570*10\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet GAMMA(0.5)-evalf(sqrt(Pi));\par \pard\plain \s3 \f22\fs20 0\par \pard\plain \s254\qj\sb200\sa140 \b\f20\fs36\ul VI.Calculer sur des complexes\par \pard\plain \qj \f20 Un nombre complexe s'\'8ecrit sous la forme a + b*I. Les calculs sur les nombres complexes s'effectuent de mani\'8fre classique\par \pard\plain \s2\sb120\keep\keepn \b\f22 ?I;\par \pard\plain \s4\qj\li1120 \f20\fs20 complex number such that I^2 = 1. The name I is an alias to the radical (-1)^(1/2).\par \pard\plain \qj \f20 Les calculs de somme se font automatiquement. Suivant la version de Maple que vous utilisez, les calculs de produit et de puissances peuvent \'90tre faits automatiquement (version V release 2) ou demander l'appel de la fonction d'\'8e valuation complexe {\b evalc}.\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet (2+3*I)*(4+5*I);\par \pard\plain \s3 \f22\fs20 (2 + 3 I) (4 + 5 I)\par \pard\plain \s2\sb120\keep\keepn \b\f22 ?evalc;\par \pard\plain \s4\qj\li1120 \f20\fs20 FUNCTION: evalc - evaluate in the complex number field \par CALLING SEQUENCE:\par evalc(expr) \par PARAMETERS:\par expr - any expression \par SYNOPSIS: \par - This function is for evaluating and simplifying complex numbers. evalc attempts to split an expression into its real and imaginary components.\par - When possible, the result of evalc will be in the canonical form\par expr_1 + expr_2 * I involving the symbol I, which is an alias for sqrt(-1).\par - When evalc encounters an unevaluated function call (e.g. f(1+I) where f is not defined) then it will attempt to\par put the arguments in the above canonical form.\par - evalc(Re(expr)) and evalc(Im(expr)) return the real and imaginary parts of an expression.\par - To find the complex conjugate of an expression use evalc(conjugate(expr)).\par - A complex number may be represented to evalc as polar(r,theta) where r is the modulus and theta is the argument of the number.\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet evalc(");\par \pard\plain \s3 \f22\fs20 - 7 + 22 I\par \pard\plain \qj \f20 \par Les fonctions rencontr\'8ees dans le domaine r\'8eel sont \'8egalement d\'8efinies dans le domaine complexe (pour certaines fonctions "multivalu\'8ees", une d\'8etermination principale est utilis\'8ee). Leur \'8e valuation demande dans toutes les versions l'emploi de la fonction {\b evalc} pour des raisons \'8evidentes: quelle est l'expression la plus simple entre les deux lignes qui suivent , cos(2+3i) ou cos(2) cosh(3) - i sin(2) sinh(3) ?\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet evalc(cos(2+3*I));\par \pard\plain \s3 \f22\fs20 cos(2) cosh(3) - sin(2) sinh(3) I\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet evalf(");\par \pard\plain \s3 \f22\fs20 - 4.189625692 - 9.109227896 I\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet arcsin(2);\par \pard\plain \s3 \f22\fs20 arcsin(2)\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet evalc(");\par \pard\plain \s3 \f22\fs20 1/2\par 1/2 Pi + ln(2 + 3 ) I\par \pard\plain \s2\sb120\keep\keepn \b\f22 \bullet evalf(");\par \pard\plain \s3 \f22\fs20 1.570796327 + 1.316957897 I\par \pard\plain \qj \f20 \par \pard\plain \s254\qj\sb200\sa140 \b\f20\fs36\ul VII. Exercices\par \pard\plain \s253\qj\li354\sb120\sa80 \b\f20 Exercice 1\par \pard\plain \qj \f20 \tab Le nombre exp(\'b9 \'c3163/3) est-il un entier?\par \pard\plain \s253\qj\li354\sb120\sa80 \b\f20 Exercice 2\par \pard\plain \qj \f20 \tab Montrer que \'c3(286+2\'c319549) = \'c3113 + \'c3173\par }