Modélisation non-linéaire avec Microsoft EXCEL 4.0/2000

--> voir le fichier « démo »
--> téléchargerle programme macro



revu,le 24 février 2003


Plan : Préambule- Introduction - I. Des exemples[ 1. résolution de polynomes- résolution d'un systèmed'équations - 3. valeurspropres et vecteurs propres d'une matriceréelle - 4. un problème complet- 5. un exercice de pharmacocinétique ] - II. Le logiciel[Function - Data- Set - Find- Options - Help- Modules -]

Préambule

Cette page fait évidemment un peu contraste avec les autres sections. Il s'agit en fait de« retombées» d'un travail que j'avais mené il y a plus de 6 ans et quiavait conduit à une publication dans l'International Journalof Bio-medical Computing. L'article s'appelait « anon-linear fitting program in pharmacokinetics with Microsoft Excel spreadsheet »[37, 1-14, 1994]. Le programme était encore assez sommaire àl'époque et depuis j'ai pu développer des outils plus performantset des algorithmes d'optimisation plus puissants. Il s'agit d'un travailqui a été réalisé par quelqu'un qui n'a aucundon pour les mathématiques mais qui a un sens du raisonnement analogiquequi lui permet simplement d'appliquer des exemples. Il ne s'agit donc paslà d'un travail qui pourra intéresser les chercheurs ; néanmoins,la formulation des problèmes est évoquée de façonassez « triviale » et en cela cette démarchepeut intéresser les personnes qui, comme moi, n'ont jamais riencompris aux mathématiques mais qui ont voulu progresser en allantjusqu'au bout de leurs possibilités par le développementdu raisonnement par analogie. Les programmes d'optimisation quisont sur le marché, même équipés d'une aideen ligne fort importante, ne pourront jamais remplacer le sentiment du néophyte ou du « candide» qui veut savoir comment résoudre un polynome, comment résoudre deséquations du 10èmedegré, ou résoudre un système de 10 équations linéaires [detype scalaire ou vectorielle], fairedu calcul matriciel etc. Tout cela peut être réalisérien qu'avec deux feuilles macro, bâties sous Microsoft Excel 4.0,en se servant uniquement du langage macro...et fonctionnant aussi bien sur Excel 97 ou 98...

Les logiciels présents dans le commerceet qui fournissent des résultats équivalents valent en généralfort cher...

Introduction

Nous présentons au lecteur un module d'optimisation non linéaireprogrammé sous EXCEL 4.0, sous forme de macros et qui fonctionne sansproblème sous Excel 97-98. Ce module permet d'obtenir la minimisation den'importe quelle fonction scalaire ou vectorielle. Encomplément,  un outil de lissage de polynome, de résolution de polynomes [racinesréelles et complexes] et destests statistiques multiples permettent d'optimiser le lissage obtenu parla méthode des moindres carrés. On termine enfin par la factorisationde matrice et la détermination des valeurs propres et des vecteurspropres de matrices.

I. Quelques exemples

1)-résolution de polynomes

Soit à trouverles racines du polynome suivant : 8x4 + 6x3+ 3x2 + x + 24 =0. [1]Les données doivent être rentrées dans une feuille de calcul EXCEL de lafaçon que vous souhaitez, par exemple :


FIGURE I

Lancez ensuite la macro POLYNOM.XLM.Un message analogue à la FIGURE II apparaît automatiquement à l'ouverture de la feuille :


FIGURE II

Vous devez entrer 2 choix ; l'unconcerne le degré du polynome, l'autre le nombre d'itérations. Pour le choix du degré du polynome,vous pouvez choisir entre 2 et 20, soit un polynome à 20 racines, ce qui doit déjà suffire pour un certainnombre de problèmes ; pour les itérations, jusqu'à 100. Nous vous conseillons de laisserinchangés les autres paramètres [tolérance, p et q, réservés aux experts]. Des messages vous invitent après validé vos choix par < OK >à entrer les nombres indiqués sur la FIGURE I ; attention ! commencez toujours par entrer les nombres, encommençant par la constante, puis de droite à gauche pour les autres. Ainsi, pour un polynome à 7degrés, vous devrez entrer 8 nombres, toujours en commençant par la constante ; s'il n'y en a pas, entrez 0.


FIGURE III

La figure III montre la saisie de laconstante dans une feuille de calcul d'Excel. Au bout d'un certain temps, indiqué par un message au bas de l'écran,les solutions des inconnues sont affichées, d'abord les valeurs réelles puis les valeurs imaginaires quand il y en a:


FIGURE IV

Dans le cas présent,deux nombres complexes opposés ont été trouvés,avec les valeurs réelles [real part] et imaginaires [imag part]. L'algorithme employé, pour ceux que cela intéresse est la méthode deSouriau. Il a été adapté d'un programme basic,sous Dos, qui a dû être compilé vers 1989.

2)-résolution d'un systèmed'équations

Soit à résoudre le système suivant :


FIGURE V

Dans le logiciel, on va entrer dans 3cellules superposées  :


 

qui conduisent à l'équation finale à résoudre : f(x.i)

=SOMME((o.1-(t.1*x.1+t.2*x.2+t.3*x.3))^2)[3]

Le logiciel intègre les 3 colonnes comme des vecteurs t.i où t.1 = [6 - x.1 - 1]T ,etc. o.1 correspond au vecteur [1 - 2 - 3]T [T pour transposition puisqu'il s'agit de vecteurs colonne]. Pour résoudre un tel système, on emploie habituellement la méthode deGauss qui consiste à transformer la matrice de gauche et la matrice centrale [celle des 3 inconnues x.1 - x.2 - x.3] en un système à matrice triangulaire supérieure que l'on saitrésoudre.
Nous résolvons ce typed'équations en employant un algorithme d'optimisation non linéaire qui nous permet, en fait, de résoudren'importe quel type d'équations. On utilise la méthode des gradients ; elle consiste à partir devaleurs de base pour chaque variable x.i [dans le cas présent, on peut partir des 3 valeurs initiales suivantes : x.1 = x.2 = x.3 = 1]. Par itérations successives, on obtient à chaque cycle la valeur de lafonction critère f(x.i) et la valeur de chaque gradient. Notre technique s'apparente donc à la méthode de Newton-Raphson.
Ces méthodes nécessitent de calculer les dérivéespartielles d'ordre 1, correspondant à chaque variable de la fonction f(x.i), soit df(x.i)/dx.i) ; dans le logiciel, les valeursexactes des dérivées partielles de 1er ordre sont approchées par les différences« à gauche » où dx.i est une très petite quantitéet on a alors :

 limit df(x.i)/dx.i = dx.i--->o[{f(x.i+dx.i)-f(x.i)}/dx.i]

Plusieurs algorithmes d'optimisationnon-linéaire sont intégrés ; le plus simple est celui de Davidon, amélioré parFletcher et Powell. Son équation s'écrit :

Hi+1= Hi + {d.dT}/{d.g} + [{-Hi.g}.{gT.Hi}]/{g.Hi.gT}

dreprésente le vecteur des dérivées partielles de 1erordre et g le vecteur gradient ; T dénote une transposition. Hiest la matrice du Hessien lors de l'itération en cours. Tous les algorithmes quasi-Newtonsont basés sur cette équation fondamentale. L'idée de base est simple ; l'approximation intiiale del'inverse du Hessien [Hi] est choisi comme la matrice identité I [les mineurs de la matrice,c'est-à-dire les éléments diagonaux- sont égaux à 1 et les autreséléments à 0]. Dans le cas du systèmede 3 équations vu plus haut, la matrice de départ est H1 (i=1) :

1 0 0
0 1 0
0 0 1

L'algorithme estrapide mais il peut diverger quand la fonction n'est pas quadratique [i.e. quand il existe plusieurs minima locaux ; cela se réalisepar exemple, lorsqu'on modélise des points où l'on cherche ladroite des moindres carrés ; il peut y avoir divergence de l'algorithmeà ce moment-là]. Nous avons utilisé un artifice de calcul pour améliorer la convergence, enréinitialisant le hessien à l'itération +1 [Hi + 1] quand legradient de f(x.i) est inférieur à une valeurdonnée, par exemple : e = 10E-05

Si nous revenonsà notre problème II, on obtient lerapport de solution suivant :



  systèmeà 3 équations non linéaires
  35351,75497
  function f{x.i}
  SUM((o.1-(t.1*x.1+t.2*x.2+t.3*x.3))^2)
  initial value of f{x.i}
  311371014
  final value of f{x.i}
  5,96641E-07
  initial {x.i} values
  100 100 100
  final {x.i} values
  0,20807096 0,236205013-0,304000404
  Hessian matrix
  0,013585042 -0,0007785750,000454966
  -0,000778575 0,0104265530,001084885
  0,000454966 0,0010848850,0061441
  algorithm: Davidon-Fletcher-Powell
  iterations
  17
  time (s)
  0
  step analysis
n° iter function  variables

1 2943027,076 40,17232052 -8,9592741 104,3647214
2 791953,9789 2,970603954 3,142058133 98,67901048
3 4,00065852 0,040803779 -0,001423736 -0,325443912
4 3,856409142 0,057693312 -0,00178754 -0,364507413
5 2,438249464 0,241395825 0,010178978 -0,336326623
6 2,380739015 0,263581578 0,013849445 -0,319340583
7 1,763450181 0,211790621 0,071547351 -0,247695362
8 1,607234572 0,155523232 0,10324585 -0,237165079
9 1,451521218 0,11153975 0,144188538 -0,232483913
10 1,281527367 0,084914116 0,194143156 -0,229975018
11 1,09912574 0,078616889 0,247876219 -0,230883067
12 0,831314522 0,100918819 0,307212118 -0,243891281
13 0,362120355 0,128880004 0,212662988 -0,278169313
14 0,307373869 0,149816345 0,186741605 -0,291766612
15 0,116041647 0,21175903 0,186686067 -0,311587583
16 0,007984108 0,221959486 0,232358237 -0,300926887
17 0,000422911 0,207773553 0,234769814 -0,302209856


Le rapport de solutionse lit ainsi : le système d'équations matricielles [figureV] conduit à analyser 1 seule équation vectorielle ;il s'agit donc d'une variante de la méthode de Raphson-Newton, àceci près que la computation de cette équation à 3inconnues est très facile par l'emploi d'algorithme type quasi-Newton[tel que l'algorithme de Davidon-Fletcher-Powell]. On débute les calculs avec, par exemple, les valeurs x.1 =x.2 = x.3 = 100 [valeur initiale def(x.i) = 311371014 pour ces 3 variables]; après itération, la valeur de f(x.i) = 0 [5,96641E-07]; la valeur finale du vecteur x.i est [x.1 = 0,20807096 | x.2 = 0,236205013| x.3 = -0,304000404] ; 17 itérations ont suffi pour obtenir cetteprécision ; l'analyse pas par pas est précisée enfin de rapport : on lit d'abord le n° de l'itération ; la valeurde f(x.i) et les valeurs en cours pour la kème itération.Les valeurs finales correspondent donc à la 3ème itération.Le programme donne également la valeur du Hessien qui donne lesdérivées partielles de second ordre. A noter que si l'onpart d'autres valeurs initiales, par exemple : x.1 = x.2 = x.3 = 1, 4 itérationssuffisent.

3)-valeurspropres et vecteurs propres d'une matrice réelle.

De nombreux problèmes dephysique conduisent à la recherche de valeurs propres et de vecteurs propres d'une matrice. Prenons le cas de la matrice A suivante :

7 -1 1 0
-2 1 0 2
0 0 4 1
3 1 0 5

La matrice est de dimension 4 x 4. Ilfaut d'abord déterminer le polynome caractéristique de la matrice ; dans notre logiciel, nousfaisons appel à la méthode de Souriau.

a)- polynomede la matrice A : x -17x2 +95x3-180x4 +25.

b)-détermination des valeurs propres de la matrice A : elles sont données par la résolution du polynome quiutilise l'algorithme deSouriau

  ROOTS OF THE POLYNOMIAL OF DEGREE 4

real part : l1= 0,15053 l2= 4,55135 l3= 5 l4= 7,29812
imag part :
coeff : 1 -17 95 -180 25

Les valeurs propresde la matrice A sont l1= 0,15053  l2 = 4,55135 l3 = 5 l4 = 7,29812

c)-détermination des vecteurs propres de la matrice A.

Pour obtenir le vecteurpropre xi correspondant à la valeur propre (approchée) li,on utilise la relation (A0 - li)xi = 0 [avecA0 matrice initiale et I, matrice identité]. Pour obtenir une solution exacte ou approchée, on donne unevaleur arbitraire à l'une des composantes du vecteur xi. On a alorsun système surdéterminé ayant Néquations, N-1 inconnues. Ce système est de la forme BX = Y et sarésolution sera obtenue de la même façon que le problème 1. On peut aussirésoudre une équation non linéaire à x.i inconnues en employant là encore uneméthode quasi-Newton

c.1 vecteur propre de l1 : on obtient la matrice intermédiaire :

6,84947-1 1 0
-2 0,849470 2
0 0 3,849471
3 1 0 4,84947

qui résulte de l'opération effectuée sur chaque mineur, pour le 1erpar exemple : 7-0,15053 = 6,84947.
A partir de là, onrésoud le système suivant. On aura alors les vecteurs propres à un facteur multiplicatif près.
=S[t.1*x.1+t.4*x.4+t.3*x.3+t.2*x.2)^2]

où t.1 estle vecteur colonne 6,84947 | -2 | 0 | 3 , t.2 : -1 | 0,84947 | 0 | 1 ; etc. Il faut àprésent résoudre cette équation de la même manière quenous l'avons fait pour l'équation3.On obtient le rapport suivant :



  1er vecteur propre
  35351,768
  function f{x.i}
 SUM((t.1*x.1+(t.4*x.4+t.3*x.3+t.2*x.2))^2)
  initial value of f{x.i}
  149,4673171
  final value of f{x.i}
  1,69408E-12
  initial {x.i} values
  1 1 1 1
  final {x.i} values
  0,112183966 0,830941486 0,062540203 -0,240746516
  Hessian matrix
  0,029888648 0,140223696 0,007552926 -0,041549715
  0,140223696 0,944632644 0,073151618 -0,258474312
  0,007552926 0,073151618 0,039505271 -0,023405137
  -0,041549715 -0,258474312 -0,023405137 0,089567145
  algorithm:Davidon-Fletcher-Powell
  iterations
  2
  time (s)
  0
  step analysis
n° iter function variables

1 12,56677325  -0,190089509 0,954867143 0,576840187 0,179733759
2 0,725077269  0,099326829 0,797007357 0,266619197 -0,310847206


On obtient donc pour le vecteur propre correspondant àl1 :
X1 = [0,112183967- 0,830941485 - 0,062540203 - -0,240746516]T
On procède dela même façon pour l2 l3et l4
Les 4 vecteurs propres de la matrice A sont :
X1 : [0,112183967- 0,830941485 - 0,062540203 - -0,240746516]T
X2 : [-0,039782124- 0,076361041- 0,173773612 - 0,09581024]T
X3 : [-0,199999998 - 0,600000007 - 0,999999996 - 1,000000016]T
X4 : [0,954211483- 0,107383414 - 0,391850293 - 1,292368482]T

4)-un problèmecomplet :

a)- résoudre le système de 8 équations suivantes
=2*x.1+2*x.3+2*x.5+2*x.7-8
=x.2+x.4+x.6+x.8+4
=-x.1+x.3-2*x.5+2
=3*x.1+x.4-7*x.7+5
=x.1-x.5
=x.5-x.6-2
=-x.1+2*x.6+x.8+4
=3*x.3-2*x.8-5 [4]

On est ramené [cf. problème 1] à résoudre 1 seuleéquation :

=(2*x.1+2*x.3+2*x.5+2*x.7-8)^2+(x.2+x.4+x.6+x.8+4)^2+(-x.1+x.3-2*x.5+2)^2+
+(3*x.1+x.4-7*x.7+5)^2+(x.1-x.5)^2+(x.5-x.6-2)^2+(-x.1+2*x.6+x.8+4)^2+(3*x.3-2*x.8-5)^2

 à 8 inconnues. Voici le rapport de solution :



  systèmede 8 équations
 function f{x.i}
(2*x.1+2*x.3+2*x.5+2*x.7-8)^2+(x.2+x.4+x.6+x.8+4)^2+(-x.1+x.3-2*x.5+2)^2+
+(3*x.1+x.4-7*x.7+5)^2+(x.1-x.5)^2+(x.5-x.6-2)^2+(-x.1+2*x.6+x.8+4)^2+(3*x.3-2*x.8-5)^2
  initial value of f{x.i}
  967354
  final value of f{x.i}
  6,58254E-06
  initial {x.i} values
  100 100 100 100 100 100100 100
  final {x.i} values
  0,998807469 -1,02260340,99876218 -0,97469318 0,99940178 -0,99923642 1,00313829 -1,00194584
Hessian matrix
  1,683056754 1,842602-0,71993 -1,63279 0,006438 1,642183 0,333563 -1,38217
  1,842601628 9,595733-0,91317 -7,81867 0,001503 0,720693 -0,57503 -0,29165
  -0,719927179 -0,913171,292321 0,692754 -0,2546 -1,35108 -0,1382 0,719879
  -1,632792186 -7,818670,692754 11,52647 0,747554 -0,9729 0,640464 -1,20338
  0,006438104 0,001503-0,2546 0,747554 0,75979 0,256394 -0,13164 0,368899
  1,642183272 0,720693-1,35108 -0,9729 0,256394 2,511358 0,362491 -1,86226
  0,333563475 -0,57503-0,1382 0,640464 -0,13164 0,362491 0,269002 -0,56623
  -1,382169129 -0,291650,719879 -1,20338 0,368899 -1,86226 -0,56623 3,328815
  algorithm:Oren
  iterations
  15
  time (s)
  2
  step analysis
n° iter function variables

1 413164,2  82,14757 89,59243 56,95299 97,19204 49,04448 79,03026 5,997464
2 89979,45  -1,53235 67,73026 5,393173 66,27368 -21,9317 34,72189 12,14047
3 12168,97  -0,58531 43,74371 17,67037 41,58835 -20,8609 -21,0396 6,463776
4 5084,238  1,153225 33,65885 -0,03625 31,48477 -4,35162 -27,066 6,201242
5 814,8489  -8,37954 10,86387 1,107174 9,94434 8,504937 -5,14366 -1,30415
6 18,05228  1,606808 0,384979 -0,84673 0,133051 0,788238 0,4622 1,207825
7 12,02114  1,735896 0,315313 -0,6864 0,05363 0,901733 0,547859 1,529921
8 0,951678  1,192703 -0,98268 0,938123 -0,7268 1,104622 -0,79859 1,04884
9 6,24E-05  0,993476 -1,13753 0,991574 -0,85165 0,997448 -0,99817 1,018292
10 4,84E-05  0,993518 -1,13755 0,990934 -0,8517 0,997912 -0,99773 1,018342
11 4,82E-05  0,993528 -1,13759 0,990849 -0,85179 0,997986 -0,99778 1,01833
12 4,81E-05  0,993555 -1,13751 0,990803 -0,85187 0,99801 -0,99768 1,018367
13 4,79E-05  0,993571 -1,13728 0,990649 -0,85202 0,998011 -0,99747 1,018336
14 4,77E-05  0,993669 -1,1368 0,99055 -0,85215 0,997937 -0,9975 1,018372
15 4,05E-05  0,994174 -1,12578 0,991238 -0,86413 0,998177 -0,99773 1,016882


Nous sommes partis avecdes valeurs de départ assez éloignées des valeursdes variables ; le résultat final est :   0,998807469-1,0226034 0,99876218 -0,97469318 0,99940178 -0,99923642 1,00313829 ; lerésultat exact est : x.1 = 1 - x.2 = -1, etc.
b)- trouverle polynome caractéristique du Hessien A
real part 0,00089| 0,59306 | 0,01259 | 0,32165 | 1,63714 | 2,85695 | 6,48152 | 19,06274
imag part
coeff 1 -30,96654391 271,1155077 -906,4295291 1253,630987 -674,0716354 119,1156054-1,493838367 0,001240131

le polynome s'écrit :

f(x) = x -30.96.x2+271.12.x3 -906.42.x4+1253.63.x5 -674.07.x6+119.12.x7 -1.49.x8+ 0.0012
les racines de ce polynome du 8ème degré sont indiquées dans lapartie real part.

5)- Un exercice de pharmacocinétique : le lissage par l'optimisation non-linéaire

En médecine, on souhaitetrès souvent étudier le devenir d'un médicament introduit dans l'organisme par voie buccale [peros] ou par voie générale [administration intra-veineuse - IV - ou sous cutanée - SC - ouintra-musculaire - IM ]. On introduit alors la notion de modèle compartimental, selon les chéma suivant :


FIGURE VI
(modèle à1 compartiment, voie IV)

C'est le modèle le plus simple qui soit. Il reflète l'administration parvoie intra-veineuse d'une certaine quantité D par voie intra-veineuse directe. Vreprésente le volume qui, en l'occurence, est le sang circulant. Lemédicament est directement éliminé dans les urines, selonune constante propre au médicament et qu'on appelle Ke.L'équation qui traduit ce mécanisme s'écrit

C(t) = D/V . e^[-Ke.t] [5]

