Retour à la page personnelle de Bernard Parisse.

# Chapitre 1 Fonctions et expressions en seconde

Objectifs S’entrainer à lire, écrire, interprêter et simplifier des expressions.
Faire la distinction entre expression et fonction.

## 1.1 Les expressions

Une expression est une suite de termes séparés par un signe d’opération. Un terme est un nombre ou un nom de variable ou un produit ou une parenthése contenant une expression.
Convention La multiplication et la division sont prioritaires sur l’addition et la soustraction.
Le signe * est quelqufois omis dans l’écriture, par exemple on écrit : 2x au lieu de 2*x.

### 1.1.1 L’énoncé

Voici 6 expressions formées à partir de T=1−x*2+x en rajoutant des parenthèses:

A=(1−x)*2+x

B=1−(x*2)+x

C=1−x*(2+x)

D=(1−x*2)+x

F=1−(x*2+x)

G=(1−x)*(2+x)

1/ Y-a-t-il une (ou des) expression(s) égale à T ?
Si oui, pourquoi ?
2/ Calculer les valeurs de ces expressions pour x=1 et pour x=−1.
3/ Parmi les expressions A,B,C,D,F,G :
- Lesquelles sont une somme de 2 termes ?
- Lesquelles sont une différence de 2 termes ?
- Lesquelles sont une somme algébrique de 3 termes ?
- Lesquelles sont un produit de 2 termes ?
- Lesquelles sont égales ?
4/ Simplifier les expressions A,B,C,D,F,G.
5/ Écrire toutes les expressions formées à partir de S=1+x/2*x en rajoutant des parenthèses.

### 1.1.2 Vérifions avec `Xcas`

On tape :
`T:=1-x*2+x`
`A:=(1-x)*2+x`
`B:=1-(x*2)+x`
`C:=1-x*(2+x)`
`D:=(1-x*2)+x`
`F:=1-(x*2+x)`
`G:=(1-x)*(2+x)`
Puis on tape pour connaitre les expressions égales à `T` :
`A==T`, `B==T`, etc...
On trouve que la réponse de `A==T` est `0` ce qui veut dire que l’expression `A` est différente de `T`.
On trouve que la réponse de `B==T` est `1` ce qui veut dire que l’expression `B` est identique à `T` etc...

## 1.2 Les fonctions

Une fonction rèelle f définie sur I partie de ℝ est une application qui à tout nombre de x de I fait correspondre une expression f(x). La valeur de la fonction en un point x est donc donnée par une expression.
Exemple avec `Xcas` Je tape :
`xpr:=3*x+2`
je définis ainsi l’expression `xpr`
Je tape :
`f(x):=3*x+2`
je définis ainsi la fonction `f`
Je tape :
`subst(xpr,x=1)` et j’obtiens 5
Je tape :
`f(1)` et j’obtiens 5
Je tape :
`plotfunc(3*x+2)` ou,
`plotfunc(xpr)` ou,
`plotfunc(f(x))`
j’obtiens un seul graphe qui est le graphe de la fonction `f`

### 1.2.1 L’énoncé

1/ Définir 6 fonctions ayant pour valeurs respectives les expressions A,B,C,D,F,G.
2/ Tracer le graphe de ces fonctions et observer sur un même graphique.
3/ Parmi ces graphes il y a des droites et des paraboles. Retrouver le graphe de chaque fonction.

### 1.2.2 Vérifions avec `Xcas`

On tape pour définir les 6 fonctions :
`a(x):=(1-x)*2+x`
`b(x):=1-(x*2)+x`
`c(x):=1-x*(2+x)`
`d(x):=(1-x*2)+x`
`f(x):=1-(x*2+x)`
`g(x):=(1-x)*(2+x)`
Puis on tape pour visualiser les graphes :
`plotfunc([a(x),b(x),c(x),d(x),f(x),g(x)])`
On obtient que 5 courbes de couleurs différentes.
On peut taper progressivement :
`plotfunc([a(x)])`, `plotfunc([a(x),b(x)])` etc...
On voit ainsi que :

- le graphe de `a` est la droite noire,
- le graphe de `b` est une droite rouge,
- le graphe de `c` est la parabole verte,
- le graphe de `d` est la droite jaune qui se supperpose à la droite rouge,
- le graphe de `f` est la droite bleue et,
- le graphe de `g` est la parabole verte.

## 1.3 Résolution d’équations

### 1.3.1 Le trinôme du second degré

