[Matlab]Création fonction calcul jacobien

Résolu/Fermé
Newenda Messages postés 75 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 26 avril 2021 - 13 déc. 2008 à 12:15
Newenda Messages postés 75 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 26 avril 2021 - 13 déc. 2008 à 12:45
Bonjour,

Je souhaite crée une fonction qui en sortie me donnera les valeurs de la matrice jacobienne (matrice des dérivées partielles) et où en entrée je lui impose 15 variables (E, X, Y, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6)

voila ma fonction :


------------------------------------------------------------------------------------------------

function J=jacobi(E, X, Y, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6)

syms E x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 y5 y6 X Y real

fA1 = log(exp(E)/sqrt((X-x1)^2 + (Y-y1)^2));
fA2 = log(exp(E)/sqrt((X-x2)^2 + (Y-y2)^2));
fA3 = log(exp(E)/sqrt((X-x3)^2 + (Y-y3)^2));
fA4 = log(exp(E)/sqrt((X-x4)^2 + (Y-y4)^2));
fA5 = log(exp(E)/sqrt((X-x5)^2 + (Y-y5)^2));
fA6 = log(exp(E)/sqrt((X-x6)^2 + (Y-y6)^2));

A = jacobian([fA1;fA2;fA3;fA4;fA5;fA6],[E X Y x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 y5 y6]);

J=eval(A);

------------------------------------------------------------------------------------------------

un test du type

------------------------------------------------
mprior = [log(15) 4 13 3 12 7 18 15 19 2 6 12 13 17 2];

F=jacobi(mprior)
------------------------------------------------


me retourne :
************************************
[                                                  1,  -1/2/(X^2-2*X*x1+x1^2+Y^2-2*Y*y1+y1^2)*(2*X-2*x1),  -1/2/(X^2-2*X*x1+x1^2+Y^2-2*Y*y1+y1^2)*(2*Y-2*y1), -1/2/(X^2-2*X*x1+x1^2+Y^2-2*Y*y1+y1^2)*(-2*X+2*x1),                                                  0,                                                  0,                                                  0,                                                  0,                                                  0, -1/2/(X^2-2*X*x1+x1^2+Y^2-2*Y*y1+y1^2)*(-2*Y+2*y1),                                                  0,                                                  0,                                                  0,                                                  0,                                                  0]
[                                                  1,  -1/2/(X^2-2*X*x2+x2^2+Y^2-2*Y*y2+y2^2)*(2*X-2*x2),  -1/2/(X^2-2*X*x2+x2^2+Y^2-2*Y*y2+y2^2)*(2*Y-2*y2),                                                  0, -1/2/(X^2-2*X*x2+x2^2+Y^2-2*Y*y2+y2^2)*(-2*X+2*x2),                                                  0,                                                  0,                                                  0,                                                  0,                                                  0, -1/2/(X^2-2*X*x2+x2^2+Y^2-2*Y*y2+y2^2)*(-2*Y+2*y2),                                                  0,                                                  0,                                                  0,                                                  0]
[                                                  1,  -1/2/(X^2-2*X*x3+x3^2+Y^2-2*Y*y3+y3^2)*(2*X-2*x3),  -1/2/(X^2-2*X*x3+x3^2+Y^2-2*Y*y3+y3^2)*(2*Y-2*y3),                                                  0,                                                  0, -1/2/(X^2-2*X*x3+x3^2+Y^2-2*Y*y3+y3^2)*(-2*X+2*x3),                                                  0,                                                  0,                                                  0,                                                  0,                                                  0, -1/2/(X^2-2*X*x3+x3^2+Y^2-2*Y*y3+y3^2)*(-2*Y+2*y3),                                                  0,                                                  0,                                                  0]
[                                                  1,  -1/2/(X^2-2*X*x4+x4^2+Y^2-2*Y*y4+y4^2)*(2*X-2*x4),  -1/2/(X^2-2*X*x4+x4^2+Y^2-2*Y*y4+y4^2)*(2*Y-2*y4),                                                  0,                                                  0,                                                  0, -1/2/(X^2-2*X*x4+x4^2+Y^2-2*Y*y4+y4^2)*(-2*X+2*x4),                                                  0,                                                  0,                                                  0,                                                  0,                                                  0, -1/2/(X^2-2*X*x4+x4^2+Y^2-2*Y*y4+y4^2)*(-2*Y+2*y4),                                                  0,                                                  0]
[                                                  1,  -1/2/(X^2-2*X*x5+x5^2+Y^2-2*Y*y5+y5^2)*(2*X-2*x5),  -1/2/(X^2-2*X*x5+x5^2+Y^2-2*Y*y5+y5^2)*(2*Y-2*y5),                                                  0,                                                  0,                                                  0,                                                  0, -1/2/(X^2-2*X*x5+x5^2+Y^2-2*Y*y5+y5^2)*(-2*X+2*x5),                                                  0,                                                  0,                                                  0,                                                  0,                                                  0, -1/2/(X^2-2*X*x5+x5^2+Y^2-2*Y*y5+y5^2)*(-2*Y+2*y5),                                                  0]
[                                                  1,  -1/2/(X^2-2*X*x6+x6^2+Y^2-2*Y*y6+y6^2)*(2*X-2*x6),  -1/2/(X^2-2*X*x6+x6^2+Y^2-2*Y*y6+y6^2)*(2*Y-2*y6),                                                  0,                                                  0,                                                  0,                                                  0,                                                  0, -1/2/(X^2-2*X*x6+x6^2+Y^2-2*Y*y6+y6^2)*(-2*X+2*x6),                                                  0,                                                  0,                                                  0,                                                  0,                                                  0, -1/2/(X^2-2*X*x6+x6^2+Y^2-2*Y*y6+y6^2)*(-2*Y+2*y6)]
************************************

Bref, il me retourne les formules des dérivées partielles et non les valeurs de ceux ci !!

Merci pour votre aide !

2 réponses

Newenda Messages postés 75 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 26 avril 2021 24
13 déc. 2008 à 12:45
Résolution :


function J=jacobi(m)

syms E x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 y5 y6 X Y real

fA1 = log(exp(E)/sqrt((X-x1)^2 + (Y-y1)^2));
fA2 = log(exp(E)/sqrt((X-x2)^2 + (Y-y2)^2));
fA3 = log(exp(E)/sqrt((X-x3)^2 + (Y-y3)^2));
fA4 = log(exp(E)/sqrt((X-x4)^2 + (Y-y4)^2));
fA5 = log(exp(E)/sqrt((X-x5)^2 + (Y-y5)^2));
fA6 = log(exp(E)/sqrt((X-x6)^2 + (Y-y6)^2));

A = jacobian([fA1;fA2;fA3;fA4;fA5;fA6],[E X Y x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 y5 y6]);


E = m(1,1);
X = m(1,2);
Y = m(1,3);
x1 = m(1,4); y1 = m(1,10);
x2 = m(1,5); y2 = m(1,11);
x3 = m(1,6); y3 = m(1,12);
x4 = m(1,7); y4 = m(1,13);
x5 = m(1,8); y5 = m(1,14);
x6 = m(1,9); y6 = m(1,15);

J=eval(A)
1