où t est letemps pris à partir de l'instant t=0 où la susbtance estintroduite dans l'organisme et C(t) est la concentration de la substancemesurée dans le sang circulant. Celle-ci décroît defaçon exponentielle. Cette équation représente latraduction d'une équation différentielle à 1 inconnuequi s'écrit :

dx/dt = - x [6]

qui admet comme solution l'équation 5où x = Ke. Prenons d'abord un exemple simple. On prélève 7 fois du sangà un sujet chez lequel la dose D = 700 mg d'un médicament aété injecté en IV direct [on suppose qu'il s'agit d'un« bolus » c'est-à-dire que la quantité totaledu médicament est injectée en un laps de temps très court[sinon, l'injection IV s'apparenterait à une courte perfusion et lemodèle ne serait plus le même. Voici les données :
 
 

n°du prélèvement
1
2
3
4
5
6
7
temps t (heure)
0.5
1
1.5
2
4
6
8
concentrationC (µg/ml)
50.2
43.2
37.2
32
17.6
9.6
5.3
TABLEAU I

ce qui se traduit par la courbe suivante :


FIGURE VII
(temps en abscisse en heure, concentration en ordonnée enµg/ml)

Pour traiter ces données, on peut soit utiliser du papier semi-logarithmique à 3modules, ce qui prend du temps et ce qui représente des incertitudes, soit se servir d'un algorithme d'optimisation nonlinéaire. Tout le problème consiste à trouver une courbe qui « lisse » au mieux les 7points de prélèvement ; c'est ce que l'on appelle faire la recherhce de la droite des moindre carrés. Enpratique, c'est l'équation suivante qui nous servira de modèle :

S[(x.1*exp(-t.1*x.2)-o.1]^2 [7]

Il s'agit d'une équationà deux variables x.1 et x.2 où x.1 = D/V et x.2 = Ke. Connaissantla dose de médicament injecté, on peut remplacer D/V parD/x.1 ; x.1 = V.
Dans l'équation 7, 0.1 représente le vecteur des concendtrations en fonctio dutemps et t.1 correspond au vecteur des différents temps deprélévèment. Le problème consiste donc à minimiser la somme decarrés de 7- Il est temps à présent de présenter le logiciel de modélisation non-linéaire.

II. Le logiciel - taille du fichier 180 Ko

Il s'agit d'une feuille macro, au format international qui, lorsqu'elle se lance, va ajouter aumenu habituel d'EXCEL certains menus propres qui se présentent ainsià partir du menu ? d'Excel :

FIGUREVIII
(menus sous EXCEL 97)

A partir d'ici, certainesindications concernant le logiciel seront en anglais ; elles sont aisémentcompréhensibles. Le programme s'appelle Min!f et il aété développé en 1993. Il est accompagnéd'un fichier d'aide en ligne Helpminf.Le sous-menu About Minf est placédans le menu Help...et le sous-menu New est placé dans lemenu Set.

[La version actuelle du programme macro est appelée Min!f 3.0 et aété adaptée à Excel 98. J'ai conservé lelangage par macro-commandes d'Excel 4.0 parce que je n'ai pas eu le temps disponible pour leréécrire en langage Basic]

1)-Function

àEnter f
Select the cell $A$2 (R[2]C[1]) of the worksheet. Thebar formula is shown and you can enter your function.

FIGURE IX
(comment entrer des données)

[Vous voyez marqué dans la cellule $A$2 #NOM?. Dans cette celluleA2 a été entrée la formule que vousapercevez dans la barre de saisie de formule {=x.1*EXP(-x.2*t.1)}. Cette formule correspondà l'équation 5.x.1 = D/V et x.2 = ke. Remarquez que le nom de la fonction est f et que les 2 variables x.1 et x.2correspondent à ce que nous avons dit La formule est entréeavec des parentèses {...} qui traduisent sa nature vectorielle. Les deux vecteurs temps etconcentration sont entrés dans une autre partie de la feuille quel'on aperçoit en bas et qui correspond pour la 1ère cellulesupérieure gauche à $A$132. Il s'agit toujours de vecteurscolonnes. Ke est nommée k10 pour des raisons que nous examineronsplus tard. La cellule $A$2 apparaît comme #NOM? parce que les variablesx.1 et x.2 n'ont pas encore été définies ; elles vontl'être bientôt et un nombre sera afficher en lieu et placede #NOM?]

 --> How to input the function?

1)- You must enterthe dependant variables in terms of x.i e.g,

          =100*(x.2-x.1)^2 [8]
     You see that you have 2 variables, called x.1 and x.2 (x point 1 and x point 2).
2)- You must avoid the terms y.i and z.i because the program uses them to compute thepartial derivatives.

3)- If the function is vectorial (when you have data plots), you must enter your functionlike:

     =x.1*exp(-x.2*t.1) [9]
      You see that the independent variable is stored in terms of t.i, liket.1, t.2 etc. (it is often the time).

è Typeof function

Leads you to enter 4 types offunction:

[Pour résoudrel'équation 7, entrez d'abord l'option 2. Votreformule apparaîtra ainsi :
{=SOMME((o.1-(x.1*EXP(-x.2*t.1)))^2)}
L'équation se présente sous forme de deux variablesdépendantes x.1 et x.2 d'une part, et des deux variables indépendantes quisont, d'une part la concentration sous forme d'un vecteur colonne o.1 etd'autre part le temps sous forme d'un vecteur colonne t.1]

à scalar function
   example of a scalar function

    =100*(x.2-x.1)^2+(1-x.1)^2 [10]
     (ROSENBROCK FUNC)
 

 à vectorial function
    example of vectorial function

   =x.1*t.1+x.2*t.2 [11]

    wheret.1 and t.2 are 2 independent variables.

   àsum of squares
   example of a sum of squares

=sum((x.1*exp(-t.1*x.2)-o.1)^2+(x.3*exp(-t.2*x.4)-o.2)^2)[12]

    whereo.1 and o.2 are 2 sets of data that the user enter in the appropriate registers.x.1 x.2  x.3 and x.4 are the dependant variables.
 

 à weighted sum of squares
    example of a weighted sum of squares:

   =SUM(1/o.i^w*(o.1-x.1*exp(-x.2*t.1))^2) [13]

    where 1/o.1^w is the weight of the data. The most common used weights are w=0, w=1 orw=2. Other weighting schemes exist as the Extended least squares.

   à set of simultaneous linearequation
   example of a set of simultaneous equations:

                =10*(x.2-x.1^2) [14]
                =1-x.1 [15]

gives the other form of the scalar function (ROSENBROCK FUNC). You have only to put [14] in the cell $A$2 and [15]in the cell $A$3, etc.

Displays a dialog box to enter a number to select the appropriate type of function that you wants.
 You will see: put the weight w=0 or w=1 or w=2. You can enter other weighting schemes likethe Extended Least Squares but you must compute them yourself...

[Pour l'exemplede l'équation 7, choisissez 2. Nous verrons aprèsce qu'il faut penser de la pondération des valeurs. Vous aurez alorsl'équation suivante :
{=SOMME(SI(o.1=0;0;1/o.1^2*(o.1-(x.1*EXP(-x.2*t.1)))^2))}
où le terme O.1^2 est la pondération qui permet de tenir comptede la variance de certains points de la concentration ]


Save f

Will store f if youwant later to cancel the changes made to the function put in the cell $A$2


Resume f
Will resume the function stored with an older version of « Save f »
All erase

Will erase the algorithm stored, the values of the dependant variables but don't erase the function in thecell $A$2. It will erase too the changes made in MQNI.XLM and a warning informs you if you want to erase the data of a F test running.

2)- Data

Find f value
Displays a dialog box that allows youto choose:
MAX
MIN
VALUE (it can be a real or anexpression in bracket, e.g., -100 or (x.2+1))

The change in the function can be seen in the cell $A$2. If you want to force thefunction to be equal to zero, the function will be transformed with the internalfunction ABS(). You may also use the build-in functions of SUM of SQUARES(SOS) in the pharmacokinetic library. They don't appear like SOS but youcan transform them with the drive FUNCTION/TYPE OF F 



limit registers
Will store the lower and upper references of  the values of all the variables.
You must set these registers before entering the values of the constraints.

