360
Le logiciel R - Effectuer des analyses math´ ematiques
Remarque
Dans le cas de contraintes lin´ eaires du type suivant :
⎛
⎜ ⎜ ⎜ ⎜ ⎜ ⎝
a b
c d
⎞
⎟ ⎟ ⎟ ⎟ ⎟ ⎠
⎛
⎜ ⎜ ⎜ ⎜ ⎜ ⎝
x
y
⎞
⎟ ⎟ ⎟ ⎟ ⎟ ⎠ −
⎛
⎜ ⎜ ⎜ ⎜ ⎜ ⎝
c 1
c 2
⎞
⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ≥ 0 ⇔
⎧
⎪ ⎪ ⎨
⎪ ⎪ ⎩
ax + by − c 1 ≥ 0
cx + dy − c 2 ≥ 0
on peut utiliser la fonction constrOptim() avec les param` etres
ui=
⎛
⎜ ⎜ ⎜ ⎜ ⎜ ⎝
a b
c d
⎞
⎟ ⎟ ⎟ ⎟ ⎟ ⎠ et ci=
⎛
⎜ ⎜ ⎜ ⎜ ⎜ ⎝
c 1
c 2
⎞
⎟ ⎟ ⎟ ⎟ ⎟ ⎠ .
8.5.2 Racines d’une fonction
Les racines d’une fonction f sont d´ efinies comme ´ etant les solutions de
l’´ equation f (x) = 0.
• Cas d’une racine unique
Dans le cas d’une racine unique, on utilise la fonction uniroot() effectuant une recherche unidimensionnelle sur un intervalle donn´ e. Voil` a par
exemple comment on peut d´ eterminer la valeur qui annule la fonction
cos(x
2 ) (vue lors de la pr´ esentation de l’optimisation unidimensionnelle)
sur l’intervalle [0, 2]. La solution analytique ` a ce simple probl` eme est
x =
√
π/2 = 1.253314.
> uniroot(f=function(x){cos(x^2)},lower=0,upper=2,
+
tol=0.00001)$root
[1] 1.253314
• Cas des racines d’un polynˆ ome
La fonction polyroot() sert `
a trouver toutes les racines d’un polynˆ ome
(possiblement complexes). Par exemple, trouvons les racines du polynˆ ome
P(x) = 3 − 8x + x
2 .
> polyroot(c(3,-8,1)) # Les valeurs exactes sont:
# (8+c(-1,1) * sqrt(54))/2.
[1] 0.3944487+0i 7.6055513+0i
Le logiciel R - Effectuer des analyses math´ ematiques
Remarque
Dans le cas de contraintes lin´ eaires du type suivant :
⎛
⎜ ⎜ ⎜ ⎜ ⎜ ⎝
a b
c d
⎞
⎟ ⎟ ⎟ ⎟ ⎟ ⎠
⎛
⎜ ⎜ ⎜ ⎜ ⎜ ⎝
x
y
⎞
⎟ ⎟ ⎟ ⎟ ⎟ ⎠ −
⎛
⎜ ⎜ ⎜ ⎜ ⎜ ⎝
c 1
c 2
⎞
⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ≥ 0 ⇔
⎧
⎪ ⎪ ⎨
⎪ ⎪ ⎩
ax + by − c 1 ≥ 0
cx + dy − c 2 ≥ 0
on peut utiliser la fonction constrOptim() avec les param` etres
ui=
⎛
⎜ ⎜ ⎜ ⎜ ⎜ ⎝
a b
c d
⎞
⎟ ⎟ ⎟ ⎟ ⎟ ⎠ et ci=
⎛
⎜ ⎜ ⎜ ⎜ ⎜ ⎝
c 1
c 2
⎞
⎟ ⎟ ⎟ ⎟ ⎟ ⎠ .
8.5.2 Racines d’une fonction
Les racines d’une fonction f sont d´ efinies comme ´ etant les solutions de
l’´ equation f (x) = 0.
• Cas d’une racine unique
Dans le cas d’une racine unique, on utilise la fonction uniroot() effectuant une recherche unidimensionnelle sur un intervalle donn´ e. Voil` a par
exemple comment on peut d´ eterminer la valeur qui annule la fonction
cos(x
2 ) (vue lors de la pr´ esentation de l’optimisation unidimensionnelle)
sur l’intervalle [0, 2]. La solution analytique ` a ce simple probl` eme est
x =
√
π/2 = 1.253314.
> uniroot(f=function(x){cos(x^2)},lower=0,upper=2,
+
tol=0.00001)$root
[1] 1.253314
• Cas des racines d’un polynˆ ome
La fonction polyroot() sert `
a trouver toutes les racines d’un polynˆ ome
(possiblement complexes). Par exemple, trouvons les racines du polynˆ ome
P(x) = 3 − 8x + x
2 .
> polyroot(c(3,-8,1)) # Les valeurs exactes sont:
# (8+c(-1,1) * sqrt(54))/2.
[1] 0.3944487+0i 7.6055513+0i