Pour résoudre les équations de la forme : ax2+bx+c=0 on écrit :
ax2+bx+c=a((x+b/(2a))2−(b2/(4a2)−c/a))
Donc ax2+bx+c=0 est équivalent à (x+b/(2a))2−(b2−4ac)/(4a2))=0 Les solutions dépendent donc du signe de b2−4ac.
On tape :
`solve(a*x```^```2+b*x+c)`
On obtient :
`[1/(2*a)*(-b+sqrt(-4*a*c+b```^```2)),1/(2*a)*(-b-sqrt(-4*a*c+b```^```2))]`
On tape :
`solve(x```^```2+2x-5)`
On obtient :
`[-sqrt(6)-1,sqrt(6)-1]`
On tape :
`solve(x```^```2+2x+5)`
On obtient :
`[-1+2*i,-1-2*i]`

### 1.3.2 Visualisation géométrique des racines du trinôme

Soient 2 réels s et p.
On veut visualiser les racines de x2−sx+p.
Dans le plan muni d’un repère orthonormé d’origine O, on considère les points J=(0,1), P=(0,p), M=(s,p ), le cercle C1 circonscrit au triangle JPM et le cercle C2 de centre O et de rayon √|p|.

- Si le cercle C1 coupe l’axe x, il le coupe en 2 points qui ont pour abscisse les racines de x2−sx+p.
  Dans ce cas le carré du rayon de C1 vaut (s2+(p−1)2)/4 et la distance de son centre à l’axe des x vaut (p+1)/2 on a donc : (p+1)2≤ s2+(p−1)2 c’est à dire :
  le cercle C1 coupe l’axe x si et seulement si s2−4p≥ 0.
  Les abscisses des points d’intersections M1 et M2 ont :
  comme demi-somme s/2 car le centre de C1 se projette sur Ox au point d’abscisse s/2 et
  comme produit p car OM1*OM2=OJ*OP=puissance de O par rapport à C1. Ces 2 points d’intersection ont donc pour abscisses les racines de x2−sx+p
- Si le cercle C1 ne coupe pas l’axe x, c’est que s2−4p< 0 donc p≥ 0 et le cercle C2 coupe la droite verticale x=s/2 en 2 points qui ont pour affixes les racines de x2−sx+p.
  C2 est le cercle d’équation x2+y2=p (car s2−4p< 0 donc p≥ 0) donc les ordonnées y de l’intersection avec x=s/2 sont les solutions de 4y2=4p−s2.
  Ces 2 points d’intersection ont donc pour affixes les racines de x2−sx+p.

Avec `Xcas`, on tape dans un niveau de géométrie :

    assume(s=3);
    assume(p=2);
    J:=point(i);
    P:=point(p*i);
    M:=point(s+i*p);
    C1:=circonscrit(J,P,M);
    C2:=cercle(0,sqrt(abs(p)));
    d:=droite(x=s/2):;d;
    si s^2-4p>=0 alors R:=inter(C1,droite(y=0)):;
    sinon R:=inter(C2,d):; fsi;
    a:=evalf(affixe(R[0]));
    b:=evalf(affixe(R[1]));
    legende(-6+4*i,a);
    legende(-6+3.5*i,b);
    legende(-6+5*i,string("s=")+evalf(s));
    legende(-6+4.5*i,string("p=")+evalf(p));

### 1.3.3 Simplification de √A+√B lorsque A2−B est un carré parfait

Montrer que :

√

2

√

A+

√

B

=

√

A+

√

A2−B

+

√

A−

√

A2−B

On tape :
`normal(expand((sqrt(A+c)+ sqrt(A-c))```^```2))`
On obtient :
`sqrt(-4*c```^```2+4*A```^```2)+2*A`
On tape :
`c:=sqrt(A```^```2-B)` `normal(sqrt(-4*c```^```2+4*A```^```2)+2*A)`
`2*A+sqrt(4*B)`
Donc :
√A+√A2−B+√A−√A2−B=√2√A+√B
On tape :
`sqrt(5+sqrt(21))`
On a 52−21=4=22, 5+2=7 et 5−2=3
On obtient donc :
`sqrt(7/2)+sqrt(3/2)`
On tape :
`sqrt(11+6*sqrt(2))`
On a 112−72=49=72, 11+7=18 et 11−7=4
On obtient donc :
`3+sqrt(2)`
On tape :
`sqrt(11+2*sqrt(30))`
On a 112−120=1=12, 11+1=12 et 11−1=10
On obtient donc :
`sqrt(6)+sqrt(5)`
On peut écrire un petit programme qui prend en entrée `(a,b,s)` pour simplifier `sqrt(a+s*sqrt(b))`.
On tape :

    reduire2(a,b,s):={
    local c;
    si s==0  alors return sqrt(a);fsi;
    c:=round(sqrt(a^2-b*s^2));
    si c^2==a^2-b*s^2 alors
    si s>0  alors return sqrt((a+c)/2)+sqrt((a-c)/2);
    sinon
    return sqrt((a+c)/2)-sqrt((a-c)/2);
    fsi;
    fsi;
    return sqrt(a+s*sqrt(b));
    }:;