[permet d'accéder aux registres de limites des variablesdépendantes, qui sont stockées sur la feuille de calcul active]



limitsof x.i [1, ]
Will let you to choose the variable and the values of the variables for the constraints.
You will put first the lower limit (l.i) and then the upper limit (u.i). If you put onlyl.i, a warning asks you if you want to cancel.

[dans un premier temps, on choisit les variablesséparément. Dans le cas de l'exemple 7,nous avons deux variables x.1 et x.2. Nous pouvons choisir de cerner l'intervalle autour duquel noussouhaitons « trouver » la valeur de la variable dans le cas,par exemple, où il y a plusieurs minima locaux. On a alors deuxpossibilités : soit trouver une valeur telle que x.i < u.i où u.ireprésente la valeur à ne pas dépasser ; soit trouver unevaleur telle que :
u.i £x.i £ l.i où u.i est la borne inférieure et l.i est laborne supérieure de l'intervalle]



Enter x.i
Allows you to enter the number of variables and their initial (guesses) values. Displays a dialog boxthat ask you to put the number of variables and then the guesses values for each variables.

[cette boite de dialogue permet d'entrer lenombre de variables dépendantes, qui sont toujours expriméesen x.i : x.1 ; x.2 ; x.3 etc. Dans le cas de l'exemple 7,le nombre à entrer est 2.]

[une 2èmeboite de dialogue permet alors d'entrer au fur et à mesure les valeursinitiales de chaque variable dépendante x.i ; ici, par exemple x.1= D/V. On entrera la valeur 100. mais on pourrait entrer d'autres valeurs...]

<Entry of data and models>

a- Enter a scalarfunction and choose an algorithm:

 You must, at first, enter the function to be minimized in the cell $a$2 of theworksheet. For that, you can either :
  -select directly the cell and enter for instance :

   =100*(x.2-x.1^2)^2+(1-x.1)^2 [10]
(this is the ROSENBROCKFUNC)

After that, you can see NAME? in thecell $A$2 of the worksheet because you have not named the 2 variables x.1 and x.2. You must now use the drive DATA/ENTER X.I. A dialog boxallows you to enter the initial values (guesses values) of each variable and you will see then the following dialog box:

[Cette nouvelleboite de dialogue apparaît juste après que les valeurs desvariables dépendantes aient été saisies : x.1 ; x.2; ... ; x.i où i représente le nombre de variables. i = 2dans le cas de l'équation 7.Vous avez le choix entre deux types d'algorithmes très différents.La méthode quasi-Newton et la méthode de Marquardt. Une option aété ajoutée ensuite pour ceux qui ont EXCEL 4.0. En effet, onest limité par un problème de saisie de caractères sousExcel 4.0 à 255 par cellule, pour une formule. Or, en pratique, on trouve dessystèmes multi-compartimentaux qui imposent de dépasser cette valeur.Avec Excel 98, le problème n'existe pas. Les commentairesci-dessous expliquent comment faire pour que Min!f 3.0 prenne en compte deuxéquations simultanément]

It allows you tochoose between a quasi-Newton algorithm or a slight revised version of a Levenberg-Marquardt algorithm. You must take care that<Marquardt> will run only for vectorial functions.You have just to select thebutton. The option <More cell> allows you to enter a largefunction in more than 1 cell (the default cell to put the function is $A$2 of theworksheet). You can, by selecting the button, add the cell $a$3, the cell $a$4, butit will be noted that the cell $a$3 must be linked with the cell $a$2. For instance, you will enter

=100*(x.2-x.1^2)^2+$a$3

 in the cell $a$2 and then add that function in the cell $a$3:

    =(1-x.1)^2

 so that thealgorithm takes care of celle$A$3 by internal manipulation. It will be also to carefully note that the 2 cells must be independent. Afterthat, the program computes the algorithm in the appropriate cells of theworksheet.

2- Entera vectorial function - seealso the demo file -

It is easy to see that theROSENBROCK FUNC is scalar. But, in the field of biosciences and pharmacokinetics, you can have one or moreindependent variables (e.g., the time) and you always have data which you enter aslarge columns. With Min!f, you can enter your data by invoking the driveDATA/ENTER T.I that leads you in another region of the worksheet.

[Nous avons vu ce cas de figure dans l'examen du sous-menu t.i registers. Lesdonnées font référence, je le rappelle au tableauI et à la FigureIX.]

Moreover, you can enter more than one independent variable and more than one data column.After entering all the values, the program allows you to store the numberof independent variables T.I and then the number of data O.I. This is doneby invoking the drive DATA/T.I REGISTER. You can see in the C column theestimation of the optimization procedure (here, a 2 compartment open modelfor the pharmacokinetic study of a single subject after IV bolus injectionof FLUCONAZOLE).

 The model equation has the form:

 =x.1*exp(-x.2*t.1)+x.3*exp(-x.4*t.1)[16]

 so that, the objective function to be minimized has the form:

=SUM(1/IF(o.1=0;1;1/o.1^2))*[o.1-{x.1*exp(-x.2*t.1)+x.3*exp(-x.4*t.1)}]^2) [17]

 where o.1 isthe vector of the data stored in the B column and t.1 is the time storedin the A column. The conditional MACRO FUNC <IF> is used hereto preserve the objective function to be divided by zero. Note that you have also the possibility to store data with a numberof missing values (a missing value equals zero). You have also the possibility to entermore than 1 subject to fit in the columns B,C,D,...and with different numberof plots. You must nevertheless to replace o.1 with another name thatdescribes the matrix of the subjects, for instance o.a. andso, you must change in equation 17, o.a insteadof o.1.

[On a donc la possibilité d'entrer au lieu d'un vecteur colonne unematrice de données que l'on nommera, non plus o.1 mais o.a - parexemple - . Nous examinerons cette possibilitéultérieurement]



Other x.i
Delete the previous values of x.i at any time of the procedure and permit to input newvalues. Initialise also the Hessian matrix to the identity matrix I.

[Cette commande permet, à tout moment de la procédured'optimisation, de cesser les calculs et de reprendre l'analyse avec d'autres valeurs sil'on estime que le processus a divergé ou q'un minimum local aété trouvé]



Constraints...[1, 2]
It will be very important to impose some bounds to a selected variable. For instance,you want that a variable can't take negative values.
Two sort of constraints can be computed:
  x.i³0
  a³x.i³b

You have only byinvoking the bar menu DATA/CONSTRAINSTS select the n° of variablesand enter the lower (l.i) and upper (u.i) bounds.



 Enter t.i
Allows the user to enter vectorial data in a second part of the worksheet. The figureshows a set of data with 7 couple of plots. You must enter first theindependant column(s), the time for instance and then the data in the followingcolumns, in front of the t.i.

[dans l'exemple 7, voyez le TABLEAU I  qui montre les données organisées en lignes parcommodité et celles qui sont disposées à la FIGUREIX et réellement traitées]



t.i registers-see also the demo file-
Allows you to namethe independent variables t.i and the data o.i, last the calculated valuesin the column "calc".
warning: You canstore your data only if you have put numerical arguments in the cells ofthe column A (at least 2 cells!).

[dans unpremier temps, il faut nommer la ou les colonnes indépendante(s),en général le temps, en terme de t.i : ainsi, dans le casde l'exemple 7, la 1ère colonne sera nommée t.1 comme lemontre la figure suivante :

FIGUREX
(commentnommer les colonnes vecteurs des données indépendantes temporelles)

Le nombre à entrer ici sera 1, puisqu'on a une sérietemporelle dans la colonne A. C'est le vecteur colonne [0.5 - 1 - 1.5 - 2 - 4 - 6 - 8].

FIGURE XI
(comment nommer les colonnes vecteurs des donnéesindépendantes d'observations)

[le logiciela d'abord sélectionné les lignes occupées de la colonneA, l'a nommée t.1 puis a sélectionné la colonne suivanteet s'apprête à la nommer o.1. C'est donc 1 qu'il faut entrerdans la boite de dialogue puisqu'il n'y a qu'un seul vecteur colonne d'observations- je rappelle qu'il s'agit de prélévements sanguins réalisésen fonction du temps après injection IV direct d'un médicament.A chaque temps t.i correspond une observation o.i mais on peut imaginer des observations plus complexes que nous aurons l'occasion d'examiner,ainsi que de parler de la question des données manquantes]



Backto f
Returns the activecell $A$2 of the worksheet after storing the data.

3)-Set

Quasi-Newton
Build one of the Quasi-Newton algorithms.
  Needs:
 the formulain $A$2
 the definitionof the dependant variables
 the definitionof the independent variables.
 warning : runswith all types of functions (including array types).
 


[Cette nouvelle boite de dialogue apparaît juste après que lesvaleurs des variables dépendantes aient étésaisies : x.1 ; x.2 ; ... ; x.i où i représente le nombre devariables. i = 2 dans le cas de l'équation 7. Vous avez le choixentre deux types d'algorithmes très différents. La méthodequasi-Newton et la méthode de Marquardt. Une option a étéajoutée ensuite pour ceux qui ont EXCEL 4.0. En effet, on est limitépar un problème de saisie de caractères sous Excel 4.0 à255 par cellule, pour une formule. Or, en pratique, on trouve des systèmesmulti-compartimentaux qui imposent de dépasser cette valeur. AvecExcel 98, le problème n'existe pas. Les commentaires ci-dessousexpliquent comment faire pour que Min!f 3.0 prenne en compte deux équationssimultanément]

è algorithmes quasi-Newton

Minf 3.0 uses onlyof gradient methods which need function values and gradient values at eachiteration cycle (that include the Raphson-Newton algorithm, the Levenberg-Marquardtalgorithm and all the quasi-Newton methods). All of these methods need the first partial derivatives of the function (df(x.i)/dx.i) withrespect to each parameter x.i. The direct search methods like the Simplex ofNelder and Mead requires too expansive time to be sufficient in allcircumstances. In Minf 3.0, the analytic values of the derivatives are approached by"left" first differences, so that:

  limit
 df(x.i)/dx.i=dx.i--->o[{f(x.i+dx.i)-f(x.i)}/dx.i][18]
 

  --->Broyden's family

You have here 3 algorithmsderived from a formula due to Broyden. It appears first in the late 1960under the form:

               Hi+1 = Hi - Hi . yi . ziT + pi . ti . qiT [19]

where T denotes atransposition. This equation includes as special cases the generalised secant method of solving non-linear simultaneous equations. The 3formula are:

1)- the RANKONE formula:

               Hi+1 = Hi + {d-H.g}.{d-H.g}T/{d-H.g.gT} [20]

It has the propertythat it is not necessary to make a full linear search on every iteration.

2)- the BFGSformula (for Broyden-Fletcher-Goldfarb-Shanno)

    Hi+1 =Hi + +{d.dT}/{d.g}.{1+{g.{H.g}}/{d.g}}-{{d.g.Hi}+{Hi.g.dT}/{d.g}} [21]

It is one of thebest quasi-Newton algorithms and it runs especially well with the exponentialfunctions. We find this algorithm later in another form that is speedy.

3)-the Greenstadt-Goldfarb algorithm

Hi+1 = Hi + 1/{g.M.g}.[{d.gT.M} + {M.g.dT} - {Hi.g.gT.M} - {M.g.gT.Hi} -{{g.d}-{H.g}}/{g.M.g}.{M.g.gT.M}] [22)

where M=W^-1(One can take W=I (the identity matrix)

  ---> the Oren-Spedicato's algorithm

  It is a verypowerful algorithm due to Oren and Spedicato. It runs especially well whenyou have a large number of variables and when the initial guesses valuesof the dependant variables are far away from the "true" values. It takesthe form:

            Hi+1 = [Hi-{Hi.g.gT.Hi}/{gT.Hi.g}+t.{v.vT}].gama+{d.dT}/{dT.g} [23]

       with:                  v = {gT.Hi.g}^0,5.[d/{dT.g}-{Hi.d}/{gT.Hi.g} [24]

        and:             gama = {dT.g}/{gT.Hi.g}.(1-p)+{gT.d}/{gT.Hi.g}.p [25]

It requires the adjustment of the 2 parameters pand t.
On can take thevalues p=1 and t=0 but other values can be easily computed. Oren has triedthe following values:
p=t=0.The values t=0and p=1 refer to the DFP algorithm (see further).

Brodlie has pointed out that on canchoose other fine adjustment, like:

                   t = 1/[1+{{gT.H^-1.g}.{dT.H.d}/{dT.g}^2}^0,5] [26]

with:                    gama =[{gT.H^-1.g}/{dT.H.d}]^0,5 [27]

   --->the DFPalgorithm

It is known as the first quasi-Newton method and is due to Davidon. The algorithm has beenimproved by Fletcher and Powell. It has the form:

               Hi+1 = Hi + {d.dT}/{d.g} + [{-Hi.g}.{gT.Hi}]/{g.Hi.gT} [28]

The initial approximationof the inverse of the Hessian matrix is usually taken as the identity matrixI. The algorithm is speedy and runs faster than other else but it can divergewhen the function is highly non quadratic. Moreover, the speed of the convergencecan be improved if Hi+1 is resettled when the gradient of f(x.i) is lowerthan a certain value, for instance e= 10^-5 .

  ---> the"basic" Broyden's algorithm

Refers to one ofthe most powerful of the quasi-Newton algorithms.

It has the form :

  Hi+1 =Hi + +{d.dT}/{d.g}.{1+{g.{H.g}}/{d.g}}-{{d.g.Hi}+{Hi.g.dT}/{d.g}} [29]

  ---> the Biggs'salgorithm

It is another version of the Broyden's original algorithm.

Hi+1 = Hi + +{d.dT}/{d.g}.{1+{g.{H.g}}/{d.g}}-{{d.g.Hi}+{Hi.g.dT}/{d.g}} [30]

In that formula "1" is replaced by, 1/rwith:

      r= {dT.g}/[4.{dT.g*}+2.{dT.g}-6.{f*-f}] [31]

where g* is the gradientof f(z.i) and f* is the value of f(z.i).
I seems to run fasterthan the Broyden's formula when the function is highly non quadratic, butit is slower.

---> the Levenberg-Marquardtalgorithm

  It is a method that increases each minor of the Jacobian matrix, so that the Hessianmatrix becomes:

    G=(J+M.MT). [32]

 This methodis closed to the classical steepest-descent when J is great (J>1) and tothe Raphson-Newton method when J is small (J<1).



Morethan one cell

More than 1 cell...
Microsoft® EXCEL 4.0 can't enter more than 255 characters in a single cell. This driveallows you to enter a formula in the cell $A$2, $A$3, $A$4 ... so that you canenter a formula with more than 1025 characters. The only limitation is that the intermediate formulas in the cells must be independent. Theoption <More cell> allows you to enter a large function in morethan 1 cell (the default cell to put the function is $A$2 of the worksheet). Youcan, by selecting the button, add the cell $a$3, the cell $a$4, but it willbe noted that the cell $a$3 must be linked with the cell $a$2. For instance,you will enter

=100*(x.2-x.1^2)^2+$a$3

 in the cell $a$2 and then add that function in the cell $a$3:

    =(1-x.1)^2

 so that the algorithm takes care of celle$A$3 by internal manipulation. It will be also tocarefully note that the 2 cells must be independent. After that, the program computes the algorithm in the appropriate cells of theworksheet.

[Cette limitationn'existe plus sous Excel 97 et 98. Notez qu'il faut remplacer sous EXCEL97 $A$3, etc. par L3C1dans ce que nous disons ci-dessous]

     Example 1:
            you can enter the formula =100*(x.2-x.1^2)^2+(1-x.1)^2 (ROSENBROCKFUNC) in the cell $A$1.

You can also enterthis formula like this:
 in $A$2=100*(x.2-x.1^2)^2+$A$3
 in $A$3 =(1-x.1)^2

     Example 2:
             you can enter 2 sum of squares like this:=sum((o.1-x.1*exp(-x.2*t.1))^2+(o.2-x.1*(exp(-x.2*t.1)-exp(-x.3*t.1)))^2)
in the cell $A$2or like this:
 in $A$2=sum((o.1-x.1*exp(-x.2*t.1))^2)+$A$3
 in $A$3=sum((o.2-x.1*(exp(-x.2*t.1)-exp(-x.3*t.1)))^2)

    Example 3:
  in $A$2=sum((o.1-x.1*exp(-x.2*t.1))^2)+$A$3

 in $A$3 =sum((o.2-x.1*(exp(-x.2*t.1)-exp(-x.3*t.1)))^2)+a7
  in $A$4 =sum((o.3-x.1*(exp(-x.2*t.1)-exp(-x.3*t.1)))^2)
Note carefully that the cell $A$4 is linked with $A$3 by adding it the term a7. 3 cellsmust be sufficient in all cases (it yields you with a complete function of3000 characters!).

The drive 'More than1 cell...' will compute the first partial derivatives of the formula in the cell $A$3 or $A$3 and $A$4 and add them automatically to the cell$A$2.



New

At start-up, a new worksheet is automatically opened. But, it will be desirable for you,perhaps, to have a new worksheet to input another model equation or other data.This worksheet is automatically named as "worksheet2".


4)- Find
 

Iteratewith Q-N

- Begins the iterations with a quasi-Newton algorithm.
- Requires the setting of a quasi-Newton algorithm
- Shows a message in the state bar
- Will be shaded off if not needed

- The message hasthe form:
< f=... remains...% to minimize on iter n° ... × remains t= ... × >



Iterate with L-M

- Begins the iterations with a version of the Levenberg-Marquardt algorithm
- Requires the setting of the algorithm

- Only works withvectorial functions
- Shows a messagein the state bar
- Will be shadedoff if not needed



ResetHessian

Will reinitialisethe Hessian matrix : it is the matrix formed by the second partial derivativesof the dependant variables. This matrix is approximated with a quasi-Newtonalgorithm. When the iterative procedure runs, it can occur that, at a certaintime, the Hessian matrix becomes singular. In this special case, the matrixis not definite positive and the algorithm fails to minimize the objectivefunction. It appears especially when the function is highly non quadratic(for instance when you have data with many "noise"). When the Hessian isrestarted, you don't loose the actual values of the  dependant variables. 



EXCEL's solver

The Excel's solver has been improved between version 3.0 and 4.0 of Microsoft EXCEL. Itseems that there is no change with EXCEL 5.0 and higher versions. If you wantto use the solver of EXCEL 4.0, you have to run the command <Solver>in tne <Tool> menu item.

Algorithmeet méthodes utilisés par le Solveur

Le Solveur de Microsoft Excel utilise le code d'optimisation non linéaireGeneralized Reduced Gradient (GRG2) mis au point aux États-Unis par Leon Lasdon,University of Texas (Austin) et Allan Waren, Cleveland State University.
Les problèmes linéaires et de nombres entiers utilisent laméthode simplex, avec des bornes sur les variables, ainsi que la méthodebranch-and-boundmise en œuvre par John Watson et Dan Fylstra, Frontline Systems,Inc. Pour plus d'informations sur le processus de résolution interneutilisé par le Solveur, contactez :

Frontline Systems,Inc.
P.O. Box 4288
Incline Village, NV 89450-4288
(702) 831-0300
Site www : http://www.frontsys.com
Adresseélectronique : info@frontsys.com

Certaines partiesdu code du programme Solveur Microsoft Excel sont sous copyright 1990, 1991 et 1992 de Frontline Systems, Inc. D'autres parties sont souscopyright 1989 de Optimal Methods, Inc.


5)- Options

 
Preferences

Allows you to chooseamong many options in the following dialog box.
The user can chooseall the parameters of the optimization procedure, that is:
 the time allocatedto the search
 the numberof iterations (100 is an usual value...)
 the accuracyof the search [You can enter any value. The iterative procedure will stop when the objectivefunction is below the accuracy. Warning: be careful to put a value <= tothe d accuracy. If not, none progress can be made under the value of d.]

 the kind of algorithm
 the automated resetting of the Hessian matrix [
 the automated storage of the iterations
 the accuracy of the first partial derivatives

 the adjustmentof special parameters for certain kind of algorithm [--->Parameters

   b
Youcan choose among
0---> RANK ONE FORMULA
1--->BFGS (2nd version)
2---> GREENSTADT-GOLDFARB

   m
m=0leads with ß= 0
m=1 ,,      ,,   ß= 1
m=2  ,,     ,,   ß= 2
 
   p and t
 Onlyused for tuning the Oren's algorithm.
 It requires the adjustment of the 2 parameters p and t.
Oncan take the values p=1 and t=0 but other values can be easily computed.Oren has tried the following values:

p=t=0. The values t=0 and p=1 refer to the DFP algorithm (see further).
Brodliehas pointed out that on can choose other fine adjustment, like:

                   t = 1/[1+{{gT.H^-1.g}.{dT.H.d}/{dT.g}^2}^0,5]

with:                    gama =[{gT.H^-1.g}/{dT.H.d}]^0,5]

 the access to the library menu



  You can here choose the greatest time and the number of iterationswarranted to search the optimal solution. Then, the accuracy. You can alsocompute the quasi-Newton algorithm among 10 different versions. the most simpleis the DFP (Davidon-Fletcher-Powell), the strongest is the Oren-Spedicato(self-scaling) algorithm that you can especially use when the initial guessesvalues are far away from the optimum (but not too far !!...). You will find also the "basic" Broyden'salgorithm and a slight revised version due to Biggs.

The parameters are used to tune some versions:
  -If you use <OREN>, you can rule pand t (the optimal and default values are p=1and t=0) and you can enter any values (that is, you can generate an infinityof different algorithms !!) and you can, instead of numbers, enter arrayvalues or formula for the parameter t.
   -If you use the <BROYDEN'S FAMILY>,you must rule the parameter b.

 b=0yields the RANK ONE algorithm
 b=1gives the BFGS(Broyden-Fletcher-Goldfarb-Shanno) algorithm
 b=2 gives you the GG(Greenstadt-Goldfarb algorithm) but, here, you must put for m the value m=2(any other value gives you the DFPalgorithm).
 The<Options> check boxes allows you:

-To reset the Hessian matrix (or its inverse)when the procedure of optimization makes only a very little progress fromone iteration to the other (that can improves the speed of the DFP algorithm);
-Tostore the result of each iteration (a step analysis will be provided further in a REPORT FILE).

 So, you see that after entering the functionin the cell $A$2 of the worksheet, you have 3 ways to store the algorithm:
 -Automatically,by clicking on the <OK> button in the 1st dialog box
 -Or,click the <CANCEL> button. This is a very interesting option because, if the algorithm is not stored,you can therefore:

-Invoke the drive OPTION/PREFERENCE tochoose another quasi-Newton version;
-Invoke the EXCEL's solverby the drive SELECTION/SOLVER to compare Min!f 3.0 to the solver;-Compute thealgorithm by invoking the drive SET/QUASI-NEWTON


Variable's location

Allows the user to dispose the variables in row or in column. It will be desirable todispose them in columns when the number is > 10.



Try other algorithm

Sometimes, an algorithm fails to minimize a criteria function and locates only what is said a"local minimum", instead of the global minimum. Therefore, it will bedesirable to try another algorithm. This drive allows you to build and store inthe worksheet another quasi-Newton algorithm with or not resetting theHessian matrix. It leads you with the dialog boxe "preferences" to choose analgorithm.



Report

Il peut être consulté après la procédured'itérations et conduit aux résultats suivants :

  5/4/2001
  functionf{x.i}
 SUM(IF(o.1=0,0,1/o.1^2*(o.1-(x.1*EXP(-x.2*t.1)))^2))
  initial value of f{x.i}
  6,383601239
 final value of f{x.i}
  2,45507E-05
 initial {x.i} values
  101
 final {x.i} values
  58,3251576 0,30004356
  ± sdof {x.i}
  0,0859504280,000421776
  +/-IC(0.95)
  0,0749131960,000367614
  Hessian matrix
  524,3555024 2,129846055
  2,129846055 0,010231755

 algorithm: Oren
  iterations
  17
  time(s)
  5
  step analysis
n° iter function variables

1 6,259610581  10,01216124 0,852050961
2 6,110807034  10,02637058 0,722459693
3 5,841384387  10,047522 0,566685881
4 5,635595077  10,06004976 0,486759578
5 5,255962876  10,07800412 0,384681454
6 4,616966724  10,09875013 0,275691252
7
8 2,729033064 10,12352373 0,043414566
9 2,723683747 10,12386187 0,049393825
10 2,695299941 10,36484929 0,044983264
11 2,460816614 14,369503 0,054059626
12 1,001475091 26,53958431 0,182137108
13 0,499217898 42,54392882 0,298571466
14 0,072075292 49,96772067 0,262780908
15 0,00353315 57,04156764 0,300161459
16 2,97458E-05 58,38699562 0,30037289
17 2,45548E-05 58,32663744 0,300043988

After the end of an iteration procedure, you can make a full report. It appears:
 the copyright
 the name ofthe user
 the name ofthe experiment
 a text formof the criteria function
 the initialvalue of the function
 the finalvalue of the functions
 the finalvalue of the variable
 the initialvalues of the variables
 the finalvalues of the variables
 the standarddeviations (SD) of the variables with their confidence interval at 95% or 99%, if needed (they don't appear if you have a scalar function)

 the CV (standardised% of variation of the variables)
 the name ofthe algorithm
 the numberof iterations to reach the minimum
 the elapsedtime
 the step analysis


Graphs

 After the procedure ofoptimization, you can see a graph with the function as a text and the data plots surimposed with the curve (semi-log plots) like hereunder. Amessage will ask you how many number of subjects you have...You can make that by invoking the drive OPTION/GRAPH (but you have to reactivate this drive after erasing the algorithmby the drive DATA/T.I REGISTER).


FIGURE XII
(graphecorrespondant aux données du fichierdemo)


Stats

You can make statistical tests and assumption about the fitting curve by invoking the drive OPTIONS/STAT.The following dialog box appears:

[Vous pouvez réaliser uncertain nombre de tests statistiques de façon àvérifier si votre modèle se rapproche de la «réalité ». En fonction du facteur de pondération - weighting factor =0, 1 ou 2, vous avez d'abord accès au test des résidus- residuals - ]

èThe <residuals>test allows you to see the mean and standard deviation (SD) between your curve and the plots.


FIGURE XIII
(test des résidus)

[La figureXIII montre les valeurs résiduelles entre les données observéeset le modèle. 4 paramètres sont accessibles : la moyennem, l'écart-type ± sd, le coefficient de corrélationr, et le nombre de degrés de liberté, df - ddl -]

 èThe <run test> allows you to seeif there are too many plots + or - from the curve. You must consult special tables to see if the Z test is significant.


FIGURE XIV
(runtest)

[Ce test permet de voir si l'onobserve « trop » de points au-dessus ou au-dessous d'une moyenneramrenée à 0. Ici, le nombre de runs nécessite l'emploid'une table spéciale. On peut consulter Tables for testing randomness ofgrouping in a sequence of alternatives, Annals of Mathematical Statistics, 14,1943, 66-87. Dans le cas présent, nous avons 7 runs avec unevaleur Z = 2.6 qui est non significative, lue sur la table citée]

 èThe <Akaike'scriteria> (AIC) allows you to choose between models (the best is the smaller quantity of AIC)

[La valeur du critère d'Akaike doit être la plus petitepossible. Ici, nous avons, pour un facteur de pondération w = 2, une AIC =-28.27 correspondant à une somme de carrésrésiduels ss (ou sos)= 2.10E-5 ± 10E-5 d'écart-type. En voici plus sur le crièrede Akaike pour ceux que cela intéresse]

Akaike's criterion
It is anestimate minimum information theoretical criterion (AIC) which is designedfor the purpose of statistical identification. When there are several competingmodels the MAICE is defined by the model and the maximum likelihood estimatesof the parameters (i.e., the dependant variables) which give the minimumof AIC defined by:

           AIC = -2.log(f(t.i,x.i)) + 2.np [18]

where f(t.i,x.i) is the likelihood function (like a weighted sum of squares) and np isthe number of dependant variables. Hence, using this criterion, the modelwith the smallest value of AIC has to be chosen.

èThe <SD>computes the standard deviations of the parameters, including CV% and confidence interval (95% and 99%)

[Il peut êtretrès important de connaître la variabilité de certaines variables etle degré de confiance qu'on peut leur accorder. Cet écart s'exprimeen % de la valeur estimée pour chaque x.i. Si vousdésirez en savoir plus, lisez la suite]

±SD of {x.i}            ---> see
Compute the standard deviations of the parameters, using the inverse of the Hessian matrix (the Fisher's matrix of information) which is thematrix of the second partial derivatives. Gives also the confidence interval at 95% or 99% of the values of the parameters, with:

               SD = (ss/df.a^ii)^0,5

where ss is a (un)weighted sum of squares, a^ii is the entry for the ithdiagonal element in the matrix A^-1 and dfis the degrees of freedom.

A useful way of examining aSD is to have it expressed as a percent coefficient of variation (%CV), with:

               %CV = SD/qi.100

A confidence interval (CI) for a parameter may be calculated, but this may be regarded as onlyapproximate owing to the approximate nature of the SD. Such a CI is a measure of the precision of a parameter estimate for the single studyonly. It may not be used to predict future parameter estimates, even for a same subject. We compute the CI with the Student t statistic,with:

               qi ± CI, whereCI = (t(a,df).SD)

where a is the probability level (Tables are build-in in Min 3.0).
 
 

 èThe <Ftest> allows you to choose between 4 models (you must consult special tables for the F test)

[Le test F permet de comparer un modèle à un autre. Dansle cas de l'équation 7 , par exemple, on peut avoir besoin de comparerla sos d'un modèle à 1 compartiment avec la sos d'unmodèle à 2 compartiments par voie IV direct]

[Come vousle voyez, vous avez la possibilité de comparer 4 modèlesentre eux. Les valeurs sont stockées dans le rapport de tests quel'on verra bientôt. Pour ceux qui souhaitent en savoir plus :]

F test
To test whether or not the weighted sums of squared [sos] deviationshave been sufficiently reduced to justify fitting with additional parameters,the F ratio test may be used:

            F = [SS1-SS2]/SS1.df1/{df2-df1}

where SS2 is the weighted sums of squared deviations obtained with the 2nd set of parameters and SS1is the weighted sums of squared deviations obtained with the 1stset of parameters; df is degreesof freedom and is equal to the number of data points used to fit the curve(s)minus the number of parameters fitted (with the condition df2>df1).

The calculated F may be compared to the critical value derived from a tables withnumerator being (df2-df1) degrees of freedom and denominator has df 1 degrees offreedom at 5% level of significance. If the calculated F value is less than the value from the table (not provided in Min 3.0), it may beconcluded than the weighted sums of squared deviations are not significantlydifferent. As in the t test (see below), the 5% level of significance is adopted.
 
 

èThe <t test> yields to compare 2values of parameters (by entering their values and their SD).

[le test t de Student-Fisher permet de comparerdeux échantillons de données indépendantes]

ttest
Allows to compare the parameters. Frequently, it is desirable tocompare values for a given parameter calculated from 2 different experiments. The experimental protocol for example may provideparameter values determined for a single subject on 2 separate occasions or for 2 different subjects. An appropriate t statistic maybe used to test for statistical differences, with:

          t=ABS[{qi1-qi2}/{SDi1^2+SDi2^2}]

where qi1is the computer-estimated ith parameter in study 1 and qi2is the computer-estimated ithfrom the study 2. SDi1and SDi2 are thestandard deviations of the ith parameter in the study1 and 2 respectively.

A null hypothesis established qi1= qi2. The t statisticmay then be compared to a value of t determined from a statistics table (2 tail, p =0,05, df+_plots-np1-np2 where _plots is the number of datapoints, np is the number of parameter in each study 1 and 2).
Warning: the application of the t test assumes that parameter estimates are normally distributed.

è Rapport de tests statistiques
 Il peut être consulté après avoir pratiqué lestests ci-dessus et il s'offre sous la forme d'une feuille de calcul :


TABLEAUII
(statistiques)

[Ce tableau résume les résultatsde tous les tests statistiques que nous venons de voir, appliquéau cas de l'équation 7 pour les donnéesdu tableau I -]

-The <Area under curve> invokesanother dialog box:

[cette boite de dialogue estdédiée à l'étude en pharmacocinétique d'unmédicament. Elle permet d'avoir accès aux micro-constantes de laconfiguration compartimentale ; à l'aire sous la courbe - AUC - auxvolumes de distributions et enfin à la modélisation del'administration chronique. mais je n'ai pas eu le temps nécessaire pourdévelopper l'estimation bayesienne pour le dosage d'un médicament enroutine. Il s'agit donc essentiellement d'un document didactique. Examinons doncles différentes options)

Rate constants : donneaccès à une feuille de calcul où l'on peut calculer les paramètres pharmacocinétiquesd'une substance :


TABLEAUII
(microet macro constantes d'une configuration compartimentale - voir fichierdemo -)


Dosage regimen


TABLEAUIII
(modulede simulation)

Parameters
àYou must enter here the parametersof your model. If you have a model with oral administration, you must enter avalue for the ka constant (absorption rate-constant). If you have 1compartment, you enter a unique value for a1; if you have 2 compartments, you mustenter a value for a1, a2 and k21; if you have a 3 compartment model, you willprovide the values of a1,a2,a3, k21 and k31. The Vd (volume of distribution)must allways be provided.

Models
à You must enter in the dr column the numberof dosage regimen, in terms of series 1 1 1 1 (for instance, here you have4 dosage regimen.
à You must put on the left column of the ivsimulation  the doses; any dose can be provided (including inequal doses). You must put in theright column the time of administration. Note that you can have a dose equal to 0 if you want to miss a dose.
àYou must put on the left column of the perf simulationthe  the doses; any dose can be provided (including inequal doses).Then you must enter the start time of the infusion and the end time.
à You must put on the left column of the per os [oral] simulation the doses; any dose can be provided (including inequal doses). You mustput in the right column the time of administration. Note that you can havea dose equal to 0 if you want to miss a dose.

Timing
à You must enter a time value for the graph of the dosage regimen. Thefirst value must be allways 0 and the t end value must be higher than thelast time of drug administration. You can enter any value for the periodtime.

Running data
à set parameter : Will display the actual scheme of dosage regimen andthe errors.
àerase data : will erase the data stored actually.
à iv : Press the iv button to run an iv dosage regimenadministration.Note that if you have a sum of iv and oral and perf, the concentrations areautomatically summed by the program (including loading doses).
à per os : press the peros button when you have an oral dosageregimenNote that if you have a sum of iv and oral and perf, the concentrations areautomatically summed by the program (including loading doses).
à perf : Press the perf button to run an infusion dosage regimen.Notethat if you have a sum of iv and oral and perf, the concentrations areautomatically summed by the program (including loading doses).
àgraph : will compute the following picture :

FIGUREXV
(graphof simulation - see demo file- )


6)- Help...

Libraries

-select in the bar menu the drive<Libraries> so that the following dialog box appears :

[Cette boîtede dialogue permet d'avoir accès aux librairies de fonctions intégrées: un certain nombre de fonctions calaires non-linéaires, réputées« diffciles à résoudre » et surtout les fonctionsintégrées de la librairie de pharmaccinétique. Ilsuffit de cliquer sur le bouton Set Equation pour que la fonction sélectionnéeapparaisse dans la cellule $A$2 de la feuille de calcul active. Il suffitd'appuyer sur le bouton Set the PharmFunc pour que la fonction vectorielle- qui correspond au mini-descriptif que vous voyez ci-dessus - apparaisseentre {} dans la cellule $A$2. Ici, par exemple, c'est le modèlecorrespondant à l'équation 7qui est sélectionné. Il s'agit de l'équation correspondant à unmodèle à 1 compartiment après injection IV direct d'unesubstance et les variables sont x.1 = s, s pour slope et x.2 = i, i pourintercept. en effet, pour un modèle mono-compartimental, si ontravaille avec du papier semi-logarithmique, on trouvera s qui correspond às = ln2/T½= Ke. T½ est le temps de demi-viede la substance injectée. La valeur de s correspond à laconstante d'élimination Ke, aussi appelée K10 pour exprimer que la substance va du compartiment 1 - le sang circulant- à l'extérieur, par exemple, dans les urines. Mais ceciest cas idéalisé, car dans dans de nombreux autres exemples,il peut y avoir un cycle entéro-hépatique, une réabsorptiontubulaire par le rein, etc.]

You can see the on-line help with the items to be selected, then a personal library to storeyour own functions and then the build-in library of pharmacokineticfunctions. You see that the ROSENBROCKFUNC is already selected : you have just to click on the button <Set equation> tostore it in the cell $A$2 of the worksheet. <Add function> allows youto store other functions of your own (more than 100 functions). <Erasefunction> will erase the selected function. You can only select a pharmacokineticfunction in the build-in library and then store it in the cell $A$2 of theworksheet by clicking on <Set the PharmFunc>.

Pharmacokinetic functions

It is a build-inlibrary. You can only select the function to enter in the cell $A$2 (and$A$3) in the active worksheet.
 You will seehereunder the listing of the model equations (s/i is slopes/intercepts),micro (means micro rate-constants, like k12, k21 and so on); all (means both determination of the macro and micro rate-constants)
 One of the major interest of Minf 3.0 is the possibility of taking care of themicro rate-constants which can be taken as contrainsts for determination ofthe macro rate-constants):

PharmFuncnames of the variables stored in cell $a$2 stored in cell $a$3
1> I comp iv (s/i)x1:D/v x2:k10 x.1*EXP(-x.2*t.1)
2> I comp iv (Cl/V)x1:v x2:cl  div/x.1*EXP(-x.2/x.1*t.1)
3>II comp iv (s/i) x.1, x.3: intercepts x.2,x.4 slopes x.1*EXP(-x.2*t.1)+x.3*EXP(-x.4*t.1)
4>II comp iv (micro) x1:Vd x2:k21 x3:a1 x4:a2div/x.1*((x.2-x.3)/(x.4-x.3)*EXP(-x.3*t.1)+(x.2-x.4)/(x.3-x.4)*EXP(-x.4*t.1))
5> II comp iv(all) x3:a1 x4:a2 x5:k10 x6:k12 x7:v2 x8:AUC x9:cl (x.3*x.4/x.2-x.5)^2+((x.3+x.4-x.5-x.2)-x.6)^2+(x.1*x.6/x.2-x.7)^2+(x.8-div/x.1*(1/x.3+1/x.4))^2+(x.9-x.1*x.5)^2
6> III comp iv(s/i) x1,x3,x5: intercepts x2,x4,x6: slopes x.1*EXP(-x.2*t.1)+x.3*EXP(-x.4*t.1)+x.5*EXP(-x.6*t.1)
7> III comp iv(micro) div: dose x1:v1 x2:k21 x3:a1 x4:a2 x5:a3 x6:k31div/x.1*((x.2-x.3)*(x.6-x.3)/((x.3-x.5)*(x.3-x.4))*EXP(-x.3*t.1)+(x.2-x.4)*(x.6-x.4)/((x.4-x.3)*(x.4-x.5))*EXP(-x.4*t.1)+(x.2-x.5)*(x.6-x.5)/((x.5-x.3)*(x.5-x.4))*EXP(-x.5*t.1))
8>III comp iv (all)x1:v1 x2:k21 x3:a1 x4:a2 x5:a3 x6:k31 x7:k12 x8:k10 x9:k13 x10:v2 x11:v3x12:AUC (x.3*x.4*x.5/(x.2*x.6)-x.7)^2+((x.3*x.4+x.4*x.5+x.3*x.5-x.2*x.6-x.6*x.7-x.2*x.9-x.2*x.7)/x.6-x.8)^2+((x.3+x.4+x.5-x.8-x.2-x.6)-x.9)^2+(x.1*x.8/x.2-x.10)^2+(x.1*x.9/x.6-x.11)^2+(x.12-div/x.1*(1/x.3+1/x.4+1/x.5))^2
9> I comp oral(s/i) x1:a1 x2:ka x3:intercept x.3*(EXP(-x.1*t.1)-EXP(-x.2*t.1))
10> I comp oral(Cl/V) x1:v1 x2:Cl x3:v1 x4:f dpo*x.3*x.4/(x.1*(x.3-x.2/x.1))*(exp(-x.2/x.1*t.1)-exp(-x.3*t.1))
11> II comp oral(s/i) x1,x3: intercepts x2:a1 x4:a2 x5:ka x.1*EXP(-x.2*t.1)+x.3*EXP(-x.4*t.1)-(x.1+x.3)*EXP(-x.5*t.1)
12> II comp oral(micro) dpo: dose x1: Vd x2:k21 x3: a1 x4: a2 x5: ka x6: f (Don't forget to puta constraint for f (0<f<1)) dpo*x.6*x.5/x.1*((x.2-x.3)/((x.5-x.3)*(x.4-x.3))*(EXP(-x.3*t.1)-EXP(-x.5*t.1))+(x.2-x.4)/((x.5-x.4)*(x.3-x.4))*(EXP(-x.4*t.1)-EXP(-x.5*t.1)))
13> II comp oral(all) x1: Vd x2:k21 x3: a1 x4: a2 x5: ka x6: f (Don't forget to put aconstraint for f (0<f<1)) x7: k10 x8: k12 x9: V2 x10: AUC x11: Cl(x.3*x.4/x.2-x.7)^2+((x.3+x.4-x.7-x.2)-x.8)^2+(x.1*x.8/x.2-x.9)^2+(x.10-dpo*x.5*x.6/x.1*(1/(x.5-x.3)*(1/x.3-1/x.5)+1/(x.5-x.4)*(1/x.4-1/x.5)))^2+(x.11-x.1*x.7)^2
14>III comp oral (s/i) x1 x3 x5:intercepts/x2 x4 x6: slopes/x7: ka x.1*EXP(-x.2*t.1)+x.3*EXP(-x.4*t.1)+x.5*EXP(-x.6*t.1)-(x.1+x.3+x.5)*EXP(-x.7*t.1)
15> III comporal (micro) x1: Vd x2:k21 x3 x4 x5: intercepts x6: k31 x7: ka x8: f (Take care that0<f<1) dpo*x.8*x.7/x.1*((x.2-x.3)*(x.6-x.3)/((x.7-x.3)*(x.3-x.5)*(x.3-x.4))*(EXP(-x.3*t.1)-EXP(-x.7*t.1))+(x.2-x.4)*(x.6-x.4)/((x.7-x.4)*(x.4-x.3)*(x.4-x.5))*(EXP(-x.4*t.1)-EXP(-x.7*t.1)))dpo*x.8*x.7/x.1*((x.2-x.5)*(x.6-x.5)/((x.7-x.6)*(x.5-x.3)*(x.5-x.4))*(EXP(-x.5*t.1)-EXP(-x.7*t.1)))
16>III comp oral (all)x1: Vd x2:k21 x3 x4 x5: intercepts x6: k31 x7: ka x8: f (Take care that 0<f<1) x9: k10 x10:k12 x11: k13 x12: V2 x13: V3 (x.3*x.4*x.5/(x.2*x.6)-x.9)^2+((x.3*x.4+x.4*x.5+x.3*x.5-x.2*x.6-x.6*x.9-x.2*x.11-x.2*x.9)/x.6-x.10)^2+((x.3+x.4+x.5-x.10-x.2-x.6)-x.11)^2+(x.1*x.8/x.2-x.12)^2+(x.1*x.9/x.6-x.13)^2
17>I comp infusion (s/i) x1: intercept x2: slopex.1*SI(t.1<it;(1-EXP(-x.2*t.1));(EXP(x.2*it)-1)*EXP(-x.2*t.1))
18>I comp infusion (Cl/V)dpf: dose it: infusion time x1: Cl x2: Vd  dpf/(it*x.2)*SI(t.1<it;(1-EXP(-x.2/x.1*t.1));(EXP(x.2/x.1*it)-1)*EXP(-x.2/x.1*t.1))
19> II comp infusion(s/i) x1 x3 Macro coefficients x2 x4: slopes1/it*SI(t.1<it;(x.1/x.2*(1-EXP(-x.2*t.1))+x.3/x.4*(1-EXP(-x.4*t.1)));(x.1/x.2*(EXP(x.2*it)-1)*EXP(-x.2*t.1)+x.3/x.4*(EXP(x.4*it)-1)*EXP(-x.4*t.1)))
20>II comp infusion (micro)dpf: dose it: infusion time x1: Vd x2: k21 x3: a1 x4: a2 dpf/(x.1*it)*(1/x.3*(x.2-x.3)/(x.4-x.3)*SI(t.1<it;1-EXP(-x.3*t.1);(EXP(x.3*it)-1)*EXP(-x.3*t.1))+1/x.4*(x.2-x.4)/(x.3-x.4)*SI(t.1<it;1-EXP(-x.4*t.1);(EXP(x.4*it)-1)*EXP(-x.4*t.1)))
21> II comp infusion(all) dpf: dose it: infusion time x1: Vd x2: k21 x3: a1 x4: a2 x5: k10 x6:k12 x7: V2 x8: AUC x9: Cl(x.3*x.4/x.2-x.5)^2+((x.3+x.4-x.5-x.2)-x.6)^2+(x.1*x.6/x.2-x.7)^2+(x.8-dpf/(x.1*it)*(1/x.3+1/x.4))^2+(x.9-x.1*x.5)^2
22>III comp infusion (s/i)it: infusion time x1,x3,x5: Macro Coefficents x2,x4,x6: Slopes 1/it*SI(t.1<it;(x.1/x.2*(1-EXP(-x.2*t.1))+x.3/x.4*(1-EXP(-x.4*t.1))+x.5/x.6*(1-EXP(-x.6*t.1)));(x.1/x.2*(EXP(x.2*it)-1)*EXP(-x.2*t.1)+x.3/x.4*(EXP(x.4*it)-1)*EXP(-x.4*t.1)+x.5/x.6*(EXP(x.6*it)-1)*EXP(-x.6*t.1)))
23>III comp infusion (micro)dpf: Dose x1: Vd x2: k21 x3,x4,x5: Slopes x6: k31 dpf/(x.1*it)*((x.2-x.3)*(x.6-x.3)/(x.3*(x.3-x.5)*(x.3-x.4))*si(t.1<it;1-exp(-x.3*t.1);(exp(x.3*it)-1)*exp(-x.3*t.1))+(x.2-x.4)*(x.6-x.4)/(x.4*(x.4-x.3)*(x.4-x.5))*si(t.1<it;1-exp(-x.3*t.1);(exp(x.3*it)-1)*exp(-x.3*t.1)))dpf/(x.1*it)*(x.2-x.4)*(x.6-x.4)/(x.4*(x.4-x.3)*(x.4-x.5))*SI(t.1<it;1-EXP(-x.4*t.1);(EXP(x.4*it)-1)*EXP(-x.4*t.1))
24>III comp infusion (all)dpf: Dose x1: Vd x2: k21 x3,x4,x5: Slopes x6: k31 x7: k10 x8: k12 x9: k13 x10: V2 x11: V3 x12: AUC (x.3*x.4*x.5/(x.2*x.6)-x.7)^2+((x.3*x.4+x.4*x.5+x.3*x.5-x.2*x.6-x.6*x.7-x.2*x.9-x.2*x.7)/x.6-x.8)^2+((x.3+x.4+x.5-x.8-x.2-x.6)-x.9)^2+(x.1*x.8/x.2-x.10)^2+(x.1*x.9/x.6-x.11)^2+(x.12-dpf/(x.1*it)*(1/x.3+1/x.4+1/x.5))^2
25>Load Dose+ inf I compdpf: Infusion dose div: Loading dose it: Infusion time x1: Vd x2: Cl SI(t<it;dpf/(it*x.2)+(div/x.1-dpf/(x.2*it))*EXP(-x.2/x.1);(dpf/(it*x.2)*(EXP(x.2/x.1*it)-1)+div/x.1)*EXP(-x.2/x.1*t.1))
26> Load Dose+inf II comp sorry... not yet available!
27> DosReg/IVI comp div Dose x1: Vd x2: Cl r: Period numberdiv/x.1*(1-EXP(-tt*x.2/x.1*r))/(1-EXP(-x.2/x.1*r))*EXP(-x.2/x.1*t.1)
28>Dosreg/oral I comp dpodose x1: Vd x1: Vd x2: Cl x3: ka x4: f (take care that 0<f<1)dpo*x.3*x.4/(x.1*(x.3-x.2/x.1))*((1-EXP(-tt*x.2/x.1*r))/(1-EXP(-x.2/x.1*r))*EXP(-x.2/x.1*t.1)-(1-EXP(-tt*x.3*r))/(1-EXP(-x.3*r))*EXP(-x.3*t.1))
29>DosReg/perf I compdpf dose it Infusion time x1: Vd x1: Vd x2: Cl dpf/(it*x.2)*(1-EXP(-x.2/x.1*t.1)-(1-EXP(-(tt-1)*x.2/x.1*r))/(1-EXP(-x.2/x.1*r))*(EXP(-x.2/x.1*(t.1+r))-EXP(-x.2/x.1*(t.1+r-it))))dpf/(it*x.2)*(1-EXP(-tt*x.2/x.1*r))/(1-EXP(-x.2/x.1*r))*(EXP(-x.2/x.1*(t.1-it))-EXP(-x.2/x.1*t.1))
30>DosReg/IV II compdiv dose x1: Vd x2: k21 x3: a1 x4: a2 tt: timing r: period div/x.1*((x.2-x.3)/(x.4-x.3)*(1-EXP(-tt*x.3*r))/(1-EXP(-x.3*r))*EXP(-x.3*t.1)+(x.2-x.4)/(x.3-x.4)*(1-EXP(-tt*x.4*r))/(1-EXP(-x.4*r))*EXP(-x.4*t.1))
31> DosReg/oralII comp x1: Vd x2: k21 x3: a1 x4: a2 x5: ka x6: f dpo: dose perosdpo*x.6*x.5/x.1*((x.2-x.3)/((x.5-x.3)*(x.4-x.3))*((1-EXP(-tt*x.3*r))/(1-EXP(-x.3*r))*EXP(-x.3*t.1)-(1-EXP(-tt*x.5*r))/(1-EXP(-x.5*r))*EXP(-x.5*t.1))) dpo*x.6*x.5/x.1*((x.2-x.4)/((x.5-x.4)*(x.3-x.4))*((1-EXP(-tt*x.4*r))/(1-EXP(-x.4*r))*EXP(-x.4*t.1)-(1-EXP(-tt*x.5*r))/(1-EXP(-x.5*r))*EXP(-x.5*t.1)))
32> Dos Reg/perfII comp sorry... not yet available!
33> Steady stateC(t)  d/(it*x.1)
34>Loading qIV  dpf/(it*x.2/x.1)
35> Steady stateIVCmax/Cmin div Dose x1: Vd x2: Cl (cmax-div/x.1*(1/(1-EXP(-x.2/x.1)*it)))^2+(cmin-div/x.1*(EXP(-x.2/x.1*it)/(1-EXP(-x.2/x.1*it))))^2
36> Steady stateCl (IV)  (x.1-div/AUC)^2
37>oral Tmax/Cmax  (x.3-1/(x.4-x.2/x.1)*LN(x.4/(x.2/x.1)))^2+(x.5-(x.6*dpo*EXP(-x.2/x.1*x.3)/x.1))^2
38> Urinary excretionI comp (t.1;t.2)  x.3/(x.2/x.1)*div*(EXP(-x.2/x.1*t.1)-EXP(-x.2/x.1*t.2))
39> Urinary excretionI comp IV (t.1)  x.3/(x.2/x.1)*div*(1-EXP(-x.2/x.1*t.1))
40> Urinary excretionI comp IV (t...>)  x.3/(x.2/x.1)*div
41> Urinary excretionI comp oral (t.1;t.2)  x.4*x.5*dpo*x.3/(x.2/x.1-x.3)*(1/(x.2/x.1)*(EXP(-x.2/x.1*t.2)-EXP(-x.2/x.1*t.1))-1/x.3*(EXP(-x.3*t.2)-EXP(-x.3*t.1)))
42>Urinary excretion I comp oral (t)  x.4*x.5*dpo*x.3/(x.2/x.1-x.3)*(1/(x.2/x.1)*(EXP(-x.2/x.1*t.1)-1)-1/x.3*(EXP(-x.3*t.1)-1))
43> Urinary excretionI comp oral (t...>)  x.3/(x.2/x.1)*x.4*dpo
44> Urinary excretionII comp IV (t.1;t.2)  x.1*div*((x.2-x.3)/(x.3*(x.4-x.3))*(EXP(-x.3*t.1)-EXP(-x.3*t.2))+(x.2-x.4)/(x.4*(x.3-x.4))*(EXP(-x.4*t.1)-EXP(-x.4*t.2)))
45>Urinary excretion II comp IV (t) x.1*div*((x.2-x.3)/(x.3*(x.4-x.3))+(x.2-x.4)/(x.4*(x.3-x.4)))
46>Urinary excretion II comp oral (t.1;t.2) x.1*x.6*dpo*x.5*((x.2-x.3)/((x.5-x.3)*(x.4-x.3))*(1/x.3*(EXP(-x.3*t.1)-EXP(-x.3*t.2))-1/x.5*(EXP(-x.5*t.1)-EXP(-x.5*t.2)))) x.1*x.6*dpo*x.5*(x.2-x.4)/((x.5-x.4)*(x.3-x.4))*(1/x.4*(EXP(-x.4*t.1)-EXP(-x.4*t.2))-1/x.5*(EXP(-x.5*t.1)-EXP(-x.5*t.2)))
47> Urinary excretionII comp oral (t)  x.1*x.6*dpo*x.5*((x.2-x.3)/((x.5-x.3)*(x.4-x.3))*(1/x.3*(EXP(-x.3*t.1)-1)-1/x.5*(EXP(-x.5*t.1)-1))+(x.2-x.4)/((x.5-x.4)*(x.3-x.4))*(1/x.4*(EXP(-x.4*t.1)-1)-1/x.5*(EXP(-x.5*t.1)-1)))



About Minf 3.0
 This software has been written:
1)- first, in june 1993 and is to has been published in the International Journalof Biomedical Computing (Int J Biomed CompVol. 37 1994). It was called Minf. This version was quite different from the present one.
2)- Second, in September 1993, when the quasi-Newton algorithms were fully implemented (name:Minf1).
3)- The versionwas since improved by a number of Add-in which permit to make a full numericalanalysis. This last and present version is called Minf 3.0.

7)- Modules

Une liste de fonctions avancées ; elle sont chargées par un modulespécial qui s'appelle polynom.xlm -

EigValsVect

Charge le module polynom.xlm -



Roots of a polynomial

Permet de calculer les valeurs réelles et imaginaires pour un polynomde dedegré 1 à 20 àvoir exemple 1



pharmacokinetics

Charge le module kinetic patterns



Choleski modif.

en travaux !



Choleski factorization

en travaux !



Find eigenvector

Trouve les vecteurspropres d'une matrice réelle
à voir exemple3 -



Equation caractéristique d'une matrice

 Trouve les valeurs propres d'une matrice réelle à exemple 3,a -



Call strippingcurve

Charge un modulede lissage LISPOL.XLM- bâtit une feuille de calcul dans laquelle 3 colonnes sont définies. Exemple :

FIGURE XVI
(lissage de courbe)

En appuyant sur le bouton <Go>, on fait apparaître une boîte dedialogue où il faut entrer l'ordre du polynome, ici on a entré la valeur 2 et les données ontété calculées dans la 3ème colonne. On consulte ensuite un graphe :


FIGURE XVII
(lissage)

Ces données ne sont autres que celles du fichier démo [1ersujet, 6 premiers points de prélèvement].