"L'objectif est d'utiliser un code générique pour l'algorithme de Gauss-Newton et pour l'algorithme de Newton pour la résolution du problème aux moindres carrés.\n",
" \n",
"### On prendra comme critères d'arrêt\n",
" \n",
"On note $\\beta^{(0)}$ le point initial et $\\beta^{(k)}$ l'itéré courant. On pose aussi `Tol_rel` et `Tol_abs`$=\\sqrt{\\varepsilon_{mach}}$, les tolérances relatives et absolue pour les tests d'arrêt.\n",
"\n",
"($\\varepsilon_{mach}=$`numpy.finfo(float).eps` en python).\n",
"- Ecrire en respectant les interfaces d'appel les fonctions qui codent respectivement les fonctions residu $r(\\beta)$ et jacobienne $J_r(\\beta)$ dans ce cadre."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def residu_C14(beta):\n",
" \"\"\"\n",
" Fonction residu pour le probleme Carbone 14.\n",
"* Dans l'algoritme de Newton, de quelles fonctions dépendant du problème a-t-on besoin?\n",
" \n",
"* Donner les avantages et inconvénients éventuels de la méthode de Gauss-Newton par rapport à l'algorithme de Newton. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### De la même façon que pour Gauss-Newton écrivez une fonction qui code l'algorithme de Newton\n",
"Vous testerez votre fonction sur le même problème `Carbonne 14`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.10"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
%% Cell type:markdown id: tags:
<center>
<h1> Projet 2 : Problèmes aux moindres carrés </h1>
<h1> Année 2020-2021 - IENM2 </h1>
<h1> Nom : </h1>
<h1> Prénom: </h1>
<h1> Date de remise : vendredi 22 janvier à 18h00? </h1>
</center>
%% Cell type:markdown id: tags:
## Algorithme de Gauss-Newton - Objectifs
%% Cell type:markdown id: tags:
<divstyle="background:MistyRose">
<br>
L'objectif est de programmer les méthodes de Gauss-Newton (voir page 58 du polycopié) pour un problème aux moindres carrés
$$
({\cal P})\left\{
\begin{array}{l}
Min\;\;f(\beta)=(1/2)||r(\beta)||^2 \\
\beta \in \mathbb{R}^p
\end{array}
\right.
$$
où $r$ est la fonction résidus
$$
\begin{array}{cc}
r:\mathbb{R}^p & \rightarrow & {\mathbb{R}^n} \\
{\beta} & \rightarrow & r(\beta).
\end{array}
$$
L'objectif est d'utiliser un code générique pour l'algorithme de Gauss-Newton et pour l'algorithme de Newton pour la résolution du problème aux moindres carrés.
### On prendra comme critères d'arrêt
On note $\beta^{(0)}$ le point initial et $\beta^{(k)}$ l'itéré courant. On pose aussi `Tol_rel` et `Tol_abs`$=\sqrt{\varepsilon_{mach}}$, les tolérances relatives et absolue pour les tests d'arrêt.
($\varepsilon_{mach}=$`numpy.finfo(float).eps` en python).
# Donnees experimentales concernant les ages et radioactivites declarees
# comme variables globales.
#
globalTi,Ai
Ti=np.array([500,1000,2000,3000,4000,5000,6300])
Ai=np.array([14.5,13.5,12.0,10.8,9.9,8.9,8.0])
```
%% Cell type:markdown id: tags:
<divstyle="background:LightGrey">
- Ecrire en respectant les interfaces d'appel les fonctions qui codent respectivement les fonctions residu $r(\beta)$ et jacobienne $J_r(\beta)$ dans ce cadre.