On tape :
`reduire2(18,2,-8)`
On obtient :
`4-sqrt(2)`
On tape :
`reduire2(194320499737857776523212040, 97160249868928888261606031,19713979797994)`
On obtient :
`sqrt(97160249868928888261606031)+9856989898997` ou bien, on tape la fonction `simply` qui doit avoir `r=sqrt(a+sqrt(b))` comme paramètre où `b` est sans facteur carré:

    simply(r):={
    local f,a,b,c,d;
    si sommet(r)=='^' alors
      f:=feuille(r);
      a,d:=feuille(f[0]);
      si type(a)==integer alors
        b:=feuille(d)[0];
        c:=sqrt(a^2-b);
        si (round(c))^2==a^2-b alors
          retourne sqrt((a+c)/2)+sqrt((a-c)/2)
        fsi;
      sinon
        d,a:=feuille(f[0]);
        b:=feuille(d)[0];
        c:=sqrt(a^2-b);
        si (round(c))^2==a^2-b alors
          retourne sqrt((a+c)/2)+sqrt((a-c)/2)
        fsi;
      fsi;
    fsi;
    retourne r;
    }:;

On tape :
`simply(sqrt(9+sqrt(17)))`
ou
`simply(sqrt(sqrt(17)+9))`
On obtient :
`(sqrt(34))/2+(sqrt(2))/2` ou bien, on tape la fonction `simplyf` qui doit avoir comme paramètre `r` de la forme `rsqrt(a+s*sqrt(b))` ou `sqrt(a+sqrt(b))` :

    simplyf(r):={
    local f,a,b,c,d,s,sb;
    si sommet(r)=='^' alors
      f:=feuille(r);
      a,d:=feuille(f[0]);
      si type(a)==integer alors
        f:=feuille(d);
        si f[1]==1/2 alors
          s:=1;
          b:=f[0];
        sinon
          s,sb:=f;
          si type(s)==integer alors
            b:=feuille(sb)[0];
          sinon
           sb,s:=f;
           b:=feuille(sb)[0];
          fsi;
        fsi;
        c:=sqrt(a^2-s^2*b);
        si (round(c))^2==a^2-s^2*b alors
          retourne sqrt((a+c)/2)+sqrt((a-c)/2);
        fsi;
      sinon
        d,a:=feuille(f[0]);
        f:=feuille(d);
        si f[1]==1/2 alors
          b:=f[0];
          s:=1;
        sinon
          s,sb:=f;
          si type(s)==integer alors
            b:=feuille(sb)[0];
          sinon
           sb,s:=f;
           b:=feuille(sb)[0];
          fsi;
        fsi;
        c:=sqrt(a^2-s^2*b);
        si (round(c))^2==a^2-s^2*b alors
          retourne sqrt((a+c)/2)+sqrt((a-c)/2)
        fsi;
      fsi;
    fsi;
    retourne r;
    }:;

