Bonjour
je veux appliquer l'algorithme de newton raphson sur sas afin de minimiser une certaine somme sur i qui s'ecrit sous cette forme:
sum(a(i)*(1/(1+exp(b(i)+x)) - c(i)))
dans cette algorithme je dois chercher le x qui minimise cette somme donc je l'ai fait juste pour les premieres valeurs des veteurs a b c et ça a bien marche:
donc la ça marche pour le premier element des vecteurs:a b c j'obtient un certain x; mais le probleme c'est que je dois trouver un x qui minimise la somme : sum(a(i)*(1/(1+exp(b(i)+x)) - c(i)))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 data newton_raphson; x=0.1/*initialisation de x*/ a=0.4; b=3.2; c=0.038; F=0; F_der=0; do iteration=1 to 100; F=a*(1/1+exp(b+x))-c;/*la fonction a minimiser*/ F_der=-a*exp((b+x)/(1+exp(b+x))*(1+exp(b+x));/*la derivee de la fonction a minimiser*/ previous_x=x; x=x-F/F_der; output; end;
donc je dois appliquer ca sur tout les elements des vecteurs a b c
donc les difficultés consiste en :
1)comment je pourrai creer le vecteur x de la meme longueur que les vecteurs a b c au sein ds l'etape data et contenant juste des 0.1
2)comment je pourrai faire appel aux vecteurs: a b c dans l'etape data sachant qu'il existent deja dans une table que j'ai creé dans une proc sql precedente.
Merci pour vos reponse





Répondre avec citation





Partager