Considérons un modèle comprenant `2` variables d'état libres `x,y` et une variable d'état `f` déterminée par `x,y`. Cela se note comme suit :
`AA(x,y) "∈" RR^2,`
`f"←"(x,y)`
La fonction `f` constitue une application vectorielle de `RR^2->RR`. On définie un vecteur simplement comme une liste. La liste est ainsi utilisée comme constructeur de vecteur. Par exemple l'expression `(x,y)` désigne un vecteur à deux composantes. Une variable vectorielle `vec u` peut être définie avec le neurone suivant :
`vecu"←"(x,y)`
`vecu=(x,y)`
Il découle de cette définition que :
`dvecu=(dx,dy)`
`d^2vecu=(d^2x,d^2y)`
`d^3vecu=(d^3x,d^3y)`
`...`
On définie le produit scalaire de vecteur que l'on note par absence de symbole où par le symbole `·`. Par exemple :
`vecu dvecu = (x,y)(dx,dy) = xdx + ydy`
On définie les vecteurs de base `vec e_1"="(1,0)` et `vec e_2"="(0,1)`. Les même noms servent pour d'autre dimension `vec e_1"="(1,0,0)`, `vec e_2"="(0,1,0)`, `vec e_3"="(0,0,1)`. Dans un produit scalaire tel que `vec u vec e_1`, l'ambiguité est levée car le produit scalaire ne s'applique qu'à deux vecteurs de même dimension. Ces vecteurs de base permettent d'extraire chaque composante :
`vec u vec e_1 = x`
`vecu vec e_2 = y`
On peut donc définir `f` à partir de `vec u` à l'aide du neurone suivant :
`f"←"vecu`
`f(vec u)=f(vec u vec e_1,vec u vec e_2)`
La dérivée partielle est une partie de la dérivée totale. C'est pourquoi il convient d'abord de définir ce qu'est la dérivée totale. La dérivée totale d'une variables d'état `f` s'effectue toujours selon un ensemble de variables libres déterminant `f`. Par exemple supposons que `f` soit déterminé par trois variables libres `{x,y,z}` :
`AA(x,y,z) "∈" RR^3,`
`f"←"(x,y,z)`
On définit le vecteur `vec u` regroupant la liste des variables indépendantes en question :
`vec u "←"(x,y,z)`
`vec u"="(x,y,z)`
On pose le neurone de façon vectorielle :
`f"←"(vec u)`
`f(vec u)=f(vec u vec e_1,vec u vec e_2,vec u vec e_3)`
La fonction `f` est une application vectorielle de `RR^3 "→" RR`. L'application étant analytique. La dérivé de `f` notée `vec(f’)` est une application vectorielle de `RR^3"→"RR^3` ce qui entraine le neurone suivant :
`vec f’"←"(vec u)`
On nomme les composantes du vecteur `vec f’` comme suit :
`(f’_1,f’_2,f’_3) = (vec(f’)vec e_1,vec(f’)vec e_2,vec(f’)vec e_3)`
La tangente étant linéaire, son équation, qui correspond au développement de Taylor arrêté au premier ordre, est la suivante :
`f(vecu "+" dvecu) = f + vec(f’)dvecu + o(epsilon)`
`f((x,y,z) "+" (dx,dy,dz)) = f + (f’_1,f’_2,f’_3) (dx,dy,dz) + o(epsilon)`
`f(x"+"dx,y"+"dy,z"+"dz) = f + f’_1dx + f’_2dy + f’_3dz + o(epsilon)`
Remarquez le terme `o(epsilon)` qui met court au développement de toutes composantes infiniment petites devant `epsilon`. Sans ce terme, l'expression `f(vecu "+" dvecu)` se développe en une série de Taylor à plusieurs variables. Parcontre `df` est par définition un infiniment petit du premier ordre :
`df = f(vecu "+" dvecu) - f(vecu) + o(epsilon)`
Et nous avons l'égalité exacte suivante :
`df = f’_1dx + f’_2dy + f’_3dz`
Les différenttielles partielles se définissent de façon exacte comme suit :
`del_x f = f’_1dx`
`del_y f = f’_2dy`
`del_z f = f’_3dz`
Et donc les composantes de la dérivée sont :
`vec(f’) = ((del_x f) /(dx), (del_y f) /(dy), (del_z f) /(dz),)`
`del_x f` représente la variation infinitésimale du premier ordre de `f` losque seul `x` varie de `dx`, et en laissant `y` et `z` inchangé.
---- 14 novembre 2021 ----
On note l'opérateur de dérivée partielle selon `x` comme suit :
`del/(del x)`
appliqué à la variable `f` et mulyiplié par dx, il calcul la différentielle de `f` selon `x`
`del_x f = (del f)/(delx) dx`
Notez que le produit de deux vecteurs de même dimension correspond au produit scalaire. Les dérivées partielles sont les composantes de la dérivée :
`vec(f’) = ((delf)/(delx), (delf)/(dely), (delf)/(delz))`
L'équation de la tangente est :
`f"←"(x,y,z)`
`f(x"+"dx,y"+"dy,z"+"dz) = f + (delf)/(delx)dx + (delf)/(dely)dy +(delf)/(delz)dz`
On définit l'opérateur de dérivée partielle selon `x` qui se note :
`del/(delx)`
Cette opérateur peut s'appliquer à toute variable du moment que celle-ci est déterminées par un ensemble de variables indépendantes entre-elles contenant `x`.
L'opérateur peut aussi s'appliquer à toute expression, qui se comporte alors comme une variable anonyme, du moment que celle-ci est déterminées par un ensemble de variables indépendantes entre-elles contenant `x`. Déslors il devient nécessaire de fixer une syntaxe pour l'opérateur de dérivée partielle : L'opérateur est prioritaire sur les autres opérations à l'exception de l'appel de fonction, faisant que :
`del/(delx)f+g =(del/(delx)f)+g` `del/(delx)fg =(del/(delx)f)g` `del/(delx)f^g=(del/(delx)f)^g` `del/(delx)f(g)=del/(delx)(f(g))`
Parcontre si on intègre au numérateur l'expression sur laquelle porte la dérivée partielle, l'expression est comme entourée de parenthèse, faisant que :
`(del f+g)/(delx) = del/(delx)(f+g)` `(del fg)/(delx)=del/(delx)(fg)` `(del f^g)/(delx)=del/(delx)(f^g)` `(del f(g))/(delx)=del/(delx)(f(g))`
Par ailleurs, s'il y a risque d'ambiguité entre produit et appel de fonction, alors on utilise le symbole de produit `·`, ainsi, par exemple :
`del/(delx) f·(g+f) = (del f) /(delx)·(g+f) `
La dérivé partielle d'une fonction analytique à plusieurs arguments tel que `f(".,.,.")` selon le premier argument se définit comme suit `AAx,AAy,AAz` :
`del/(delx) f(x,y,z) = lim_(epsilon->0) (f(x"+"epsilon,y,z)-f(x,y,z))/epsilon`
Les quantifications universelles de `x,y,z` se transcrivent dans le réseau de neurones par la propriété que les variables `x,y,z` sont indépendantes entre-elles et possèdent `RR` comme domaine. Puis la déclaration de la fonction `f` ainsi que l'assignement des variables `x,y,z` respectivement au 3 arguments d'entrée de la fonction `f` se transcrit dans le réseau de neurones par la propriété que la variable `f` est déterminé par `x,y,z`.
Cette définition permet de retrouver les 3 règles de dérivation suivantes s'appliquant à n'importe quel expressions `f, g` mais qui doivent être déterminées par un ensemble de variables libres contenant la variable de dérivation partielle en question.
`(del(f"+"g))/(delx) = del/(delx) (f"+"g) = del/(delx) f + del/(delx) g = (delf)/(delx) + (delg)/(delx) ` `(del(fg))/(delx) = del/(delx) (fg) = del/(delx)f g + fdel/(delx) g = (delf)/(delx)g + f (delg)/(delx)` `AAa"∈" RR,AAn "∈" NN"*", (del(ax^n))/(delx) = del/(delx) (ax^n) = anx^(n-1)`
L'opérateur de dérivée partielle selon `x` peut s'appliquer à un polynome à plusieurs variables indépendantes entre-elles contenant `x`. Par exemple :
`del/(delx) (2x+xy +3x^2y^3+4z) = 2+y+6xy^3`
Les variables `x,y,z` étant indépendantes entre-elle, une variation de `x` n'entraine aucune variation de `y` ni de `z`. Ce qui s'écrit :
`(dely)/(delx)=(delz)/(delx) = 0`
Ainsi lorsque `x` varie, `y` et `z` sont considérées comme des constantes. L'opérateur de dérivée partielle selon `x` peut s'appliquer à une séries à plusieurs variables toujours en appliquant ces trois règles. Par exemple :
`del/(delx) (e^(xy)) = del/(delx) (sum_(i=0)^oo (x^iy^i)/(i!)) = sum_(i=0)^oo del/(delx) ((x^iy^i)/(i!)) = sum_(i=1)^oo (i x^(i-1)y^i)/(i!)`
`del/(delx) (e^(xy)) = sum_(i=1)^oo (i x^(i-1)y^i)/(i!) = sum_(i=1)^oo (x^(i-1)y^i)/((i"-"1)!) = sum_(i=0)^oo y(x^iy^ i)/(i!)=ysum_(i=0)^oo (x^iy^ i)/(i!)=ye^(xy)`
Etant donné le neurone `f"←"(x)`, on retrouve la série de Taylor de `f` en `x` en effectuant des dérivations partielles successives de `f(x"+"dx)` selon la variable `dx`. La fonction `f` est analytique, autrement dit, elle se développe localement en série. Elle se développe autour de n'importe quel valeur `x` en une série de `dx` à coefficients réels `r_0,r_1,r_2,...`.
`AAx,EE(r_0,r_1,r_2,...),AAdx"≺"1`
`f(x"+"dx) = r_0+r_1dx+r_2dx^2+r_3dx^3+... = sum_(i=0)^oo r_idx^i`
`del/(del (dx)) f(x"+"dx)= r_1+2r_2dx+3r_3dx^2+... = sum_(i=1)^oo ir_idx^(i-1)`
D'autre part :
`del/(del (dx)) f(x"+"dx) = del/(del x)f(x"+"dx) = f’(x"+"dx)`
`(del^2)/(del(dx)^2) f(x"+"dx)= (del^2)/(del x^2)f(x"+"dx)= f’’(x"+"dx)`
`(del^n)/(del (dx)^n) f(x"+"dx) = (del^n)/(del x^n) f(x"+"dx) = f^ ("("n")")(x"+"dx)`
Ainsi les dérivées sont :
`f’(x"+"dx)= r_1+2r_2dx+3r_3dx^2+... = sum_(i=1)^oo ir_idx^(i-1)`
`f’’(x"+"dx)= 2r_2+3"·"2r_3dx+... = sum_(i=2)^oo i(i"-"1)r_idx^(i-2)`
`f’’’(x"+"dx)= 3"·"2r_3+... = sum_(i=3)^oo i(i"-"1)(i"-"2)r_idx^(i-3)`
`f^("("n")")(x"+"dx)= sum_(i=n)^oo i(i"-"1)(i"-"2)...(i"-"n"+"1)r_idx^(i-n)`
Et lorsque `dx"="0` nous avons :
`f(x)=r_0`
`f’(x) = r_1`
`f’’(x) = 2r_2`
`f’’’(x) = 6r_3`
`f^("("n")")(x)= (n!)r_n`
`r_n= (f^("("n")")(x))/(n!)`
`f(x"+"dx)= f(x) + f’(x)dx + (f’’(x))/2 dx^2+(f’’’(x))/(3!)dx^3 + ... `
`f(x"+"dx)= sum_(i=0)^oo (f^("("i")")(x))/(i!)dx^i`
Avec par convention `f^("("0")")(x) = f(x)` et `0! =1`.
Etant donné le neurone `g"←"(x,y)`, la fonction `g` est analytique et se développe donc autour de n'importe quel point `(x,y)` en une série de `dx` et de `dy` à coefficient réel `(r_(i,j))_(i in NN)^(j in NN)`.
`AAx,AAy,EE(r_0,r_1,r_2,...),AAdx"≺"1, AAdy"≺"1`
`g(x"+"dx,y"+"dy) = r_(0,0)+r_(1,0)dx+r_(0,1)dy + r_(1,1)dx dy + r_(2,0)dx^2+r_(2,1)dx^2dy +r_(2,2)dx^2lambda^ 2+r_(1,2)dx lambda^2+...`
`g(x"+"dx,y"+"dy) =sum_(i=0)^oo sum_(j=0)^oo r_(i,j)dx^i dy^j`
Etant donné le neurone `g"←"(x,y)`, on retrouve la série de Taylor de `g` en `x` et `y` en effectuant des dérivations partielles successives de `g(x"+"dx,y"+"dy)` selon les variables `dx` et `dy`. On calcul les dérivées partielles du monome selon `dx` et `dy` :
`i"⩾"1, del/(del (dx)) dx^i = i dx^(i"-"1)`
`i"⩾"2, (del^2)/(del (dx)^2) dx^i = i(i"-"1) dx^(i-2)`
`i"⩾"n, (del^n)/(del (dx)^n) dx^i = i(i"-"1)...(i"-"n"+"1) dx^(i-n)`
`i"⩾"a, j"⩾"b, (del^(a+b))/(del(dx)^a del(dy)^b) r_(i,j)dx^i dy^j = r_(i,j) i(i"-"1)...(i"-"a"+"1)dx^(i-a) j(j"-"1)...(j"-"b"+"1) dy^(j-b)`
Les dérivées partielles sont :
`del^ (a+b)/(delx^a dely^b)g(x"+"dx,y"+"dy)=sum_(i=0)^oo sum_(j=0)^oo del^(a+b)/(delx^a dely^b) r_(i,j)dx^i dy^j`
`del^(a+b)/(delx^a dely^b)g(x"+"dx,y"+"dy)= sum_(i=a)^oo sum_(j=b)^oo r_(i,j) i(i"-"1)...(i"-"a"+"1)dx^(i-a) j(j"-"1)...(j"-"b"+"1) dy^(j-b)`
Et lorsque `dx"="dy"="0` nous avons :
`del^(a+b)/(delx^a dely^b)g(x,y)= (a!)(b!)r_(a,b)`
`r_(a,b)=1/(a!b!) del^(a+b)/(delx^a dely^b)g(x,y)`
`g(x"+"dx,y"+"dy) =sum_(i=0)^oo sum_(j=0)^oo 1/(a!b!) (del^(a+b)g(x,y))/(delx^a dely^b)dx^i dy^j` `g"←"(x,y)`
`g(x"+"dx,y"+"dy)=`
`g` `+(delg)/(del(x)) dx + (delg)/(dely) dy` `+1/(2!)(del^2g)/(delx^2)dx^2 +2/(2!)(del^2g)/(delx dely)dxdy + 1/(2!)(del^2g)/(dely^2)dy^2` `+1/(3!)(del^3g)/(delx^3)dx^3 +3/(3!)(del^3g)/(delx^2 dely)dx^2dy + 3/(3!)(del^3g)/(delx dely^2)dxdy^2 + 1/(3!)(del^2g)/(dely^2)dy^2` `+ ...`
Etant donné le neurone suivant :
`g"←"(x,y)`
Etant donné les neurones suivants :
`vecu"←"(x,y)`
`vecu=(x,y)``g"←"vecu`
`g(vec u)=g(vec u vec e_1,vec u vec e_2)`
La dérivée de `g` se note `vecg’`
`vec(g’)= ((delg)/(delx),(delg)/(dely))`
Et le produit de `vecg’` avec `dvec u` calcule `dg`
`dg = vec(g’)dvecu`
`dg = ((delg)/(delx),(delg)/(dely)) (dx,dy)`
`dg = (delg)/(delx)dx + (delg)/(dely)dy`
La dérivée de `vec(g’)` se note `vecvec(g'')`, c'est un vecteur de vecteurs :
`vecvec(g'') = ((delvec(g’))/(delx),(delvec(g’))/(dely))`
`vecvec(g'') = (del/(delx)((delg)/(delx),(delg)/(dely)),del/(dely)((delg)/(delx),(delg)/(dely)))`
`vecvec(g'') = ( "("(del^2g)/(delx^2),(del^2g)/(delxdely)")" , "("(delg^2)/(delxdely),(delg^2)/(dely^2)")")`
Et le produit de `vecvec(g’’)` avec `dvec u` puis avec `dvecu` calcule `dg` :
`dg = (vecvec(g’’)dvecu)dvecu`
`dg = ( "("(del^2g)/(delx^2),(del^2g)/(delxdely)")" , "("(delg^2)/(delxdely),(delg^2)/(dely^2)")")(dx,dy))(dx,dy)`
`dg = ("("(del^2g)/(delx^2),(del^2g)/(delxdely)")"dx + "("(delg^2)/(delxdely),(delg^2)/(dely^2)")"dy)(dx,dy)`
`dg = ((del^2g)/(delx^2)dx+(delg^2)/(delxdely)dy, (del^2g)/(delxdely)dx+ (delg^2)/(dely^2)dy)(dx,dy)`
`dg = (del^2g)/(delx^2)dx^2+(delg^2)/(delxdely)dxdy + (del^2g)/(delxdely)dxdy+ (delg^2)/(dely^2)dy^2`
`dg = (del^2g)/(delx^2)dx^2+2(delg^2)/(delxdely)dxdy + (delg^2)/(dely^2)dy^2`
---- 3 novembre 2021 ----
On se place dans le corps des hyperréels, `"*"RR`. C'est une extension du corps ordonné des réels qui contient un infini dit du premier ordre, noté `oo`, une valeur infiniment grande c'est à dire plus grande que tous les réels, et qui est utilisé comme un étalon de l'infini. Dés lors, apparait de façon formelle les ordres de grandeurs. L'inverse de `oo` est une valeur infiniment petite dite du premier ordre. La puissance zéro de `oo` vaut `1`. Et le zéro est absorbant.
`oo^0"="1`
`0 oo = 0`
Dans un corps ordonné, les valeurs sont les éléments du corps, et les grandeurs sont les valeurs positives non-nulles. Un corps est archimédien si pour deux grandeurs inégales, il existe toujours un multiple entier de la plus petite, supérieur à la plus grande.
Le corps des hyperréels n'est pas archimédien. Il comprend des composantes archimédiennes qui constituent des ordres de grandeur. On défini la relation d'ordre, notée `"≍,≼,≺"`, pour comparer les hyperéels à une composante archimédienne près, c'est à dire à un ordres de grandeur près. Etant donné deux hyperréels `alpha` et `beta`.
`alpha"≍"beta``(EEn "∈" NN, |alpha| "⩽"n |beta| ) "et" (EEn "∈" NN, |beta| "⩽"n |alpha| )`
`alpha` est de l'ordre de `beta`. `alpha"≼"beta` `EEn "∈" NN, |alpha| "⩽"n |beta| ` `alpha` est d'un ordre inférieur ou égal à celui de `beta`. `alpha"≺"beta` `AAn "∈" NN, n|alpha|"<"|beta|` `alpha` est d'un ordre plus petit que celui de `beta`.
Deux hyperréels sont du même ordre si et seulement si chacun est majoré par un multiple entier de l'autre.
Un hyperréel est d'un ordre inférieur ou égal à celui d'un autre si et seulement il est majoré par un multiple entier de cet autre.
Un hyperréel est d'un ordre plus petit que celui d'un autre si et seulement il est infiniment petit devant cet autre.
La succession des puissances de l'infini du premier ordre définie des ordres de grandeurs que l'on peut identifier par leur exposant :
`... oo^-n... oo^-3≺oo^-2≺oo^-1≺oo^0≺oo≺oo^2≺oo^3... oo^n...`
Il est également possible de définir un ordre n°`x`, où `x` est un réel. En effet, on constatera que quelque soit deux réels `x` et `y` nous avons :
`x"<"y <=> oo^x"≺"oo^y`
L'ordre n°`x` désigne l'ordre de `oo^x` et désigne l'ensemble `oo^xRR"*"` modulo les hyperréels infiniment petits par rapport à `oo^x`. Où `RR"*"` désigne l'ensemble des réels non nuls. Le zéro n'appartient à aucun ordre (ou à un ordre singleton correspondant au plus petit de tous les ordres).
Les ordres de grandeurs sont définis modulo les hyperréels d'ordre inférieur, afin de donner une hypercompacité à ces ordres de grandeurs, c'est à dire d'en faire des intervalles d'hyperréels sans trou autre que zéro. Noter que zéro n'appartient à aucun ordre de grandeur.
Dans la pratique on n'utilisera pas les ordres non-entier. Car les systèmes physiques se développent localement en séries de Taylor, c'est à dire en séries de puissances entières de différentielles (qui sont de l'ordre de `oo^ -1`). Puis, les physiciens, pour des raisons propre aux fonctions holomorphes, n'utiliserons le plus souvent que les deux premiers ordres.
D'autres ordres de grandeur existent, et nous n'allons pas épuiser le corps des hyperréels. Notez qu'il est possible de définir un corps des hyperréels en logique du premier ordre, et donc que le corps des hyperréels, comme le corps des réels, admet un modèle dénombrable.
Règles grammaticales :
L'ordre de `x` désigne la composante archimédienne contenant `x`. C'est un ordre de grandeur. On dit que `x` est de l'ordre de `y`, pour signifier que `x` appartient à l'ordre de `y`.
On utilise la notation de Landau, le petit `o`, que l'on applique à un hyperréel non-nul `alpha`, pour désigner l'ensemble des hyperréels d'ordre plus petit que celui d'`alpha`, c'est à dire de norme infiniment petite devant `|alpha|` :
`o(alpha) = {beta "∈" "*"RR "/" AAn "∈" NN, n|beta| "<" |alpha| } = {beta "∈" "*"RR "/" |beta|NN"<"|alpha|}`
On utilise la notation de Landau, le grand `O`, que l'on applique à un hyperréel non-nul `alpha`, pour désigner l'ensemble des hyperréels d'ordre inférieur ou égal à celui d`alpha`, c'est à dire de norme majorée par un multiple de `|alpha|` :
`O(alpha) = {beta "∈" "*"RR "/" EEn "∈" NN, |beta| "⩽"n |alpha| }`
On démontre que tout hyperréel d'ordre inférieur ou égal à celui d'`alpha` se décompose en la somme d'un multiple réel de `alpha` et d'un infiniment petit devant `alpha` :
`O(alpha) = alphaRR + o(alpha)`
On utilise la notation de Landau, le grand Theta `Theta`, que l'on applique à un hyperréel non-nul `alpha`, pour désigner l'ensemble des hyperréels d'ordre égal à celui d`alpha`. On obtient cet ordre à partir de `O(alpha)` en enlevant tout ce qui est d'un ordre inférieur à celui d'`alpha` :
`Theta(alpha) = O(alpha) ∸ o(alpha)`
On démontre que tout hyperréel d'ordre égale à celui `alpha` se décompose en la somme d'un multiple réel non-nul de `alpha` et d'un infiniment petit devant `alpha` :
`Theta(alpha) = alphaRR"*" + o(alpha)`
L'ordre n°`0` désigne l'ordre de `1`. Il se note `Theta(1)` et correspond à l'ensemble `RR"*" + o(1)`, l'ensemble des hyperréels de l'ordre de `1`. Il représente `RR"*"`, l'ensemble des réels non-nuls, augmenté d'une compacité hyperréel qui en fait un intervalle d'hyperréels sans trou autre que zéro.
L'ordre n°`n` désigne l'ordre de `oo^n`. Il se note `Theta(oo^n)` et correspond à l'ensemble `oo^nRR"*" + o(oo^n)`, l'ensemble des hyperréels de l'ordre de `oo^n`. Il représente `oo^nRR"*"` augmenté d'une compacité hyperréel qui en fait un intervalle d'hyperréels sans trou autre que zéro.
Règles grammaticales :
Lorsque `x=o(y)`, on dira que `x` est de l'ordre de `o(y)`, ou que `x` est d'un ordre inférieur à celui de `y`. Ainsi l'ordre de `o(y)` est un abus de langage qui désigne la réunion des ordres inférieurs à l'ordre de `y`.
Lorsque `x=O(y)`, on dira que `x` est de l'ordre de `O(y)`, ou que `x` est d'un ordre inférieur ou égal à celui de `y`. Ainsi l'ordre de `O(y)` est un abus de langage qui désigne la réunion des ordres inférieurs ou égals à l'ordre de `y`.
Lorsque `x=Theta(y)`, on dira que `x` est de l'ordre de `Theta(y)`, ou que `x` est d'un ordre égal à celui de `y`, ou encore que `x` est de l'ordre de `y`, qu'il appartient bien à l'ordre de `y`. Ainsi l'ordre de `Theta(y)` désigne l'ordre de `y`.
Le système imaginé par les physisciens est une modélisation numérique, et les variables mémorisent des valeurs numériques, avec une précision aussi fine que l'on veut mais par principe finie. C'est pourquoi la variable n'a pas les mêmes degrès de liberté qu'un hyperréel. Elle n'évolue pas dans un ensemble augmenté d'une compacité hyperréel, dans un intervalle hyperreél. La variable reste réel en quelque sorte. Elle constitue la composante principale dans l'ordre en question, auquel n'est ajouté aucun infiniment petit vis-à-vis d'elle. Elle évolue dans un intervalle de réels multipliée par un étalon d'infini de la forme `oo^n` où `n` est un entier relatif, `n "∈" ZZ`.
Chaque variable simple, telle que par exemple `x`, possède un domaine de valeur `sf"Arr"(x)` qui est par défaut l'ensemble des nombres réels, `RR`. Autrement dit, la variable `x` n'évolue que dans un seul ordre lorsqu'elle n'est pas nulle, qui est par défaut l'ordre de `1`, et est toujours réduite à sa composante principale qui est un réel.
Dans le cas général, la variable simple possède un domaine de valeur qui est l'ensemble des nombres réels multiplié par un étalon d'infini, `RRoo^n`, où `n "∈" ZZ`. La variable simple n'évolue que dans un seul ordre lorsqu'elle n'est pas nulle, qui est l'ordre de `oo^n`, et est toujours réduite à sa composante principale qui est un réel.
Comme nous souhaitons utiliser les règles de calcul du corps des hyperéels, nous sommes amené à considérer des variables plus sophistiquées obtenues en sommant et multipliant plusieurs variables simples. Le domaine de leurs valeurs possibles est alors une somme de domaines d'ordres différents. La valeur possèdent alors plusieurs composantes d'ordres différents, plusieurs dimensions.
Néanmoins, même si on manipule de telles variables, ce n'est pas celles-ci que l'on retiendra pour décrire l'état d'un système. Les variables d'état retenues seront toutes à une seule composante, puisqu'elles sont sensée être soumises à la mesure, une mesure qui néglige forcement les ordres inférieurs. Les autres variables sont des intermédiaires de calcul, un moyen formel pratique d'établir des équations sophistiqués exactes, ou de regrouper plusieurs équations en une seule vectorielle.
Cette dichotomie des valeurs en une sommes de valeurs d'ordre différents, de la forme `oo^n RR`, ne fait que traduire la nature analytique des fonctions et opérations que nous utilisons, et qui se développe en série de Taylor.
Puis considérant le résultat d'une appliocation analytique, nous sommes amené à considérer des variables encore plus sophistiquées obtenues par une série à coefficient réel. Le domaine de leurs valeurs possibles est alors une somme infinie de domaines d'ordres différents. La valeur possèdent alors ue infinité de composantes d'ordres différents, une infinité de dimensions :
`a = a_0+a_1oo^ -1+a_2 oo^ -2+a_3oo^ -3 + ...`
La variable ne parcourt pas tous les hyperréels, mais seulement les hyperréels de la forme suivante :
`x = sum_(i=m)^(i=n) r_i oo^i`
où `m ⩽ n` sont des entiers relatifs et où les `r_i` sont des réels. La variable est de l'ordre de `oo^n` et possède des composantes d'ordre plus petit jusqu'à l'ordre de `oo^m`. Autrement dit, la variable à une composante principale `r_noo^n`, et sa composante d'ordre la plus petite est `r_moo^m`.
Cela signifie que si l'on opère une approximation à l'ordre `k`, c'est à dire si on assouplit l'égalité exacte en une égalité modulo `O(oo^k)`, on perd de l'information apportée par toutes les composantes d'ordre inférieur ou égale à celui de `oo^k`. Si ` k "⩾" m`, alors la composante `r_moo^m` se trouve dissoute dans l'ensemble `O(oo^k)`. Parcontre si ` k"<"m ` alors il n'y a aucune perte d'information.
Chaque facteurs `r_i` peut être nulle, c'est pourquoi on définit un type qui fixe la présence de ces composantes qu'elles soient nulles ou non. Le type de la variable est dit d'ordre de `(oo^m,oo^n)`, ou d'ordre `(m,n)`. Et cela signifie qu'elle possède des composantes d'ordre de `oo^m`, `oo^(m+1)`, `oo^(m+2)`, ..., `oo^n`.
L'ordre de grandeur de la variable est par définition celui de `oo^n`. L'ordre de précision de la variable est par définition celui de `O(oo^m)`.
Tandis que l'ordre de grandeur de la valeur de la variable peut être inférieur. Il peut être celui de `oo^n`, ou de `oo^(n-1)`, etc.., ou de `oo^m`, ou n'existe pas lorsque la variable est égale à zéro. Mais l'ordre de sa précision est toujours celle définie par son type.
La variable possède donc `1 + n - m` composantes d'ordres successifs qui ne peuvent souffrire de dissolution sans perte d'information. La variable s'apparente à un vecteur de dimension `1 + n - m`. Pour manipuler de façon exacte et formelle cette variable, celle-ci doit garder le même type, c'est à dire que la variable doit être égale au produit scalaire suivant :
`(r_m,...,r_n)"·"(oo^m,...,oo^n)` avec `(r_m,...r_n) "∈" RR^(1 + n - m)`.
Ainsi, la variable `x` (son type) possède un ordre de grandeur `O(oo^n)` qui est l'ordre du plus grand des infinis présent dans son type, et possède une précision `O(oo^m)` qui est le plus petit des infinis présent dans son type. La variable `x` possède `1 + n - m` composantes d'ordres successifs. On note l'ensemble `sfH_m^n`, l'ensemble des valeurs non nulles que peut prendre une variable de type d'ordre `(m,...,n)`. Cela correspond à la sommes suivante :
`sfH_m^n = sum_(i=m)^(i=n) RRoo^i`
La variable `x` parcourt cet ensemble de valeurs hyperréels, ce qui se note :
`x in sfH_m^n`
Le type d'ordre `(m,n)` se note également par l'expression `sfH_m^n`. La règle de sommation de deux tels hyperréels de même signe est simple :
`sfH_a^b + sfH_m^n = sfH_(sf"min"(a,m))^(sf "max"(b,n))`
Elle signifie que l'ajout d'une variable de type `sfH_a^b` par une variable de même signe et de type `sfH_m^n` produit une variable de type `sfH_(sf"min"(a,m))^(sf "max"(b,n))`. Notez que cette égalité n'est pas une hypothèse traduisant une approximation, mais une égalité mathématique formelle exacte. La règle de multiplication est également simple :
`sfH_a^b sfH_m^n = sfH_(a+m)^(b+n)`
Elle signifie que le produit d'une variable de type `sfH_a^b` par une variable de type `sfH_m^n` produit une variable de type `sfH_(a+m)^(b+n)`.
Nous verrons plus loin quelles règles sont utilisées pour la soustraction et la division.
Etant donné une variable d'état `x`, on définie une variable `dx` dite différentielle, préfixé par l'opérateur de différentialisation `d`, qui traduit une variation infinitésimale du premier ordre, de la variable d'état `x` vis-à-vis de `x`, c'est à dire vis-à-vis du type de `x`, c'est à dire vis-à-vis de `sf"Arr"(x)` dans lequel on a ôté le zéro`.
La variable `dx` est élevée au statut de variable d'état, et son domaine par défaut est `oo^-1sf"Arr"(x)`, un domaine de l'ordre de l'infiniment petit du premier ordre vis-à-vis de `x`.
On dira que `dx` est un infiniment petit du premier ordre vis-à-vis de `x`. Et la définition peut se réintérer, faisant que `d(dx)`, noté `d^2x`, est un infiniment petit du premier ordre vis-à-vis de `dx`. Et est donc un infiniment petit du second ordre vis-à-vis de `x`. Ainsi, quelque soit un entier `n`, la variable d'état `d^n x` est un infiniment petit du `n`-ième ordre vis-à-vis de `x`.
On remarquera que `dx^n` et du même ordre que `d^nx`, qui est de l'ordre de `oo^-n`.
Une variable `x` possède un type `H_m^n` qui décrit une succession d'ordres de grandeur. Il y a donc deux notions distinctes, le type de la variable ou de l'expression avec les règles de calcul de type telles qu'on a commencé à les décrire, et la valeur de la variable ou de l'expression. Cela induit deux notations. Une expression soulignée désignera la valeur de l'expression. Une expression non soulignée passée en argument d'une notation de Landau désignera son type. Ainsi pour une variable `x` réel nous avons :
`x "∈" RR`
`o(x) = o(1)``o(underline (x)) = o(1)` si et seulement si `x "≠" 0`
Dans le cas générale :
`x "∈" H_m^n`
`EE(r_m,...r_n) "∈" RR^(1 + n - m), x"="(r_m,...,r_n)"·"(oo^m,...,oo^n)``o(x) = o(oo^n)`
`o(underline (x)) = o(oo^n )` si et seulement si `r_n"≠"0`
`o(underline (x)) = o(oo^(n-1))` si et seulement si `r_n"="0` et `r_(n-1)"≠"0`
`o(underline (x)) = o(oo^(n-2))` si et seulement si `r_n"="0` et `r_(n-1)"="0` et `r_(n-2)"≠"0`
...
La notion de negligeabilité se définit relativement à la quantité d'information complète véhiculée par la variable. Les valeurs négligeables devant `x` qui est d'ordre `(m,n)`, et il faut entendre devant le type de `x`, sont les mêmes que celles négligeable devant sa plus petite composante en `oo^m`. Les valeurs infiniment grandes vis-à-vis de `x`, c'est à dire vis-à-vis du type de `x`, sont les mêmes que celles infiniment grandes devant `oo^n`.
L'ordre de `x`, sous entendu l'ordre du type de `x`, est `oo^n`. L'ordre de précision de `x` c'est à dire l'ordre de précision du type de `x` est `oo^m`.
Règles grammaticales :
Lorsqu'on veut parler de l'ordre de la valeur de la variable ou de l'expression et non de son type, on dira littérallement l'ordre de la valeur de la variable ou de l'expression, et on soulignera la variable ou l'expression en question dans la formule. `o(underline x)` désigne l'ordre de la valeur de `x`.
Parcontre lorqu'on évoquera l'ordre d'une variable ou d'une expression, cela désignera l'ordre du type de la variable ou de l'expression. `o(x)` désigne l'ordre de la valeur de `x`.
La manière habituelle de définir les hyperéels consiste à les considérer comme une caractéristique ordonnée des asymptotes.
Il existe une seconde notation de Landau qui est appliquée aux asymptotiques vers l'infini ou vers un point réel préfixé, et qui a été conçut antérieurement dans l'histoire des mathématiques. On la note en précisant le point de fuite de l'asymptote en indice Elle compare, non pas des hyperéels entre-eux, mais des asymptotes entre-elles.
L'expression `o_(z->oo)(f(z))` désigne l'ensemble de toutes les fonctions `z"↦"lambda(z)`de `RR"→"RR`, noté sous forme de résultat `lambda(z)` qui sont négligeables devant la fonction `z"↦"f(z)`, notée sous forme de résultat `f(z)`, lorsque `z` tend vers `oo`. Ainsi en considérant la notation de Landau appliquée aux asymptotes vers l'infini, `g(z) "=" o_(z->oo)(f(z))` si et seulement si `g(z)"/"f(z)` tend vers zéro lorsque `z` tend vers l'infini :
`g(z) "=" o_(z->oo)(f(z)) <=> lim_(z->oo) g(z)/f(z) = 0`
`g(z) "=" o_(z->r)(f(z)) <=> lim_(z->r) g(z)/f(z) = 0`
`g(z) "=" o_(z->0)(f(z)) <=> lim_(z->0) g(z)/f(z) = 0`
En prenant une variable `x` réel, c'est à dire telle que `sf"Arr"(x)"="RR`, nous avons :
`Theta(1) <Theta_(z->oo)(z) = o(1/(dx)) 1≺1/(dx)`
`Theta(1) = Theta_(z->r)(z) = o(x) 1≍x`
`Theta(1) > Theta_(z->0)(z) = o(dx) 1 ≻dx`
Les variables peuvent être liées par des neurones qui représentent des fonctions analytiques, c'est à dire indéfiniment dériveables et de série de Taylor convergente en tout point continûment accessible du domaine ouvert, ou autrement dit, de la forme d'une série convergente à coefficient réel :
`x|->a_0"+"a_1x"+"a_2x^2"+"a_3x^3"+"...`
En faisant ce choix on retire toutes les composantes de nature plus ou moins discrètes qui dérogent aux règles générales du calcul différentiel, et qui seront traitées ailleurs.
Etant donné une variable `x`, on note `dx` une variation infiniment petite (du premier ordre) de `x`. Cet élément différentiel `dx` constitue une nouvelle variable à part entière, mais dite différentielle du premier ordre, c'est à dire évoluant dans `oo^-1sf"Arr"(x)` où `oo^-1` est l'infiniment petit du premier ordre. Sans autre hypothèse, ces variables `x` et `dx` sont indépendantes entre-elles, c'est à dire qu'elles peuvent prendre toutes les valeurs possibles de leur domaine respectif indépendamment de la valeur de l'autre variable. On résume cela en disant que les valeurs possibles de `(x,dx)` constitue l'ensemble `sf"Arr"(x) × oo^-1sf"Arr"(x)`. Ainsi, lorsque `sf"Arr"(x)"="RR` nous avons `x"="O(1)` et `dx"="O(oo^-1)`.
Une fonction analytique admet comme ensemble de départ un produit de `n` domaines de variables réels, et admet comme ensemble d'arrivé un domaine de variable réel.
Néanmoins étant donné le concept plus large de variables simples qui est une variable réel multipliée par un étalon d'infini de la forme `oo^n` avec `n in ZZ`, on est amené à élargire le concept de fonction analytique. Une fonction analytique admet comme ensemble de départ un produit de domaine de `n` variables simples, et admet comme ensemble d'arrivé un domaine de variable simple. Ainsi, considérons le neurone suivant :
`F"←"(x,y)`
La fonction `F` est une application de :
`sf"Arr"(x)"×"sf"Arr"(y)"→"sf"Arr"(F)`
Où les domaines en question sont simples c'est à dire à une seule dimension. On note de façon condensé ce type par `(a,b → c)` où `sf"Arr"(x)"="oo^a` et `sf"Arr"(y)"="oo^b` et `sf"Arr"(F)"="oo^c`. Puis on ramène la fonction sous sa forme traditionnelle en multipliant chaque composante par un étalon d'infini afin d'en faire un réel, et en multipliant le résultat par un étalon d'infini afin d'en faire également un réel :
`f(x oo^ -a, y oo^ -b) = F(x,y)oo^-c`
Ainsi les capacités fonctionnelles analytiques sont étendues aux variables simples sans avoir besoin d'utiliser d'autres fonctions analytiques que celles de `RR"→"RR` ou d'une partie ouverte de `RR` vers une partie ouverte de `RR`.
Une fonction analytique `f` admet des dérivées de tout ordre `f’,f’’,f’’’,...,f^("("n")"),...`. Le neurone `f "←"(x)` entraine implicitement les neurones `f’ "←"(x)` et `f’’"←"(x)` et `f^("("n")")"←"(x)` etc. qui définissent de nouvelles variables d'état correspondant aux dérivés première `f’"="f’(x)`, seconde `f’’"="f’’(x)`, n-ième `f^("("n")")"="f^("("n")")(x)`, etc..
Puis toute fonction analytique de `RR->RR` s'étend de façon unique en une fonction de `"*"RR->"*"RR`. Pour le démontrer on décompose la fonction analytique en une série. En effet, toute fonction analytique `f` se décompose en une série convergente :
`f(x)=a_0+a_1x+a_2x^ 2+a_3x^3 + ... `
`f(x)= sum_(i=0)^oo a_ix^i`
Il est alors possible de plonger la fonction dans un corps d'hyperéels.
`f(x"+"dx)=a_0+a_1(x"+"dx)+a_2(x"+"dx)^2+a_3(x"+"dx)^3 + ... `
`f(x"+"dx) = sum_(i=0)^oo a_i(x"+"dx)^i`
et on retrouvera le développement de Taylor :
`f(x"+"dx)= f(x) + f’(x)dx + (f’’(x))/2 dx^2+(f’’’(x))/(3!)dx^3 + ... = sum_(i=0)^oo (f^("("i")")(x))/(i!)dx^i`
Avec par convention `f^("("0")")(x) = f(x)` et `0!=1`
La dérivée d'une fonction analytique `f` est définie comme suit, et la dérivé `(n"+"1)`-ième se définit comme étant la dérivée de la dérivée `n`-ième :
`f’(x) = lim_(v->0) (f(x"+"v) - f(x))/v`
`f "←"(x)`
`f’ = lim_(v->0) (f(x"+"v) - f)/v`
La fonction `f` étant analytique, le passage à la limite se traduit en remplaçant `v` par n'importe quel valeur `epsilon` infiniment petit devant `1`.
`epsilon ≺ 1`
`f’(x) = (f(x"+"epsilon) - f(x))/epsilon + o(1)`
`f "←"(x)` `epsilon ≺ 1`
`f’ = (f(x"+"epsilon) - f)/epsilon + o(1)`
On choisit de prendre un infiniment petit du premier ordre, celui lié abstraitement à `x` qui est `dx` sachant que n'importe quel `dy` serait également valable dés lors que `y` est une variable réel, `dx=dy+O(oo^-1)` :
`f’(x) = (f(x"+"dx) - f(x))/dx + o(1)`
`f "←"(x)` `f’ = (f(x"+"dx) - f)/dx + o(1)`
Le `o(1)` cache toutes les composantes d'ordre inférieur à `1`, et se comporte comme un passage à l'arrondie. C'est la définition du passage à la limite au premier ordre. Cette définition de la dérivée est celle dite du premier ordre, de type `RR"→"RR`.
Il existe une définition de la dérivée encore plus riche dite du second ordre de type `H_-1^0"→"H_-1^0` qui, appliquée à un élement de la forme `a+boo^ -1` avec `a,b` réels, retourne un élément de la forme `u+voo^ -1` avec `u,v` réels.
`epsilon ≺ 1`
`f’(x) = (f(x"+"epsilon) - f(x))/epsilon + o(1)`
`f(x"+"epsilon) = f(x) + f’(x)epsilon + o(1)epsilon`
`f(x"+"epsilon) = f(x) + f’(x)epsilon + o(epsilon)`
`f "←"(x)` `epsilon ≺ 1`
`f’ = (f(x"+"epsilon) - f)/epsilon + o(1)`
`f(x"+"epsilon) = f + f’epsilon + o(1)epsilon`
`f(x"+"epsilon) = f + epsilonf’ + o(epsilon)`
La formule se généralise, quelque soit deux variables `x, y` d'ordre de grandeur quelconque, nous avons l'égalité de Taylor au premier ordre :
`f(x"+"y) = f(x) + f’(x)y + o(y)`
`f "←"(x)`
`f(x"+"y) = f + yf’ + o(y)`
---- 29 octobre 2021 ----
Etant donné une variable d'état `x`, et sa différentielle `dx`. On définit par exemple une variable `v` dépendant de `dx` comme suit :
`v"←"(dx)`
`v= 1/dx + 2 + 3dx + 4dx^2`
`v = sfH_[1, -2]`
`v = O(oo)`
La définition asymptotique de `v` est :
`v= lim_(epsilon->0) (1/epsilon + 2 + 3epsilon+ 4epsilon^2)`
`v= lim_(omega->oo) (omega + 2 + 3/omega + 4/omega^2)`
Et nous allons utiliser la définition symptotique de `v` pour calculer l'inverse de `v` dans l'intrvalle d'ordre attendu :
`1/sfH_[1,-2]= sfH_[-1,-4]`
`1/v = sf"series"(1"/"(1"/"dx + 2 + 3**dx+4**dx^2) , dx->0) + O(oo^-4)`
`1/v = dx - 2dx^2 +dx^3 + O(dx^4)`
`1/(1/v) = sf"series"(1"/"(dx - 2dx^2 +dx^3), dx->0) + O(oo^-2)`
`1/(1/v) = 1/dx + 2 + 3dx + 4dx^2+ O(dx^2)`
--- 16 octobre 2021 ---
Pour chaque variable, des considérations statistiques peuvent permettent de définir simplement un étalon adapté. L'étalon est choisi égale à l'écart-types. On choisie ainsi une unité telle que l'essentiel des valeurs à `n` chiffres significatifs attendus sont de la forme décimale avec `n"/"2` chiffres avant la virgule et de `n"/"2` chiffres après la virgule. Avec cette convention, la valeur 1 représente une variation de `10^(n/2)` quantas sur un ensemble de (10^n) quantas, où l'on appelle par quantas la variation minimal significative.
et donc en prenant `dx, dy,dz,...` suffisamment petit.
4) Dépendance
Dans un réseau de neurones, il y a deux sortes de dépendance à une étape, l'une est dite explicite et lie les variables que dans un sens, l'autre est implicite et est symétrique :
La variable x dépend explicitement en une étape de y si et seulement si x possède un neurone qui possède y parmis ces arguments, et si tous les autres neurones de x possède au moins un arguments lié à y.
La variable x est lié implicitement à y en une étape si et seulement si il existe une variable f qui possède deux neurones dont l'un possède x parmi ses arguments et l'autre possède y parmi ses arguments.
deux variables `x` et `y` sont dépendantes en une étape si et seulement si au moins l'une des trois assertions suivantes est vrai :
- `x` possède un neurone qui possède `y` parmi ses arguments, `x"="x(y,...)`.
- `y` possède un neurone qui possède `x` parmi ses arguments, `y"="y(x,...)`.
- Il existe dans le système une variable `f` qui possède au moins deux neurones dont l'un possède `x` parmi ses arguments, et l'autre possède `y` parmi ses arguments. `f(x,...)"="f[y,...]`.
Deux variables `x` et `y` sont dépendantes si et seulement s'il existe une succession de variables en commençant par `x` et en terminant par `y` telles que chaque variable soit dépendante en une étape de la suivante. Et cela se note `x"−"y`.
Un socle de `f`, est un ensemble de variables indépendantes qui déterminent `f`.
Par exemple considérons le sytème suivant : `f"←"(x,y)`, `x"←"(t,z)` `x"←"(k)`, `k"←"(w)`,`f"←"[u,v]`, `v"←"[t]`. Les socles de `f` sont `{y,z,t}, {y,w}, {u,t}`. L'ensemble `{y,z,t,w}` détermine `f` mais n'est pas un socle de `f` car il n'est pas indépendant. `w` est lié à `k` qui est lié à `x`. `t` et `z` sont liés à `x` donc w est lié à `t` et à `z`.
Dans certain cas, `f` ne possède pas de socle, par exemple `f"←"(x,y)`,`g"←"(x)`,`g"←"[y]`.