On tape (car `Xcas` remplace `sqrt(128)` par `8*sqrt(2)`:
`simplyf(sqrt(18+sqrt(128)))`
ou
`simplyf(sqrt(sqrt(128)+18))`
ou
`simplyf(sqrt(8*sqrt(2)+18))`
ou
`simplyf(sqrt(18+8*sqrt(2)))`
ou
`simplyf(sqrt(sqrt(2)*8+18))`
ou
`simplyf(sqrt(18+sqrt(2)*8))`
On obtient :
`4+sqrt(2)` On tape :
`simplyf(sqrt(194320499737857776523212040+19713979797994*sqrt(97160249868928888261606031)))`
On obtient :
`sqrt(97160249868928888261606031)+9856989898997`

### 1.3.4 Les formules de Cardan

Les formules de Cardan permettent de résoudre les équations de la forme : x3+px+q=0.
Pour cela, on pose x=u+v avec uv=−p/3 on a donc à résoudre :
x3+px+q=u3+v3+3uv(u+v)+p(u+v)+q=u3+v3+q=0.
et on doit résoudre :
u3+v3+q=0 et u3v3=−p3/27 On a donc U=u3 et V=v3 qui sont les solutions de l’équation du 2-ième degré :
X2+qX−p3/27=0 donc

- Si 4p3+27q2 ≥ 0 on a :
  U=−q+√q2+4p3/27/2 et
  V=−q−√q2+4p3/27/2
  On tape :
  `solve(x```^```3-6*x-9)`
  On obtient :
  `[3,1/2*(-3+(i)*sqrt(3)),1/2*(-3-(i)*sqrt(3))]`
  En effet p=−6, q=−9 donc
  4p3/27+q2=49
  X2−9X−(−6)3/27=X2−9X+8=(X−1)(X−8) 0n a donc : u=U1/3=81/3=2 et v=V1/3=1 donc x=u+v=3 est solution et on a :
  x3−6*x−9=(x−3)(x2+3x+3)
- Si 4p3+27q2 <0 on a :
  u3=U=−q+i√−q2−4p3/27/2 et
  v3=V=−q−i√−q2−4p3/27/2
  arg(u)=−arg(v)=t=arg(U)/3 (mod2π/3) et abs(u)=abs(v)=n=abs(U)1/3
  Donc :
  x1=u+v=2ncos(t), x2=u+v=2ncos(t+2π/3), x1=u+v=2ncos(t+4π/3)
  avec n6=−p3/27 soit n=√−p/3 et
  cos(3t)=−q/2/n3=−q/2/√−p3/27

### 1.3.5 Simplification de (A+√B)1/3

Soient : u=(A+√B)1/3 et v=(A−√B)1/3 On cherche à savoir si u+v est un entier.
On pose : u*v=p
U=u3=A+√B et V=v3=A−√B On a U*V=A2−B=(u*v)3=p3 et
U+V=u3+v3=(u+v)(u2+v2−uv)=(u+v)((u+v)2−3uv)=2A donc (u+v)3−3p(u+v)−2A=0 donc
u+v est racine de :
S3−3pS−2A=0
Pour que ce trinôme ait une racine entière k il faut que A2−B soit le cube d’un entier p et que k divise 2*A i.e. k*(k2−3p)=2*A.
On cherche à simplifier :
u=(20+14√2)1/3 et v=(20−14√2)1/3
On a : A=20, B=142*2=392 2A=40 A2−B=8=23 donc p=2 L’équation à résoudre est : S3−6S=S(S2−6)=40
Les diviseurs de 40 sont :
`idivis(40)`
On obtient : `[1,2,4,8,5,10,20,40]`
On tape : `L:=NULL;for k in idivis(40) do L:=L,k```^```2-6; end_for` On obtient :
`-5,-2,10,58,19,94,394,1594`
On tape : `[1,2,4,8,5,10,20,40].*[-5,-2,10,58,19,94,394,1594]` On obtient :
`[-5,-4,40,464,95,940,7880,63760]` donc k=4 est solution et donc :
u=(20+14√2)1/3 et v=(20−14√2)1/3 sont les racines de X2−4X+2=0 On tape :
`solve(x```^```2-4x+2)`
On obtient :
`[-sqrt(2)+2,sqrt(2)+2]`
Donc (20+14√2)1/3=2+√2 et (20−14√2)1/3=2−√2.
On vérifie :
On tape :
`normal(expand((-sqrt(2)+2)```^```3)),normal(expand((sqrt(2)+2)```^```3))` On obtient :
`-14*sqrt(2)+20,14*sqrt(2)+20`
On cherche à simplifier :
u=(9+4√5)1/3 et v=(9−4√5)1/3
On a : A=9, B=42*5=80 2A=18 A2−B=1=13 donc p=1
L’équation à résoudre est : S3−3S=S(S2−3)=18
Les diviseurs de 8 sont :
`idivis(18)`
On obtient : `[1,2,3,6,9,18]`
On tape : `L:=NULL;for k in idivis(18) do L:=L,k```^```2-3; end_for`
On obtient :
`-2,1,6,33,78,321`
On tape : `[1,2,3,6,9,18].*[L]` On obtient :
`[-2,2,18,198,702,5778]` donc k=3 est solution et donc :
u=(9+4√5)1/3 et v=(9−4√5)1/3 sont les racines de X2−3X+1=0 On tape :
`solve(x```^```2-3x+1)`
On obtient :
`[1/2*(3-sqrt(5)),1/2*(3+sqrt(5))]`
Donc (9+4√5)1/3=(3+√5)/2 et (20−14√2)1/3=(3−√5)/2.
On vérifie :
On tape :
`normal(expand((-sqrt(5)/2+3/2)```^```3)),normal(expand((+sqrt(5)/2+3/2)```^```3))` On obtient :
`-4*sqrt(5)+9,4*sqrt(5)+9`
Remarque La méthode utilisée ci-dessus n’est valable que lorsque le nombre pour lequel on cherche les diviseurs est petit ! Il est donc préférable de faire évaluer par `Xcas` `u+v` puis de vérifier si `u+v` est entier.
On peut écrire un petit programme qui prend en entrée `(a,b,s)` pour simplifier `(a+s*sqrt(b))```^```(1/3)`.
On évite la décomposition en facteurs premiers trop longue en utilisant des `round`.
On utilise la fonction `surd` qui est la puisance 1/n par exemple :
si `a>0`, `surd(a,3)` renvoie `a```^```(1/3)` et si `a<0`, `surd(a,3)`renvoie `-(-a)```^```(1/3)`
On tape :

    reduire3(a,b,s):={
    local c,d,r;
    si s==0  alors return a^(1/3);fsi;
    c:=round(surd(a^2-b*s^2,3));
    d:=round(surd(a+sqrt(b*s^2),3)+surd(a-sqrt(b*s^2),3));
    si (c^3==a^2-b*s^2) alors
    si (d*(d^2-3*c)==2*a) alors
    r:=solve(x^2-d*x+c);
    si s>0 alors return r[1]; else return r[0]; fsi;;
    fsi;
    fsi;
    return (a+s*sqrt(b))^(1/3);
    }:;

On tape :
`reduire3(9,5,-4)`
On obtient :
`1/2*(3-sqrt(5))`
On tape :
`reduire3(747,5,428)`
On obtient :
`4*sqrt(5)+3`
On tape (avec `Digits:=30`) :
`reduire3(957707601542343957074807589821177843432, 9716024986949,291480749606796380809804976)`
On obtient :
`sqrt(9716024986949)+9856989898997`

## 1.4 Exercice : étude de f(x)=2x2−1/6x2+x−2

1. Domaine de définition
   On tape :
   `solve(6x```^```2+x-2)`
   On obtient :
   `[(-2)/3,1/2]`
   Donc f est définie sur ℝ−{−2/3,1/2}
2. Dérivée
   On tape :
   `factor(diff((2x```^```2-1)/(6x```^```2+x-2))`
   On obtient :
   `(2*x```^```+4*x+1)/((2*x-1)```^```2*(3*x+2)```^```2)`
   On tape :
   `normal(solve(2*x```^```+4*x+1))`
   On obtient :
   `[(-sqrt(2)-2)/2,(sqrt(2)-2)/2]`
   On tape :
   `evalf([(-sqrt(2)-2)/2,(sqrt(2)-2)/2])`
   On obtient :
   `[-1.70710678119,-0.292893218813]`
   On tape :
   `subst((2x```^```2-1)/(6x```^```2+x-2),x=-1.70710678119)`
   On obtient :
   `0.35044026276`
   On tape :
   `subst((2x```^```2-1)/(6x```^```2+x-2),x=-0.292893218813)`
   On obtient :
   `0.465886267852`
   f a donc deux extremum en ≃ (-1.71,0.35) et (-0.29,0.47)
   Donc f est :
   croissante sur ]−∞;(−√2−2)/2]
   décroissante sur [(−√2−2)/2; −2/3[
   décroissante sur ]−2/3;(√2−2)/2]
   croissante sur [(√2−2)/;1/2[
   croissante sur ]1/2;+∞[
3. Branches infinies
   On tape :
   `limit((2x```^```2-1)/(6x```^```2+x-2),x=inf)`
   On obtient :
   `1/3`
   On tape :
   `limit((2x```^```2-1)/(6x```^```2+x-2),x=-inf)`
   On obtient :
   `1/3`
   Donc y=1/3 est asymptote.
   On tape :
   `limit((2x```^```2-1)/(6x```^```2+x-2),x=-2/3,-1)`
   On obtient :
   `-infinity`
   On tape :
   `limit((2x```^```2-1)/(6x```^```2+x-2),x=-2/3,1)`
   On obtient :
   `+(infinity)`
   Donc x=−2/3 est asymptote.
   On tape :
   `limit((2x```^```2-1)/(6x```^```2+x-2),x=1/2,-1)`
   On obtient :
   `+infinity`
   On tape :
   `limit((2x```^```2-1)/(6x```^```2+x-2),x=1/2,1)`
   On obtient :
   `-infinity`
   Donc x=1/2 est asymptote.
4. Graphe
   On tape :
   `plotfunc((2x```^```2-1)/(6x```^```2+x-2),x=-8..8),`
   `affichage(droite(x=1/2),droite(x=-2/3),droite(y=1/3),1)`
   On obtient :

Retour à la page personnelle de Bernard Parisse.