Skip to content
Snippets Groups Projects
Commit 7a973faf authored by orestis.malaspin's avatar orestis.malaspin
Browse files

added optim

parent 6fd0e6b6
Branches
No related tags found
No related merge requests found
......@@ -1114,22 +1114,348 @@ $f(x)=ax^3+bx^2+cx+d$.
# Optimisation
## Généralités
## La régression linéaire
## Position du problème
Lors d'une régression linéaire, le but est de trouver la droite, $y(x)=a\cdot x + b$, qui passe au mieux au travers d'un nuage de $N$ points $(x_i, y_i)$,
$i=1,...,N$ (voir @fig:reg).
Un problème d'optimisation se représente mathématiquement de la façon suivante
![Nous recherchons l'équation de la droite, en rouge, $y(x)=ax+b$ passant au plus proche des points $(x_i,y_i)$ et bleu. Source: Wikipedia
<https://bit.ly/2SfiLzb>](figs/Linear_regression.svg){#fig:reg width=70%}
Pour déterminer l'équation de cette droite, nous devons donc trouver les coefficients $a$ et $b$ tels que la droite
passe au plus proche des points. Nous devons d'abord définir ce que signifie mathématiquement "passe au mieux par au travaers du nuage de points".
Une façon de mesurer la "qualité" d'une droite est de mesurer la somme des distances au carré entre les points $(x_i,y_i)$ et
la droite $y(x)=a\cdot x + b$ pour des valeurs de $a$ et $b$ données, soit
$$
E(a,b)=\sum_{i=1}^N (y(x_i)-y_i)^2.
$$
Nous cherchons par conséquent à minimiser $E(a,b)$ sous la contrainte que $y(x)$ est une droite. Pour simplifier encore plus le problème mathématique,
nous pouvons rajouter comme contrainte que la droite $y(x)$ passe par le point $(0,0)$, on a donc que $y(x)=a\cdot x$ (l'ordonnée à l'origine est nulle, $b=0$) et que
$$
E(a)=\sum_{i=1}^N (y(x_i)-y_i)^2,
$$
est indépendant de $b$. En résumé nous cherchons à résoudre le problème mathématique
\begin{align}
&\mbox{minimisation de }f(\ux),\\
&\mbox{où }\ux\in\mathcal{X}\subseteq \real^n.
&\min_{a\in\real} E(a) = \min_{a \in\real} \sum_{i=1}^N (y(x_i)-y_i)^2,\\
&\mbox{où }y(x)=a\cdot x, \quad \mbox{(contrainte)}.
\end{align}
Ici $\ux$ est un vecteur à $n$ dimensions,
\begin{equation}
\ux=(x_0,...,x_{n-1}),
\end{equation}
qui représente les variables de notre problème d'optimisation et qui satisfont les *contraintes*, représentées par $\mathcal{X}$.
La fonction $f$, appelée fonction objectif, fonction de coût, ... est la fonction que nous cherchons à *minimiser* en ajustant $\ux$.
On peut réécrire la fonction $E(a)$ comme
\begin{align}
E(a)&=\sum_{i=1}^N \left(y^2(x_i)-2\cdot y_i\cdot y(x_i)+y_i^2\right)=\sum_{i=1}^N \left(a^2\cdot x_i^2-2\cdot a\cdot x_i\cdot y_i+y_i^2\right),\nonumber\\
&=a^2\sum_{i=1}^Nx_i^2 + 2a\sum_{i=1}^Nx_iy_i+\sum_{i=1}^Ny_i^2.
\end{align}
Les $x_i$ et $y_i$ étant connus, nous cherchons $a$, tel que $E(a)$ soit minimal. $E(a)$ est en fait l'équation d'une parabole: elle a la forme
$$
E(a)=B\cdot a^2-2C\cdot a + D,
$$
avec $B=\sum_{i=1}^Nx_i^2$, $C=\sum_{i=1}^Nx_iy_i$, et $D=\sum_{i=1}^N y_i^2$. $B$ étant forcément positif cette parabole sera **convexe** et donc
nous sommes assurés qu'il existe un minimum pour $E(a)$. Une façon de déterminer $a$, tel que $E(a)$ est minimal est d'utiliser la dérivée.
On a l'équation $E'(a)=0$ à résoudre:
\begin{align}
E'(a)&=0,\nonumber\\
2\cdot B\cdot a-2\cdot C&=0,\nonumber\\
a &= \frac{C}{B}=\frac{\sum_{i=1}^Nx_iy_i}{\sum_{i=1}^Nx_i^2}.
\end{align}
---
Exemple +.#
Soient les 4 points $(0, 0.1)$, $(1, 0.3)$, $(2, 0.3)$ et $(3, 0.4)$. La fonction d'erreur $E(a)$ s'écrit
$$
E(a)=14\cdot a^2-4.2\cdot a + 0.35.
$$
On peut la représenter comme sur la @fig:e_a et on constate qu'elle possède un minimum proche de $a=0$.
![La fonction $E(a)=14a^2-4.2a+0.35$ pour $a\in[-1,1]$. On voit bien qu'elle possède un minimum proche de $a=0$.](figs/e_a.svg){#fig:e_a width=70%}
En résolvant $E'(a)=0$, on obtient $a=4.2/24=0.15$. On a que l'équation de la droite passant par $(0,0)$ et au plus proche de nos 4 points est
$$
y(x)=0.15\cdot x.
$$
On peut observer le résultat de la régression sur la @fig:regression_ex, où on voit les 4 points (en noir), ainsi que la droite obtenue (en trait bleu).
![Les 4 points $(0, 0.1)$, $(1, 0.3)$, $(2, 0.3)$ et $(3, 0.4)$ (en noir) et la droite obtenue par régression linéaire
(en bleu).](figs/regression_ex.svg){#fig:regression_ex width=70%}
---
La régression linéaire est un problème **d'optimisation continu**. On voit que contrairement au problème du voyageur du commerce,
l'ensemble des solutions est $a\in\real$ et non une suite discrète de villes. Ce genre de problème, bien que possédant un espace de recherche infini,
est bien souvent plus simple à résoudre, car il possède un cadre théorique mieux défini.
Pour le résoudre, nous avons commencé, comme pour le problème du voyageur du commerce par faire un modèle mathématique.
Nous avons construit une fonction à minimiser, $E(a)$, et ajouté une contraite, la forme de $y(x)$. Puis, il a suffit de trouver le minimum de $E(a)$
sous la contrainte et le tour était joué.
## L'optimisation mathématique
Suite à ces deux exemples, nous allons essayer de définir de façon assez théorique comment formuler mathématiquement un problème d'optimisation.
Il existe deux types disctincts de problèmes d'optimisation:
1. L'optimisation continue.
2. L'optimisation discrète (souvent appelée optimisation combinatoire).
Dans ce chapitre nous ne parlerons que del'optimisation continue.
### L'optimisation continue
L'optimisation continue ou *programme mathématique continu* est un programme d'optimisation soumis à certaines contraintes.
On peut l'exprimer de la façon suivante.
Soit $f:\real^n\rightarrow\real$ une fonction objectif (ou fontion de coût), on cherche $\vec x_0\in\real^n$, tel que $f(\vec x_0)\leq f(\vec x)$ pour $\vec x$ certaines conditions: **les contraintes**. Celles-ci sont en général des égalités strictes ou des inégalités qui peuvent s'exprimer de la façon suivante.
Soient $m$ fonctions $g_i:\real^n\rightarrow\real$
\begin{align}
&g_i(\vec x)\leq 0,\quad i=1,...,m.
\end{align}
Si $m=0$ on a à faire à un problème d'optimisation sans contraintes. On peut résumer tout cela comme
\begin{align*}
&\min_{\vec x\in\real^n}f(\vec x),\\
&g_i(\vec x)\leq 0,\quad i=1,...,m,\\
&\mbox{pour }m\geq 0.
\end{align*}
Les contraintes limitent l'espace des solutions et forment un sous-ensemble, noté $A$, de $\real^n$ ($A\subseteq\real^n$).
Une des difficultés pour déterminer le minimum d'une fonction coût est l'existence de plusieurs minima locaux.
Un **minimum local**, $\vec x^\ast\in A$, est tel que pour une région proche de $\vec x^\ast$, on a que $f(\vec x)\geq f(\vec x^\ast)$.
Un exemple d'une telle fonction, est une fonction de Ackley. En une dimension, elle est de la forme (voir la @fig:ackley)
$$
f(x)=-20e^{-0.2*\sqrt{0.5x^2}}-e^{0.5(\cos(2\pi x))}+e+20.
$$
![La fonction d'Ackley en une dimension. Il est particulièrement compliqué de trouver le minimum global en raison de l'existence d'une multitude de minima locaux.](figs/ackley.svg){#fig:ackley width=70%}
On constate la présence d'un grand nombre de minima locaux qui rendent la recherche du minimum global (se trouvant en $x=0$) particulièrement compliqué à déterminer.
L'optimisation continue est très communément utilisée en apprentissage automatique (machine learning), en particulier pour
optimiser les poids des réseaux de neurones.
## Optimisation continue
Dans cette section, nous allons considérer des problèmes purement continus.
Nous allons dans un premier temps considérer une fonction opbjectif, $f$,
$$
f:D\rightarrow\real,\quad D\subseteq \real,
$$
dont nous allons chercher le minimum (pour autant qu'il existe). Nous allons supposer que
$f$ est une fonction continue et dérivable.
### Minimum local/global
Comme vous le savez, le minimum (ou le maximum) d'une fonction, se situe à un endroit où sa dérivée est nulle.
On recherche donc, $x$, tel que
$$
f'(x)=0.
$$
Mais cette contrainte sur $f'(x)$ n'est pas suffisante pour garantir de trouver un minimum.
En effet, si $f'(x)=0$, peut également vouloir dire qu'on se trouve sur un point d'inflexion
ou sur un maximum.
On peut assez facilement, discriminer ces deux cas, en considérant la deuxième dérivée de $f$.
En effet, nous avons à faire à un minimum seulement si
$$
f''(x)>0.
$$
Les cas où $f''(x)=0$ est un point d'inflexion et $f''(x)<0$ est un maximum.
Un autre problème beaucoup plus compliqué à résoudre est de déterminer un minimum **global**.
En effet, comme pour la fonction de Ackley (voir la @fig:ackley), une fonction peut posséder un grand nombre de minimam **locaux** (où
$f'(x)=0$ et $f''(x)>0$) mais qui n'est pas un mimumum global.
Mathématiquement un *minimum local* se définit comme $x^\ast$ tel qu'il existe $\delta>0$ et que $f(x^\ast)\leq f(x)$, pour
$x\in[x^\ast-\delta,x^\ast+delta]$. Un *minimum global* est un $x^\ast$ tel que $\forall x\in D$, $f(x^\ast)\leq f(x)$.
En fait, il n'existe pas de méthode pour déterminer un minimum global, pour n'importe quelle fonction.
Nous somme assurés de le trouver, uniquement si $f$ est une fonction convexe partout ($f''(x)>0 \ \forall x$).
## Algorithme de recherche d'un zéro d'une fonction
Comme nous venons de le voir, lors de la recherche d'un minimum, il est nécessaire de trouver le point $x^\ast$
où $f'(x^\ast)=0$. Le problème est donc de déterminer les zéros de la fonction $f'(x)$. Pour avoir un maximum de généralité,
nous allons considérer une fonction $g(x)$ et chercher ses zéros, soit
$$
\{x\in\real|g(x)=0\}.
$$
Dans des cas simples (des fonctions polynomiales de degré 2 ou 3, ou des fonctions inversibles) on peut trouver
analytiquement les zéros. En revanche, pour des fonctions plus complexes, ou "implicites" (on ne peut pas mettre
l'équation $g(x)=0$ sous la forme $x=...$) la détermination des zéros est beaucoup plus difficile et nécessite l'utilisation
de **méthodes itératives**. Nous allons en voir quelques unes.
### Méthode de la bissection
![Illustration de la méthode de la bissection. Source: Wikipedia
<https://bit.ly/2RcljBW>.](figs/Bisection_method.svg){#fig:bissection_method width=50%}
Afin de déterminer le zéro d'une fonction, une des méthodes les plus simple est la méthode de la bissection.
Il s'agit de choisir deux points, $a_1$ et $b_1$, $b_1>a_1$, tels que le signe de $g(a_1)$ et $g(b_1)$ est différent.
Si cela est le cas, nous aommes assurés de l'existence d'au moins un zéro si la fonction $g(x)$ est continue
(en vertu du théorème de la valeur intermédiaire). Ensuite, nous allons calculer la valeur se situant "au milieu"
entre $a_1$ et $b_1$
$$
c_1=\frac{b_1+a_1}{2}.
$$
Puis, nous évaluons $g(c_1)$ et si ce n'est pas un zéro, étudions son signe. Si le signe $g(c_1)$ est différent de celui de $g(a_1)$, nous remplaçons
$b_1$ par $c_1$ et recommençons. Si le signe de $g(c_1)$ est différent de celui de $g(b_1)$, nous remplaçons $a_1$ par $c_1$.
Nous itérons cette méthode jusqu'à ce que nous ayons atteint une valeur "siffisamment proche" (nous vons une précision acceptable pour nous)
de zéro. Une façon d'exprimer "proche" est de considérer la taille de l'intervalle $b_1-a_1$ et de le comparer avec une précision $\varepsilon>0$ que nous
aurons choisie
$$
b_1-a_1<\varepsilon.
$$
Au pire des cas, cette méthode nous rapproche de $(b_1+a_1)/2$ du zéro à chaque itération. Après $n$ itération, nous somme donc à une
distance maximale du zéro de $(b_1+a_1)/2^n$. On dit que cette méthode est d'ordre $1$ (on divise l'intervalle de recherche par 2 et la précision par 2
à chaque itération).
---
Exercice (Racice de polynôme) +.#
Déterminer la racine du polynôme $x^4+x^3+x^2-1$ avec $a_1=0.5$ et $b_1=1$ (faire au maximum 6 itérations).
---
### Méthode de la fausse position (*regula falsi*)
![Illustration de la méthode de la fausse position. Source: Wikipedia
<https://bit.ly/2FeHdhm>.](figs/False_position_method.svg){#fig:false_position_method width=50%}
Une méthode un peu plus avancée est la méthode de la fausse position (voir la @fig:false_position_method). Dans cette méthode qui est relativement similaire à celle de la bissection,
mais au lieu de diviser l'intervalle en deux parts égales à chaque itération on va choisir les point $c$, comme étant le point
où la droite reliant $g(a_1)$ et $g(b_1)$ coupe l'axe horizontal (le zéro de la droite entre $g(a_1)$ et $g(b_1)$). Le reste de l'algorithme reste exactement le même.
On choisit deux points, $a_1$ et $b_1$, où le signe de $f$ est différent, puis ont construit la droite passant par $g(a_1)$ et $g(b_1)$
$$
y=\frac{g(b_1)-g(a_1)}{b_1-a_1}(x-a_1) + g(a_1).
$$
On cherche le point, $c$, où $y(c)=0$
$$
\frac{g(b_1)-g(a_1)}{b_1-a_1}(c-a_1) + g(a_1)=0.
$$
Cette équation s'inverse aisément et on obtient
$$
c_1=a_1-\frac{b_1-a_1}{g(b_1)-g(a_1)}g(a_1).
$$
Puis, comme pour la méthode de la bissection, on compare les signes de $g(c_1)$ avec $g(a_1)$ et $g(b_1)$ et on remplace $a_1$ ou $b_1$ par $c_1$
si $g(c_1)$ a un signe différent de $g(b_1)$ ou $g(a_1)$ respectivement.
Il est important de noter que si la fonction est continue, et que $a_1$ et $b_1$ sont choisis tels que $g(a_1)$ et $g(b_1)$ sont de signes opposés,
alors cette méthode convergera **toujours**.
La méthode de la fausse position est plus efficace que la méthode de la bissection, elle est superlinéaire (d'ordre plus grand que un).
---
Exercice +.#
Déterminer le zéro positif de la fonction
$$
x^2-25=0,
$$
à l'aide de la méthode de la fausse position.
---
### Méthode de la sécante
![Illustration de la méthode de la sécante. En partant des points $x_0$ et $x_1$, on s'approche du zéro
en calculant le point $x_2$. Source: Wikipedia
<https://bit.ly/2FcAXpA>.](figs/Secant_method.svg){#fig:secant_method width=50%}
La méthode de la sécante (voir la @fig:secant_method) est très similaire à la méthode de la fausse position. La seule différence se situe dans la dernière étape de l'algorithme.
Plutôt que choisir de remplacer $a_1$ ou $b_1$ par $c_1$, on remplace toujours la dernière valeur calculée.
Ainsi après avoir choisi $a < b$, avec $g(a)$ et $g(b)$ avec des signes différents, on calcule
une suite de $x_i$, avec $x_0=a$, $x_1=b$, tels que
$$
x_{i+1}=x_{i-1}-\frac{x_i-x_{i-1}}{g(x_i)-g(x_{i-1})}g(x_{i-1}), \quad i\geq 2.
$$
La méthode de la sécante ne garantit pas la convergence, contrairement à la méthode de la bissection et de la fausse position.
En revanche elle est plus efficace, lorsque qu'elle converge, que ces deux méthodes.
---
Exercice +.#
Déterminer le zéro positif de la fonction
$$
x^2-25=0,
$$
à l'aide de la méthode de la sécante.
---
### Méthode de Newton (ou *Newton-Raphson")
La méthode de Newton est également une méthode itérative, qui nécessite que la fonction $g(x)$ soit non seulement continue mais également dérivable.
Revenons sur la méthode de la sécante. Il s'agissait de choisir deux points, $a < b$, et de déterminer la droite, $y(x)$, passant par $g(a)$ et $g(b)$,
\begin{equation*}
y=\frac{g(b)-g(a)}{b-a}(x-a) + g(a).
\end{equation*}
Il se trouve que $g(b)-g(a)/(b-a)$ n'est autre qu'une approximation avec une formule de différences finies
de la dérivée de $g$ et $a$, $g'(a)$. Si la fonction $f$ est dérivable, on peut simplement remplacer ce terme par $g'(a)$
et on obtient
$$
y=g'(a)(x-a) + g(a).
$$
Puis on détermine $c$, tel que $y(c)=0$
$$
0=g'(a)(c-a) + g(a),
$$
et on obtient
$$
c=a - \frac{g(a)}{g'(a)}.
$$
On peut donc généraliser l'algorithme. En partant d'un point $x_0=a$, on construit la suite
$$
x_{i+1}=x_n-\frac{g(x_i)}{g'(x_i)}, \ i\geq 0.
$$
On s'arrête lorsque le zéro est déterminé avec une précision suffisante, ou que la variation entre deux itérations successives est assez petite. Ce qui revient à choisir un $\varepsilon>0$, tel que
$$
|g(x_n)| < \varepsilon,\quad |x_n-x_{n-1}| < \varepsilon.
$$
Lorsque qu'elle converge la mtéhode de Newton est la plus efficace de toutes celles que nous avons vues. On dit qu'elle est d'ordre $2$.
En revanche les contraintes pour sa convergence sont plus strictes que pour les méthodes vues précédemment.
---
Remarques (non-convergence ou convergence lente) +.#
Il y a un certain nombre de cas où la méthode de Newton ne converge pas.
1. S'il existe un $n$ tel que $g'(x_n)=0$ alors la suite diverge.
2. La suite peut entrer dans un cycle.
3. La dérivée est mal définie proche du zéro (ou sur le zéro).
4. Elle peut converger très lentement si la dérivée de la fonction est nulle sur le zéro.
5. A chaque point de départ ne correspond qu'un zéro. Si la fonction possède plusieurs zéros, il n'y a pas moyen de le savoir avec un seul point de départ. Il faut alors en essayer plusieurs.
---
---
Exercice +.#
Déterminer le zéro de la fonction
$$
x^2-25=0,
$$
à l'aide de la méthode de Newton.
---
### Résumé
A l'aide des méthodes vues ci-dessus, on peut déterminer un zéro d'une fonction (s'il existe).
Ces méthodes sont également utilisables pour calculer le minimum d'une fonction comme nous l'avons discuté plus haut.
Il suffit de remplacer $g(x)$ par $f'(x)$ et le tour est joué.
---
Exercice +.#
Écrire l'algorithme de Newton pour le cas de la minimisation d'une fonction $f(x)$ quelconque, mais continuement dérivable 2 fois.
---
Équations différentielles ordinaires
......
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 -->
<!-- CreationDate: Mon Jun 19 22:27:10 2006 -->
<!-- Magnification: 1.050 -->
<svg
xmlns:ns1="http://www.iki.fi/pav/software/textext/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="3.9in"
height="3.5in"
viewBox="456 270 4681 4158"
version="1.1"
id="svg7584"
sodipodi:docname="False_position_method.svg"
inkscape:version="0.92.2 2405546, 2018-03-11">
<metadata
id="metadata7590">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs7588" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview7586"
showgrid="false"
inkscape:zoom="1.4047619"
inkscape:cx="247.93156"
inkscape:cy="118.28909"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg7584" />
<polyline
id="polyline7526"
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter"
points="527,2362 5125,2362 " />
<polyline
id="polyline7528"
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter"
points="1417,283 1417,4416 " />
<polyline
id="polyline7530"
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:50, 50"
points="4708,486 4708,2369 " />
<polyline
id="polyline7532"
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:50, 50"
points="3298,1195 3298,2353 " />
<polyline
id="polyline7534"
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:50, 50"
points="1881,4267 1881,2362 " />
<polyline
id="polyline7536"
style="fill:none;stroke:#0000ff;stroke-width:16;stroke-linecap:butt;stroke-linejoin:miter"
points="1889,4251 4719,474 " />
<polyline
id="polyline7538"
style="fill:none;stroke:#0000ff;stroke-width:16;stroke-linecap:butt;stroke-linejoin:miter"
points="1874,4259 3307,1196 " />
<circle
id="circle7540"
style="fill:#ff0000;stroke:#000000;stroke-width:0"
r="43"
cy="4259"
cx="1881" />
<circle
id="circle7542"
style="fill:#ff0000;stroke:#000000;stroke-width:0"
r="43"
cy="479"
cx="4716" />
<circle
id="circle7544"
style="fill:#ff0000;stroke:#000000;stroke-width:0"
r="43"
cy="1196"
cx="3307" />
<circle
id="circle7546"
style="fill:#0000ff;stroke:#000000;stroke-width:0"
r="43"
cy="2369"
cx="3291" />
<circle
id="circle7548"
style="fill:#0000ff;stroke:#000000;stroke-width:0"
r="43"
cy="2362"
cx="2760" />
<polyline
id="polyline7550"
style="fill:none;stroke:#ff0000;stroke-width:16;stroke-linecap:butt;stroke-linejoin:bevel"
points="5070,393 5068,393 5063,395 5054,397 5040,401 5019,405 4994,411 4961,418 4923,428 4880,437 4834,449 4784,460 4732,473 4679,487 4626,499 4574,512 4522,525 4472,538 4424,551 4379,562 4334,574 4293,585 4254,596 4217,606 4181,617 4148,627 4115,637 4085,647 4054,658 4025,667 3996,678 3968,688 3939,700 3909,711 3880,723 3850,735 3821,749 3792,763 3762,777 3733,793 3704,810 3675,827 3646,846 3616,866 3588,886 3560,908 3532,931 3505,954 3478,979 3453,1005 3426,1032 3402,1060 3379,1088 3356,1118 3334,1149 3313,1180 3293,1212 3274,1246 3255,1280 3237,1315 3220,1352 3205,1391 3192,1421 3180,1454 3167,1486 3155,1521 3144,1556 3132,1593 3121,1631 3109,1671 3098,1711 3087,1753 3076,1795 3065,1839 3055,1884 3043,1929 3033,1975 3022,2023 3012,2070 3001,2118 2991,2166 2980,2215 2971,2263 2960,2311 2951,2360 2941,2407 2931,2454 2921,2501 2912,2548 2902,2593 2894,2637 2885,2680 2876,2723 2867,2764 2858,2805 2849,2845 2840,2883 2831,2921 2823,2958 2813,2994 2803,3036 2791,3077 2780,3118 2768,3158 2755,3196 2743,3235 2730,3274 2717,3312 2703,3350 2689,3386 2675,3423 2660,3459 2644,3495 2628,3529 2613,3563 2597,3596 2580,3629 2563,3659 2548,3690 2531,3719 2514,3748 2497,3774 2480,3800 2464,3824 2447,3848 2430,3870 2413,3892 2397,3913 2381,3932 2365,3951 2348,3970 2331,3987 2311,4008 2290,4028 2268,4048 2246,4067 2223,4086 2200,4103 2175,4121 2150,4139 2123,4155 2096,4171 2068,4186 2039,4201 2010,4215 1981,4227 1950,4239 1919,4250 1888,4260 1857,4269 1825,4278 1794,4285 1762,4291 1731,4297 1698,4301 1667,4305 1634,4308 1602,4310 1574,4312 1546,4313 1518,4313 1488,4313 1458,4313 1425,4312 1392,4310 1356,4308 1318,4306 1278,4303 1236,4299 1192,4295 1145,4289 1097,4284 1045,4279 993,4272 938,4266 883,4259 829,4251 775,4245 724,4238 676,4232 632,4225 593,4220 559,4216 532,4212 511,4208 496,4206 487,4205 481,4204 479,4204 " />
<text
style="font-style:italic;font-weight:normal;font-size:177px;font-family:Helvetica;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7554"
font-size="177"
font-weight="normal"
font-style="italic"
y="2270"
x="2503"
xml:space="preserve">a</text>
<text
style="font-style:normal;font-weight:normal;font-size:114px;font-family:Times;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7556"
font-size="114"
font-weight="normal"
font-style="normal"
y="2322"
x="2653"
xml:space="preserve">2</text>
<text
style="font-style:italic;font-weight:normal;font-size:177px;font-family:Helvetica;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7558"
font-size="177"
font-weight="normal"
font-style="italic"
y="2578"
x="4629"
xml:space="preserve">b</text>
<text
style="font-style:normal;font-weight:normal;font-size:114px;font-family:Times;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7560"
font-size="114"
font-weight="normal"
font-style="normal"
y="2645"
x="4779"
xml:space="preserve">0</text>
<text
style="font-style:normal;font-weight:normal;font-size:177px;font-family:Helvetica;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7562"
font-size="177"
font-weight="normal"
font-style="normal"
y="2554"
x="2157"
xml:space="preserve">=</text>
<text
style="font-style:normal;font-weight:normal;font-size:114px;font-family:Times;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7564"
font-size="114"
font-weight="normal"
font-style="normal"
y="2605"
x="2061"
xml:space="preserve">0</text>
<text
style="font-style:normal;font-weight:normal;font-size:114px;font-family:Times;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7566"
font-size="114"
font-weight="normal"
font-style="normal"
y="2605"
x="2479"
xml:space="preserve">1</text>
<text
style="font-style:normal;font-weight:normal;font-size:177px;font-family:Helvetica;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7568"
font-size="177"
font-weight="normal"
font-style="normal"
y="2601"
x="3504"
xml:space="preserve">=</text>
<text
style="font-style:normal;font-weight:normal;font-size:114px;font-family:Times;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7570"
font-size="114"
font-weight="normal"
font-style="normal"
y="2692"
x="3408"
xml:space="preserve">1</text>
<text
style="font-style:italic;font-weight:normal;font-size:177px;font-family:Helvetica;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7572"
font-size="177"
font-weight="normal"
font-style="italic"
y="2554"
x="2330"
xml:space="preserve">a</text>
<text
style="font-style:italic;font-weight:normal;font-size:177px;font-family:Helvetica;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7574"
font-size="177"
font-weight="normal"
font-style="italic"
y="2554"
x="1912"
xml:space="preserve">a</text>
<text
style="font-style:italic;font-weight:normal;font-size:177px;font-family:Helvetica;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7576"
font-size="177"
font-weight="normal"
font-style="italic"
y="2624"
x="3259"
xml:space="preserve">b</text>
<text
style="font-style:italic;font-weight:normal;font-size:177px;font-family:Helvetica;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7578"
font-size="177"
font-weight="normal"
font-style="italic"
y="2624"
x="3669"
xml:space="preserve">b</text>
<text
style="font-style:normal;font-weight:normal;font-size:114px;font-family:Times;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text7580"
font-size="114"
font-weight="normal"
font-style="normal"
y="2692"
x="3818"
xml:space="preserve">2</text>
<g
transform="matrix(25.044472,0,0,25.044472,-3227.4081,727.76015)"
ns1:textextver="0.8"
ns1:converter="pdf2svg"
ns1:text="$g(x)$"
ns1:preamble="/home/malaspor/.config/inkscape/extensions/default_packages.tex"
ns1:scale="1.0"
id="g5970">
<g
id="g5968">
<g
style="fill:#000000;fill-opacity:1"
id="g5954">
<path
inkscape:connector-curvature="0"
style="stroke:none"
d="M 4.6875,-3.765625 C 4.703125,-3.8125 4.71875,-3.875 4.71875,-3.9375 c 0,-0.171875 -0.109375,-0.265625 -0.28125,-0.265625 -0.09375,0 -0.375,0.0625 -0.40625,0.421875 -0.1875,-0.359375 -0.53125,-0.625 -0.9375,-0.625 -1.125,0 -2.359375,1.390625 -2.359375,2.828125 0,0.984375 0.59375,1.578125 1.3125,1.578125 0.59375,0 1.0625,-0.46875 1.15625,-0.578125 L 3.21875,-0.5625 C 3.015625,0.3125 2.890625,0.734375 2.890625,0.75 2.84375,0.84375 2.515625,1.828125 1.453125,1.828125 1.265625,1.828125 0.9375,1.8125 0.65625,1.71875 0.953125,1.640625 1.0625,1.375 1.0625,1.203125 c 0,-0.15625 -0.109375,-0.34375 -0.375,-0.34375 -0.21875,0 -0.53125,0.171875 -0.53125,0.578125 0,0.40625 0.359375,0.609375 1.3125,0.609375 1.25,0 1.96875,-0.78125 2.125,-1.375 z M 3.40625,-1.28125 C 3.34375,-1.015625 3.109375,-0.765625 2.890625,-0.578125 2.6875,-0.40625 2.375,-0.21875 2.078125,-0.21875 c -0.5,0 -0.640625,-0.515625 -0.640625,-0.921875 0,-0.46875 0.28125,-1.65625 0.5625,-2.15625 C 2.265625,-3.78125 2.6875,-4.1875 3.109375,-4.1875 c 0.65625,0 0.796875,0.8125 0.796875,0.859375 0,0.046875 -0.015625,0.109375 -0.03125,0.140625 z m 0,0"
transform="translate(148.712,134.765)"
id="path5952" />
</g>
<g
style="fill:#000000;fill-opacity:1"
id="g5958">
<path
inkscape:connector-curvature="0"
style="stroke:none"
d="m 3.296875,2.390625 c 0,-0.03125 0,-0.046875 -0.171875,-0.21875 C 1.890625,0.921875 1.5625,-0.96875 1.5625,-2.5 c 0,-1.734375 0.375,-3.46875 1.609375,-4.703125 0.125,-0.125 0.125,-0.140625 0.125,-0.171875 0,-0.078125 -0.03125,-0.109375 -0.09375,-0.109375 -0.109375,0 -1,0.6875 -1.59375,1.953125 -0.5,1.09375 -0.625,2.203125 -0.625,3.03125 0,0.78125 0.109375,1.984375 0.65625,3.125 C 2.25,1.84375 3.09375,2.5 3.203125,2.5 c 0.0625,0 0.09375,-0.03125 0.09375,-0.109375 z m 0,0"
transform="translate(153.822,134.765)"
id="path5956" />
</g>
<g
style="fill:#000000;fill-opacity:1"
id="g5962">
<path
inkscape:connector-curvature="0"
style="stroke:none"
d="M 3.328125,-3.015625 C 3.390625,-3.265625 3.625,-4.1875 4.3125,-4.1875 c 0.046875,0 0.296875,0 0.5,0.125 C 4.53125,-4 4.34375,-3.765625 4.34375,-3.515625 c 0,0.15625 0.109375,0.34375 0.375,0.34375 0.21875,0 0.53125,-0.171875 0.53125,-0.578125 0,-0.515625 -0.578125,-0.65625 -0.921875,-0.65625 -0.578125,0 -0.921875,0.53125 -1.046875,0.75 -0.25,-0.65625 -0.78125,-0.75 -1.078125,-0.75 -1.03125,0 -1.609375,1.28125 -1.609375,1.53125 0,0.109375 0.109375,0.109375 0.125,0.109375 0.078125,0 0.109375,-0.03125 0.125,-0.109375 0.34375,-1.0625 1,-1.3125 1.34375,-1.3125 0.1875,0 0.53125,0.09375 0.53125,0.671875 0,0.3125 -0.171875,0.96875 -0.53125,2.375 -0.15625,0.609375 -0.515625,1.03125 -0.953125,1.03125 -0.0625,0 -0.28125,0 -0.5,-0.125 0.25,-0.0625 0.46875,-0.265625 0.46875,-0.546875 0,-0.265625 -0.21875,-0.34375 -0.359375,-0.34375 -0.3125,0 -0.546875,0.25 -0.546875,0.578125 0,0.453125 0.484375,0.65625 0.921875,0.65625 0.671875,0 1.03125,-0.703125 1.046875,-0.75 0.125,0.359375 0.484375,0.75 1.078125,0.75 1.03125,0 1.59375,-1.28125 1.59375,-1.53125 0,-0.109375 -0.078125,-0.109375 -0.109375,-0.109375 -0.09375,0 -0.109375,0.046875 -0.140625,0.109375 -0.328125,1.078125 -1,1.3125 -1.3125,1.3125 -0.390625,0 -0.546875,-0.3125 -0.546875,-0.65625 0,-0.21875 0.046875,-0.4375 0.15625,-0.875 z m 0,0"
transform="translate(157.696,134.765)"
id="path5960" />
</g>
<g
style="fill:#000000;fill-opacity:1"
id="g5966">
<path
inkscape:connector-curvature="0"
style="stroke:none"
d="m 2.875,-2.5 c 0,-0.765625 -0.109375,-1.96875 -0.65625,-3.109375 -0.59375,-1.21875 -1.453125,-1.875 -1.546875,-1.875 -0.0625,0 -0.109375,0.046875 -0.109375,0.109375 0,0.03125 0,0.046875 0.1875,0.234375 0.984375,0.984375 1.546875,2.5625 1.546875,4.640625 0,1.71875 -0.359375,3.46875 -1.59375,4.71875 C 0.5625,2.34375 0.5625,2.359375 0.5625,2.390625 0.5625,2.453125 0.609375,2.5 0.671875,2.5 0.765625,2.5 1.671875,1.8125 2.25,0.546875 2.765625,-0.546875 2.875,-1.65625 2.875,-2.5 Z m 0,0"
transform="translate(163.39,134.765)"
id="path5964" />
</g>
</g>
</g>
</svg>
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 -->
<!-- CreationDate: Mon Jun 19 21:50:42 2006 -->
<!-- Magnification: 1.050 -->
<svg
xmlns:ns1="http://www.iki.fi/pav/software/textext/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="3.9in"
height="3.5in"
viewBox="456 270 4681 4158"
version="1.1"
id="svg48"
sodipodi:docname="Secant_method.svg"
inkscape:version="0.92.2 2405546, 2018-03-11">
<metadata
id="metadata54">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs52" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview50"
showgrid="false"
inkscape:zoom="1.4047619"
inkscape:cx="26.021188"
inkscape:cy="216.45526"
inkscape:window-x="0"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:current-layer="svg48" />
<polyline
id="polyline2"
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter"
points="527,2362 5125,2362 " />
<polyline
id="polyline4"
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter"
points="1417,283 1417,4416 " />
<polyline
id="polyline6"
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:50, 50"
points="4708,486 4708,2369 " />
<polyline
id="polyline8"
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:50, 50"
points="3298,1195 3298,2353 " />
<polyline
id="polyline10"
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:50, 50"
points="1881,4267 1881,2362 " />
<polyline
id="polyline12"
style="fill:none;stroke:#0000ff;stroke-width:16;stroke-linecap:butt;stroke-linejoin:miter"
points="1889,4251 4719,474 " />
<polyline
id="polyline14"
style="fill:none;stroke:#0000ff;stroke-width:16;stroke-linecap:butt;stroke-linejoin:miter"
points="535,2614 4708,479 " />
<circle
id="circle16"
style="fill:#ff0000;stroke:#000000;stroke-width:0"
r="43"
cy="4259"
cx="1881" />
<circle
id="circle18"
style="fill:#ff0000;stroke:#000000;stroke-width:0"
r="43"
cy="479"
cx="4716" />
<circle
id="circle20"
style="fill:#ff0000;stroke:#000000;stroke-width:0"
r="43"
cy="1196"
cx="3307" />
<circle
id="circle22"
style="fill:#0000ff;stroke:#000000;stroke-width:0"
r="43"
cy="2369"
cx="3291" />
<circle
id="circle24"
style="fill:#0000ff;stroke:#000000;stroke-width:0"
r="43"
cy="2369"
cx="1027" />
<polyline
id="polyline26"
style="fill:none;stroke:#ff0000;stroke-width:16;stroke-linecap:butt;stroke-linejoin:bevel"
points="5070,393 5068,393 5063,395 5054,397 5040,401 5019,405 4994,411 4961,418 4923,428 4880,437 4834,449 4784,460 4732,473 4679,487 4626,499 4574,512 4522,525 4472,538 4424,551 4379,562 4334,574 4293,585 4254,596 4217,606 4181,617 4148,627 4115,637 4085,647 4054,658 4025,667 3996,678 3968,688 3939,700 3909,711 3880,723 3850,735 3821,749 3792,763 3762,777 3733,793 3704,810 3675,827 3646,846 3616,866 3588,886 3560,908 3532,931 3505,954 3478,979 3453,1005 3426,1032 3402,1060 3379,1088 3356,1118 3334,1149 3313,1180 3293,1212 3274,1246 3255,1280 3237,1315 3220,1352 3205,1391 3192,1421 3180,1454 3167,1486 3155,1521 3144,1556 3132,1593 3121,1631 3109,1671 3098,1711 3087,1753 3076,1795 3065,1839 3055,1884 3043,1929 3033,1975 3022,2023 3012,2070 3001,2118 2991,2166 2980,2215 2971,2263 2960,2311 2951,2360 2941,2407 2931,2454 2921,2501 2912,2548 2902,2593 2894,2637 2885,2680 2876,2723 2867,2764 2858,2805 2849,2845 2840,2883 2831,2921 2823,2958 2813,2994 2803,3036 2791,3077 2780,3118 2768,3158 2755,3196 2743,3235 2730,3274 2717,3312 2703,3350 2689,3386 2675,3423 2660,3459 2644,3495 2628,3529 2613,3563 2597,3596 2580,3629 2563,3659 2548,3690 2531,3719 2514,3748 2497,3774 2480,3800 2464,3824 2447,3848 2430,3870 2413,3892 2397,3913 2381,3932 2365,3951 2348,3970 2331,3987 2311,4008 2290,4028 2268,4048 2246,4067 2223,4086 2200,4103 2175,4121 2150,4139 2123,4155 2096,4171 2068,4186 2039,4201 2010,4215 1981,4227 1950,4239 1919,4250 1888,4260 1857,4269 1825,4278 1794,4285 1762,4291 1731,4297 1698,4301 1667,4305 1634,4308 1602,4310 1574,4312 1546,4313 1518,4313 1488,4313 1458,4313 1425,4312 1392,4310 1356,4308 1318,4306 1278,4303 1236,4299 1192,4295 1145,4289 1097,4284 1045,4279 993,4272 938,4266 883,4259 829,4251 775,4245 724,4238 676,4232 632,4225 593,4220 559,4216 532,4212 511,4208 496,4206 487,4205 481,4204 479,4204 " />
<text
style="font-style:italic;font-weight:normal;font-size:177px;font-family:Helvetica;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text30"
font-size="177"
font-weight="normal"
font-style="italic"
y="2578"
x="1007"
xml:space="preserve">x</text>
<text
style="font-style:italic;font-weight:normal;font-size:177px;font-family:Helvetica;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text32"
font-size="177"
font-weight="normal"
font-style="italic"
y="2554"
x="1912"
xml:space="preserve">x</text>
<text
style="font-style:normal;font-weight:normal;font-size:114px;font-family:Times;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text34"
font-size="114"
font-weight="normal"
font-style="normal"
y="2605"
x="2061"
xml:space="preserve">0</text>
<text
style="font-style:italic;font-weight:normal;font-size:177px;font-family:Helvetica;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text36"
font-size="177"
font-weight="normal"
font-style="italic"
y="2570"
x="3259"
xml:space="preserve">x</text>
<text
style="font-style:italic;font-weight:normal;font-size:177px;font-family:Helvetica;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text38"
font-size="177"
font-weight="normal"
font-style="italic"
y="2546"
x="4629"
xml:space="preserve">x</text>
<text
style="font-style:normal;font-weight:normal;font-size:114px;font-family:Times;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text40"
font-size="114"
font-weight="normal"
font-style="normal"
y="2598"
x="4779"
xml:space="preserve">1</text>
<text
style="font-style:normal;font-weight:normal;font-size:114px;font-family:Times;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text42"
font-size="114"
font-weight="normal"
font-style="normal"
y="2621"
x="3408"
xml:space="preserve">2</text>
<text
style="font-style:normal;font-weight:normal;font-size:114px;font-family:Times;text-anchor:start;fill:#000000;stroke:#000000;stroke-width:0.025in"
id="text44"
font-size="114"
font-weight="normal"
font-style="normal"
y="2629"
x="1156"
xml:space="preserve">3</text>
<g
transform="matrix(25.044472,0,0,25.044472,-3236.517,687.28543)"
ns1:textextver="0.8"
ns1:converter="pdf2svg"
ns1:text="$g(x)$"
ns1:preamble="/home/malaspor/.config/inkscape/extensions/default_packages.tex"
ns1:scale="1.0"
id="g5970">
<g
id="g5968">
<g
style="fill:#000000;fill-opacity:1"
id="g5954">
<path
inkscape:connector-curvature="0"
style="stroke:none"
d="M 4.6875,-3.765625 C 4.703125,-3.8125 4.71875,-3.875 4.71875,-3.9375 c 0,-0.171875 -0.109375,-0.265625 -0.28125,-0.265625 -0.09375,0 -0.375,0.0625 -0.40625,0.421875 -0.1875,-0.359375 -0.53125,-0.625 -0.9375,-0.625 -1.125,0 -2.359375,1.390625 -2.359375,2.828125 0,0.984375 0.59375,1.578125 1.3125,1.578125 0.59375,0 1.0625,-0.46875 1.15625,-0.578125 L 3.21875,-0.5625 C 3.015625,0.3125 2.890625,0.734375 2.890625,0.75 2.84375,0.84375 2.515625,1.828125 1.453125,1.828125 1.265625,1.828125 0.9375,1.8125 0.65625,1.71875 0.953125,1.640625 1.0625,1.375 1.0625,1.203125 c 0,-0.15625 -0.109375,-0.34375 -0.375,-0.34375 -0.21875,0 -0.53125,0.171875 -0.53125,0.578125 0,0.40625 0.359375,0.609375 1.3125,0.609375 1.25,0 1.96875,-0.78125 2.125,-1.375 z M 3.40625,-1.28125 C 3.34375,-1.015625 3.109375,-0.765625 2.890625,-0.578125 2.6875,-0.40625 2.375,-0.21875 2.078125,-0.21875 c -0.5,0 -0.640625,-0.515625 -0.640625,-0.921875 0,-0.46875 0.28125,-1.65625 0.5625,-2.15625 C 2.265625,-3.78125 2.6875,-4.1875 3.109375,-4.1875 c 0.65625,0 0.796875,0.8125 0.796875,0.859375 0,0.046875 -0.015625,0.109375 -0.03125,0.140625 z m 0,0"
transform="translate(148.712,134.765)"
id="path5952" />
</g>
<g
style="fill:#000000;fill-opacity:1"
id="g5958">
<path
inkscape:connector-curvature="0"
style="stroke:none"
d="m 3.296875,2.390625 c 0,-0.03125 0,-0.046875 -0.171875,-0.21875 C 1.890625,0.921875 1.5625,-0.96875 1.5625,-2.5 c 0,-1.734375 0.375,-3.46875 1.609375,-4.703125 0.125,-0.125 0.125,-0.140625 0.125,-0.171875 0,-0.078125 -0.03125,-0.109375 -0.09375,-0.109375 -0.109375,0 -1,0.6875 -1.59375,1.953125 -0.5,1.09375 -0.625,2.203125 -0.625,3.03125 0,0.78125 0.109375,1.984375 0.65625,3.125 C 2.25,1.84375 3.09375,2.5 3.203125,2.5 c 0.0625,0 0.09375,-0.03125 0.09375,-0.109375 z m 0,0"
transform="translate(153.822,134.765)"
id="path5956" />
</g>
<g
style="fill:#000000;fill-opacity:1"
id="g5962">
<path
inkscape:connector-curvature="0"
style="stroke:none"
d="M 3.328125,-3.015625 C 3.390625,-3.265625 3.625,-4.1875 4.3125,-4.1875 c 0.046875,0 0.296875,0 0.5,0.125 C 4.53125,-4 4.34375,-3.765625 4.34375,-3.515625 c 0,0.15625 0.109375,0.34375 0.375,0.34375 0.21875,0 0.53125,-0.171875 0.53125,-0.578125 0,-0.515625 -0.578125,-0.65625 -0.921875,-0.65625 -0.578125,0 -0.921875,0.53125 -1.046875,0.75 -0.25,-0.65625 -0.78125,-0.75 -1.078125,-0.75 -1.03125,0 -1.609375,1.28125 -1.609375,1.53125 0,0.109375 0.109375,0.109375 0.125,0.109375 0.078125,0 0.109375,-0.03125 0.125,-0.109375 0.34375,-1.0625 1,-1.3125 1.34375,-1.3125 0.1875,0 0.53125,0.09375 0.53125,0.671875 0,0.3125 -0.171875,0.96875 -0.53125,2.375 -0.15625,0.609375 -0.515625,1.03125 -0.953125,1.03125 -0.0625,0 -0.28125,0 -0.5,-0.125 0.25,-0.0625 0.46875,-0.265625 0.46875,-0.546875 0,-0.265625 -0.21875,-0.34375 -0.359375,-0.34375 -0.3125,0 -0.546875,0.25 -0.546875,0.578125 0,0.453125 0.484375,0.65625 0.921875,0.65625 0.671875,0 1.03125,-0.703125 1.046875,-0.75 0.125,0.359375 0.484375,0.75 1.078125,0.75 1.03125,0 1.59375,-1.28125 1.59375,-1.53125 0,-0.109375 -0.078125,-0.109375 -0.109375,-0.109375 -0.09375,0 -0.109375,0.046875 -0.140625,0.109375 -0.328125,1.078125 -1,1.3125 -1.3125,1.3125 -0.390625,0 -0.546875,-0.3125 -0.546875,-0.65625 0,-0.21875 0.046875,-0.4375 0.15625,-0.875 z m 0,0"
transform="translate(157.696,134.765)"
id="path5960" />
</g>
<g
style="fill:#000000;fill-opacity:1"
id="g5966">
<path
inkscape:connector-curvature="0"
style="stroke:none"
d="m 2.875,-2.5 c 0,-0.765625 -0.109375,-1.96875 -0.65625,-3.109375 -0.59375,-1.21875 -1.453125,-1.875 -1.546875,-1.875 -0.0625,0 -0.109375,0.046875 -0.109375,0.109375 0,0.03125 0,0.046875 0.1875,0.234375 0.984375,0.984375 1.546875,2.5625 1.546875,4.640625 0,1.71875 -0.359375,3.46875 -1.59375,4.71875 C 0.5625,2.34375 0.5625,2.359375 0.5625,2.390625 0.5625,2.453125 0.609375,2.5 0.671875,2.5 0.765625,2.5 1.671875,1.8125 2.25,0.546875 2.765625,-0.546875 2.875,-1.65625 2.875,-2.5 Z m 0,0"
transform="translate(163.39,134.765)"
id="path5964" />
</g>
</g>
</g>
</svg>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment