[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

Discussions similaires