Bonjour, J'aimerais savoir comment on implemente sous matlab/simulink un Jacobien.
En particulier comment à partir de 2 signaux s et u obtenir la dérivée de s par rapport à u.
Merci de me répondre.
Version imprimable
Bonjour, J'aimerais savoir comment on implemente sous matlab/simulink un Jacobien.
En particulier comment à partir de 2 signaux s et u obtenir la dérivée de s par rapport à u.
Merci de me répondre.
Salut,
Tu peux voir sur le FEX .
++ bonne chance
Salut!
Pour un ensemble de n fonctions de n variables, la matrice jacobienne est une matrice nxn dont les termes sont toutes les dérivées partielles des n fonctions par rapport aux n variables. Le jacobien est le déterminant de cette matrice. Dans la formulation de ton problème, on ne voit pas ce que sont les n fonctions et les n variables. Précise donc.
Jean-Marc Blanc
En fait je fais un algo à base de réseaux de neurones. Dans une boucle de régulation, nous avons un signal u(k) qui commande un processus donné qui génère i(k) en sortie (k étant le numéro de l'itération). Il s'agit à chaque itération d'obtenir le jacobien (en fait la dévirée puis qu'il n'ya que 2 variables) J=di(k)/du(k) utilisé pour l'adaptation (mise à jour) d'un autre paramètre W.
Donc y a-t-il un module simulink capable de calculer la dérivée d'un paramètre par rapport à un autre( les 2 variant en font du temps) ou comment implémenter ceci facilement sur Matlab?
J'espère être plus clair maintenant.
A+
Si le vecteur u correspond à di, le plus simple :
Tu peux aussi essayé une régression sur u et dériver le résultat ;) .Code:
1
2
3
4
5 J = diff(di) ./diff(u); % ou : J = jacobian(di, u); % ou : J = diff(di, u);
Sinon, La grande majorité des critères d'optimisation d'un réseau de neurones sont déjà disponible dans la Neural Network Toolbox. tu peux aussi voir la fonction CALCJX .
++ bonne chance
Merci! je regarde tout ça!
Salut!
Il y a un module qui calcule la dérivée par rapport au temps. Donc, si tu as dx/dt et dy/dt, tu peux calculer dy/dx. Toutefois, je te recommande de formuler ton problème autrement, car la dérivation est un opérateur assez instable, sensible au bruit et aux erreurs d'arrondis.Citation:
y a-t-il un module simulink capable de calculer la dérivée d'un paramètre par rapport à un autre
Jean-Marc Blanc
si à chaque itération k, je fais le rapport (i(k)-i(k-1))/(u(k)-u(k-1)), est-ce que ça correspondrait au jacobien(i,u)?
Salut!
Pas vraiment! Alors, je précise ma question:Citation:
J'espère être plus clair maintenant.
Leibniz a écrit: "Natura non facit saltus", soit, en français: "La nature ne fait pas de sauts". Si ton problème concerne un processus réel, tu devrais écrire:Citation:
un signal u(k) qui commande un processus donné qui génère i(k) en sortie (k étant le numéro de l'itération)
Alors, indique-nous précisément les équations qui permettent d'exprimer, à chaque instant t, soit la grandeur de sortie i(t) si les équations sont fonctionnelles, soit sa dérivée si elles sont différentielles. Avec ça, on pourra peut-être t'aider.Citation:
un signal u(t) qui commande un processus donné qui génère i(t) en sortie (k étant le temps)
Jean-Marc Blanc
Bonjour,
Je vais essayer d'être plus précis.
En effet, j'ai un signal u(t) qui commande un processus donné qui génère i(t) en sortie ( t étant le temps discret = kT, T période d'échantillonnage). Mon algo de type boîte noire à base de réseaux de neurones à 3 couches telles que i(k) (i à l'itération k) = f(u(k-1),u(k-2),i(k-1),i(k-2),i(k-3)), identifie ledit processus et calcule en plus son jacobien. Cette fameuse dérivée di(k)/du(k) sert de base apprentissage au second module chargé de générer u(k).