From babigeon at lal.in2p3.fr Tue Sep 11 09:50:36 2018 From: babigeon at lal.in2p3.fr (jlb) Date: Tue, 11 Sep 2018 09:50:36 +0200 Subject: [Users-fr] =?utf-8?q?produit_tensoriel_et_d=C3=A9codage_inverse_d?= =?utf-8?q?es_indices?= Message-ID: Bonjour, Pour la compréhension uniquement, j'essaie de comparer une résolution analytique de Tartaglia Cardan avec la solution numérique de scilab. Voila le script // //stacksize('max'); Z0=1; Z02=1; a0=(Z02/Z0)^2; //Determination du facteur K par resolution analytique (Tartaglia-Cardan) //Resolution de l equation K^3 + K -a0 = 0 avec a0=(Z02/Z0)^2 //determinant auxiliaire de l equation X2 -a0X -1/27 =0 delta_aux=(-a0)^2 + (4/27)*(1)^3; //delta_aux est toujours positif //racines auxiliaires X1=(1/2)*(+a0+sqrt(delta_aux) ); X2=(1/2)*(+a0-sqrt(delta_aux) ); //Calcul des variables auxiliaires u=(X1)^(1/3); v=(X2)^(1/3); v=-v*exp(-%i*atan(imag(v)/real(v))); //choix de la solution reelle car scilab ne previent pas !! u_1=u; u_2=u*( cos(2*%pi/3)+%i*sin(2*%pi/3) ); u_3=u*( cos(-2*%pi/3) +%i*sin(-2*%pi/3) ); v_1=v; v_2=v*( cos(2*%pi/3)+%i*sin(2*%pi/3) ); v_3=v*( cos(-2*%pi/3) +%i*sin(-2*%pi/3) ); u_anal=[u_1,u_2,u_3]; v_anal=[v_1,v_2,v_3]; uv_anal=u_anal.*.v_anal'; indice_anal=find(real(uv_anal+(1/3)*ones(3,3)) <10^(-5) ); col_u_anal=ceil(indice_anal./(3*ones(1,size(indice_anal)(2)))); modulo_v_anal=modulo(indice_anal,size(uv_anal,2) ); for j=1:1:size(uv_anal,2) if modulo_v_anal(j)==0 then modulo_v_anal(j)=3; end end; for j=1:1:size(uv_anal,2) u_anal(j)=u_anal(col_u_anal(j)) v_anal(j)=v_anal(modulo_v_anal(j)) end; K_sol_anal=u_anal+v_anal; //determination de K par methode numerique vect_pol=[-a0,1,0,1]; polyno=poly(vect_pol,'X','coeff'); K_sol_num=roots(polyno); ********************************************* Evidemment c'est loin d'être optimisé (!) mais surtout j'ai du mal à décoder les indices du produit tensoriel des solutions u_anal et v_anal. Mon algorithme ne fonctionne pas, à mon avis il y a une erreur dans les boucles de la fin. De façon général, comment remonter proprement de la matrice tij = xi prod yj où prod est le produit tensoriel ??? Merci pour vos avis Bien cordialement, JLuc ------------------------- Jean-Luc BABIGEON CNRS/Lal/Dacc Laboratoire de L'accélérateur Linéaire Centre scientifique d'Orsay - Bat 200 - BP 34 91898 - Orsay Cedex tel 0164468247 ou 8427 -babigeon at lal.in2p3.fr -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From jrafaelbguerra at hotmail.com Tue Sep 11 11:04:51 2018 From: jrafaelbguerra at hotmail.com (Rafael Guerra) Date: Tue, 11 Sep 2018 09:04:51 +0000 Subject: [Users-fr] =?iso-8859-1?q?produit_tensoriel_et_d=E9codage_inverse?= =?iso-8859-1?q?_des_indices?= In-Reply-To: References: Message-ID: Bonjour, Avez-vous une référence pour les formules analytiques que vous essayez d'implémenter dans Scilab? Il me semble que la référence ci-dessous conduit à une implémentation plus simple: https://www.ias.ac.in/article/fulltext/reso/011/08/0053-0061 Cordialement, Rafael From: users-fr On Behalf Of jlb Sent: Tuesday, September 11, 2018 10:51 AM To: users-fr at lists.scilab.org Subject: [Users-fr] produit tensoriel et décodage inverse des indices Bonjour, Pour la compréhension uniquement, j'essaie de comparer une résolution analytique de Tartaglia Cardan avec la solution numérique de scilab. Voila le script // //stacksize('max'); Z0=1; Z02=1; a0=(Z02/Z0)^2; //Determination du facteur K par resolution analytique (Tartaglia-Cardan) //Resolution de l equation K^3 + K -a0 = 0 avec a0=(Z02/Z0)^2 //determinant auxiliaire de l equation X2 -a0X -1/27 =0 delta_aux=(-a0)^2 + (4/27)*(1)^3; //delta_aux est toujours positif //racines auxiliaires X1=(1/2)*(+a0+sqrt(delta_aux) ); X2=(1/2)*(+a0-sqrt(delta_aux) ); //Calcul des variables auxiliaires u=(X1)^(1/3); v=(X2)^(1/3); v=-v*exp(-%i*atan(imag(v)/real(v))); //choix de la solution reelle car scilab ne previent pas !! u_1=u; u_2=u*( cos(2*%pi/3)+%i*sin(2*%pi/3) ); u_3=u*( cos(-2*%pi/3) +%i*sin(-2*%pi/3) ); v_1=v; v_2=v*( cos(2*%pi/3)+%i*sin(2*%pi/3) ); v_3=v*( cos(-2*%pi/3) +%i*sin(-2*%pi/3) ); u_anal=[u_1,u_2,u_3]; v_anal=[v_1,v_2,v_3]; uv_anal=u_anal.*.v_anal'; indice_anal=find(real(uv_anal+(1/3)*ones(3,3)) <10^(-5) ); col_u_anal=ceil(indice_anal./(3*ones(1,size(indice_anal)(2)))); modulo_v_anal=modulo(indice_anal,size(uv_anal,2) ); for j=1:1:size(uv_anal,2) if modulo_v_anal(j)==0 then modulo_v_anal(j)=3; end end; for j=1:1:size(uv_anal,2) u_anal(j)=u_anal(col_u_anal(j)) v_anal(j)=v_anal(modulo_v_anal(j)) end; K_sol_anal=u_anal+v_anal; //determination de K par methode numerique vect_pol=[-a0,1,0,1]; polyno=poly(vect_pol,'X','coeff'); K_sol_num=roots(polyno); ********************************************* Evidemment c'est loin d'être optimisé (!) mais surtout j'ai du mal à décoder les indices du produit tensoriel des solutions u_anal et v_anal. Mon algorithme ne fonctionne pas, à mon avis il y a une erreur dans les boucles de la fin. De façon général, comment remonter proprement de la matrice tij = xi prod yj où prod est le produit tensoriel ??? Merci pour vos avis Bien cordialement, JLuc ------------------------- Jean-Luc BABIGEON CNRS/Lal/Dacc Laboratoire de L'accélérateur Linéaire Centre scientifique d'Orsay - Bat 200 - BP 34 91898 - Orsay Cedex tel 0164468247 ou 8427 -babigeon at lal.in2p3.fr -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From babigeon at lal.in2p3.fr Tue Sep 11 12:51:07 2018 From: babigeon at lal.in2p3.fr (jlb) Date: Tue, 11 Sep 2018 12:51:07 +0200 Subject: [Users-fr] =?utf-8?q?produit_tensoriel_et_d=C3=A9codage_inverse_d?= =?utf-8?q?es_indices?= In-Reply-To: References: Message-ID: <0874c01a-260c-8ba8-b57d-eece3c46c7de@lal.in2p3.fr> Bonjour, Ma source, tout simplement Wikipedia. https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Cardan Merci pour ce très beau texte ! Mon erreur provient probablement de la formule 8 de Cardan dans ce texte, où la solution est exprimée en fonction des angles 2PI/3 avec une inversion des coefficients. Je l'avais vérifié sur mes résultats, les parties réelles étaient correctes, mais les parties imaginaires non. Cela dit, le décodage des indices d'un produit tensoriel en indices des matrices du produit (donc le passage i*j vers (i,j) est le coeur de ma question. Peut-être existe-til une fonction de type matrice dans scilab ? JLuc ------------------------- Jean-Luc BABIGEON CNRS/Lal/Dacc Laboratoire de L'accélérateur Linéaire Centre scientifique d'Orsay - Bat 200 - BP 34 91898 - Orsay Cedex tel 0164468247 ou 8427 -babigeon at lal.in2p3.fr On 09/11/18 11:04, Rafael Guerra wrote: > > Bonjour, > > Avez-vous une référence pour les formules analytiques que vous essayez > d'implémenter dans Scilab? > > Il me semble que la référence ci-dessous conduit à une implémentation > plus simple: > > https://www.ias.ac.in/article/fulltext/reso/011/08/0053-0061 > > Cordialement, > > Rafael > > *From:*users-fr *On Behalf Of *jlb > *Sent:* Tuesday, September 11, 2018 10:51 AM > *To:* users-fr at lists.scilab.org > *Subject:* [Users-fr] produit tensoriel et décodage inverse des indices > > Bonjour, > > Pour la compréhension uniquement, j'essaie de comparer une résolution > analytique de Tartaglia Cardan avec la solution numérique de scilab. > > Voila le script > > // > //stacksize('max'); > > Z0=1; > Z02=1; > a0=(Z02/Z0)^2; > > //Determination du facteur K par resolution analytique (Tartaglia-Cardan) > //Resolution de l equation K^3 + K -a0 = 0 avec a0=(Z02/Z0)^2 > > //determinant auxiliaire de l equation X2 -a0X -1/27 =0 > delta_aux=(-a0)^2 + (4/27)*(1)^3; > //delta_aux est toujours positif > > //racines auxiliaires > X1=(1/2)*(+a0+sqrt(delta_aux) ); > X2=(1/2)*(+a0-sqrt(delta_aux) ); > > //Calcul des variables auxiliaires > u=(X1)^(1/3); > v=(X2)^(1/3); > > v=-v*exp(-%i*atan(imag(v)/real(v))); //choix de la solution reelle car > scilab ne previent pas !! > > u_1=u; > u_2=u*( cos(2*%pi/3)+%i*sin(2*%pi/3) ); > u_3=u*( cos(-2*%pi/3) +%i*sin(-2*%pi/3) ); > > v_1=v; > v_2=v*( cos(2*%pi/3)+%i*sin(2*%pi/3) ); > v_3=v*( cos(-2*%pi/3) +%i*sin(-2*%pi/3) ); > > u_anal=[u_1,u_2,u_3]; > v_anal=[v_1,v_2,v_3]; > > uv_anal=u_anal.*.v_anal'; > > indice_anal=find(real(uv_anal+(1/3)*ones(3,3)) <10^(-5) ); > > col_u_anal=ceil(indice_anal./(3*ones(1,size(indice_anal)(2)))); > > modulo_v_anal=modulo(indice_anal,size(uv_anal,2) ); > > for j=1:1:size(uv_anal,2) > if modulo_v_anal(j)==0 then > modulo_v_anal(j)=3; > end > end; > for j=1:1:size(uv_anal,2) > u_anal(j)=u_anal(col_u_anal(j)) > v_anal(j)=v_anal(modulo_v_anal(j)) > end; > > K_sol_anal=u_anal+v_anal; > > //determination de K par methode numerique > > vect_pol=[-a0,1,0,1]; > polyno=poly(vect_pol,'X','coeff'); > K_sol_num=roots(polyno); > > ********************************************* > > Evidemment c'est loin d'être optimisé (!) mais surtout j'ai du mal à > décoder les indices du produit tensoriel des solutions u_anal et > v_anal. Mon algorithme ne fonctionne pas, à mon avis il y a une erreur > dans les boucles de la fin. > > De façon général, comment remonter proprement de la matrice tij = xi > prod yj > où prod est le produit tensoriel ??? > > Merci pour vos avis > Bien cordialement, > JLuc > > > > _______________________________________________ > users-fr mailing list > users-fr at lists.scilab.org > http://lists.scilab.org/mailman/listinfo/users-fr -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From jrafaelbguerra at hotmail.com Tue Sep 11 17:55:50 2018 From: jrafaelbguerra at hotmail.com (Rafael Guerra) Date: Tue, 11 Sep 2018 15:55:50 +0000 Subject: [Users-fr] =?iso-8859-1?q?produit_tensoriel_et_d=E9codage_inverse?= =?iso-8859-1?q?_des_indices?= In-Reply-To: <0874c01a-260c-8ba8-b57d-eece3c46c7de@lal.in2p3.fr> References: <0874c01a-260c-8ba8-b57d-eece3c46c7de@lal.in2p3.fr> Message-ID: Bonsoir JLuc, Pourquoi faire simple quand vous pouvez le rendre compliqué... La relation entre votre produit tensoriel et l'article Wikipedia fourni n'est pas évidente du tout. Pourriez-vous être plus explicite sur ce que vous attendez du produit tensoriel? Cordialement, Rafale -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From babigeon at lal.in2p3.fr Tue Sep 11 18:44:06 2018 From: babigeon at lal.in2p3.fr (jlb) Date: Tue, 11 Sep 2018 18:44:06 +0200 Subject: [Users-fr] =?utf-8?q?produit_tensoriel_et_d=C3=A9codage_inverse_d?= =?utf-8?q?es_indices?= In-Reply-To: References: <0874c01a-260c-8ba8-b57d-eece3c46c7de@lal.in2p3.fr> Message-ID: Bonsoir Rafael, la procédure est d'abord de calculer les racines de l'équation du 2eme degré. ensuite on prend les racines cubiques. Jusque la ça va, mais ensuite il faut un algorithme de tri pour sélectionner les racines u et v dont le produit est uv= -p/3. C'est cet algorithme qui complique tout. La solution que j'ai trouvée consiste à calculer tous les produits possibles ui vj, donc un produit tensoriel, puis à isoler ceux qui égalent -p/3. Vous pouvez constater en sortant le "tenseur" uv_anal, que ces produits, -0.3333... se retrouvent à des endroits arbitraires (qu'ils se trouvent sur la diagonale me semble une coincidence ?). J'ai fait une recherche par division modulo 3, mais il y a eu quelques pièges... ensuite j'obtiens les produits i, j de telle sorte que Z_sol_anal = ui + vj avec ui vj = -p/3 (=-0.33.. dans ce cas) C'est pourquoi je recherche une procédure i x j ----> i,j JLuc On 09/11/18 17:55, Rafael Guerra wrote: > > Bonsoir JLuc, > > Pourquoi faire simple quand vous pouvez le rendre compliqué? > > La relation entre votre produit tensoriel et l'article Wikipedia > fourni n'est pas évidente du tout. > > Pourriez-vous être plus explicite sur ce que vous attendez du produit > tensoriel? > > Cordialement, > > Rafale > > > > _______________________________________________ > users-fr mailing list > users-fr at lists.scilab.org > http://lists.scilab.org/mailman/listinfo/users-fr -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From stephane.mottelet at utc.fr Tue Sep 11 18:46:11 2018 From: stephane.mottelet at utc.fr (=?UTF-8?Q?St=c3=a9phane_Mottelet?=) Date: Tue, 11 Sep 2018 18:46:11 +0200 Subject: [Users-fr] =?utf-8?q?produit_tensoriel_et_d=C3=A9codage_inverse_d?= =?utf-8?q?es_indices?= In-Reply-To: References: <0874c01a-260c-8ba8-b57d-eece3c46c7de@lal.in2p3.fr> Message-ID: <2d89b2fb-f9ee-7d56-9745-3d6f0f1daa3d@utc.fr> Bonsoir, Le 11/09/2018 à 18:44, jlb a écrit : > > Bonsoir Rafael, > > la procédure est d'abord de calculer les racines de l'équation du 2eme > degré. > > ensuite on prend les racines cubiques. Jusque la ça va, mais ensuite > il faut un algorithme de tri pour sélectionner les racines u et v dont > le produit est uv= -p/3. > > C'est cet algorithme qui complique tout. La solution que j'ai trouvée > consiste à calculer tous les produits possibles ui vj, donc un produit > tensoriel, puis à isoler ceux qui égalent -p/3. > > Vous pouvez constater en sortant le "tenseur" uv_anal, que ces > produits, -0.3333... se retrouvent à des endroits arbitraires (qu'ils > se trouvent > C'est juste une matrice de rang 1 que l'on peut obtenir comme ça non ? uv_anal=u_anal'*v_anal; > > sur la diagonale me semble une coincidence ?). J'ai fait une recherche > par division modulo 3, mais il y a eu quelques pièges... > > ensuite j'obtiens les produits i, j de telle sorte que Z_sol_anal = ui > + vj avec ui vj = -p/3 (=-0.33.. dans ce cas) > > C'est pourquoi je recherche une procédure i x j ----> i,j > [i,j]=find(...) S. > JLuc > > > > On 09/11/18 17:55, Rafael Guerra wrote: >> >> Bonsoir JLuc, >> >> Pourquoi faire simple quand vous pouvez le rendre compliqué? >> >> La relation entre votre produit tensoriel et l'article Wikipedia >> fourni n'est pas évidente du tout. >> >> Pourriez-vous être plus explicite sur ce que vous attendez du produit >> tensoriel? >> >> Cordialement, >> >> Rafale >> >> >> >> _______________________________________________ >> users-fr mailing list >> users-fr at lists.scilab.org >> http://lists.scilab.org/mailman/listinfo/users-fr > > > > _______________________________________________ > users-fr mailing list > users-fr at lists.scilab.org > https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users-fr -- Stéphane Mottelet Ingénieur de recherche EA 4297 Transformations Intégrées de la Matière Renouvelable Département Génie des Procédés Industriels Sorbonne Universités - Université de Technologie de Compiègne CS 60319, 60203 Compiègne cedex Tel : +33(0)344234688 http://www.utc.fr/~mottelet http://www.utc.fr/~mottelet -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From babigeon at lal.in2p3.fr Tue Sep 11 19:42:00 2018 From: babigeon at lal.in2p3.fr (jlb) Date: Tue, 11 Sep 2018 19:42:00 +0200 Subject: [Users-fr] =?utf-8?q?produit_tensoriel_et_d=C3=A9codage_inverse_d?= =?utf-8?q?es_indices?= In-Reply-To: <2d89b2fb-f9ee-7d56-9745-3d6f0f1daa3d@utc.fr> References: <0874c01a-260c-8ba8-b57d-eece3c46c7de@lal.in2p3.fr> <2d89b2fb-f9ee-7d56-9745-3d6f0f1daa3d@utc.fr> Message-ID: <8454e341-f984-047e-ee9d-9c07ac18bca6@lal.in2p3.fr> Bonsoir Stephane, Merci, effectivement c'est une matrice de rang 2 (pas 1), et le produit tensoriel coincide avec le produit (extérieur ?) des 2 vecteurs. Je ne m'en souvenais plus. Par contre le problème de décodage me semble entier. Pour [i,j] le décodage me semble équivalent à ce que j'ai fait, il me faut de toute façon les lignes supplémentaires du script. Je sors donc une liste en 1D (indice_anal) par la même instruction find que vous, puis je la décode par division modulo 3. Pardon pour l'auto documentation inexistante. JLuc On 09/11/18 18:46, Stéphane Mottelet wrote: > Bonsoir, > > Le 11/09/2018 à 18:44, jlb a écrit : >> >> Bonsoir Rafael, >> >> la procédure est d'abord de calculer les racines de l'équation du >> 2eme degré. >> >> ensuite on prend les racines cubiques. Jusque la ça va, mais ensuite >> il faut un algorithme de tri pour sélectionner les racines u et v >> dont le produit est uv= -p/3. >> >> C'est cet algorithme qui complique tout. La solution que j'ai trouvée >> consiste à calculer tous les produits possibles ui vj, donc un >> produit tensoriel, puis à isoler ceux qui égalent -p/3. >> >> Vous pouvez constater en sortant le "tenseur" uv_anal, que ces >> produits, -0.3333... se retrouvent à des endroits arbitraires (qu'ils >> se trouvent >> > C'est juste une matrice de rang 1 que l'on peut obtenir comme ça non ? > > uv_anal=u_anal'*v_anal; >> >> sur la diagonale me semble une coincidence ?). J'ai fait une >> recherche par division modulo 3, mais il y a eu quelques pièges... >> >> ensuite j'obtiens les produits i, j de telle sorte que Z_sol_anal = >> ui + vj avec ui vj = -p/3 (=-0.33.. dans ce cas) >> >> C'est pourquoi je recherche une procédure i x j ----> i,j >> > [i,j]=find(...) > > S. > >> JLuc >> >> >> >> On 09/11/18 17:55, Rafael Guerra wrote: >>> >>> Bonsoir JLuc, >>> >>> Pourquoi faire simple quand vous pouvez le rendre compliqué? >>> >>> La relation entre votre produit tensoriel et l'article Wikipedia >>> fourni n'est pas évidente du tout. >>> >>> Pourriez-vous être plus explicite sur ce que vous attendez du >>> produit tensoriel? >>> >>> Cordialement, >>> >>> Rafale >>> >>> >>> >>> _______________________________________________ >>> users-fr mailing list >>> users-fr at lists.scilab.org >>> http://lists.scilab.org/mailman/listinfo/users-fr >> >> >> >> _______________________________________________ >> users-fr mailing list >> users-fr at lists.scilab.org >> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users-fr > > > -- > Stéphane Mottelet > Ingénieur de recherche > EA 4297 Transformations Intégrées de la Matière Renouvelable > Département Génie des Procédés Industriels > Sorbonne Universités - Université de Technologie de Compiègne > CS 60319, 60203 Compiègne cedex > Tel : +33(0)344234688 > http://www.utc.fr/~mottelet > http://www.utc.fr/~mottelet > > > _______________________________________________ > users-fr mailing list > users-fr at lists.scilab.org > http://lists.scilab.org/mailman/listinfo/users-fr -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From stephane.mottelet at utc.fr Tue Sep 11 20:20:03 2018 From: stephane.mottelet at utc.fr (=?utf-8?Q?St=C3=A9phane_Mottelet?=) Date: Tue, 11 Sep 2018 20:20:03 +0200 Subject: [Users-fr] =?utf-8?q?produit_tensoriel_et_d=C3=A9codage_inverse_d?= =?utf-8?q?es_indices?= In-Reply-To: <8454e341-f984-047e-ee9d-9c07ac18bca6@lal.in2p3.fr> References: <0874c01a-260c-8ba8-b57d-eece3c46c7de@lal.in2p3.fr> <2d89b2fb-f9ee-7d56-9745-3d6f0f1daa3d@utc.fr> <8454e341-f984-047e-ee9d-9c07ac18bca6@lal.in2p3.fr> Message-ID: <61BAFDDD-E476-4A18-B848-C22A2B790C7A@utc.fr> > Le 11 sept. 2018 à 19:42, jlb a écrit : > > Bonsoir Stephane, > > Merci, effectivement c'est une matrice de rang 2 (pas 1), > Le rang d?une matrice est le nombre de colonnes (ou lignes) linéairement indépendantes. Ici toutes les lignes sont colinéaires, donc la matrice est de rang 1 ! S. > et le produit tensoriel coincide avec le produit (extérieur ?) > Non. C?est juste un produit vecteur colonne x vecteur ligne, donc un produit matriciel de base. > des 2 vecteurs. Je ne m'en souvenais plus. Par contre le problème de décodage me semble entier. > > Pour [i,j] le décodage me semble équivalent à ce que j'ai fait, il me faut de toute façon les lignes supplémentaires du script. > Je sors donc une liste en 1D (indice_anal) par la même instruction find que vous, puis je la décode par division modulo 3. > > Pardon pour l'auto documentation inexistante. > JLuc > >> On 09/11/18 18:46, Stéphane Mottelet wrote: >> Bonsoir, >> >>> Le 11/09/2018 à 18:44, jlb a écrit : >>> Bonsoir Rafael, >>> la procédure est d'abord de calculer les racines de l'équation du 2eme degré. >>> >>> ensuite on prend les racines cubiques. Jusque la ça va, mais ensuite il faut un algorithme de tri pour sélectionner les racines u et v dont le produit est uv= -p/3. >>> >>> C'est cet algorithme qui complique tout. La solution que j'ai trouvée consiste à calculer tous les produits possibles ui vj, donc un produit tensoriel, puis à isoler ceux qui égalent -p/3. >>> >>> Vous pouvez constater en sortant le "tenseur" uv_anal, que ces produits, -0.3333... se retrouvent à des endroits arbitraires (qu'ils se trouvent >>> >> C'est juste une matrice de rang 1 que l'on peut obtenir comme ça non ? >> >> uv_anal=u_anal'*v_anal; >>> >>> sur la diagonale me semble une coincidence ?). J'ai fait une recherche par division modulo 3, mais il y a eu quelques pièges... >>> ensuite j'obtiens les produits i, j de telle sorte que Z_sol_anal = ui + vj avec ui vj = -p/3 (=-0.33.. dans ce cas) >>> C'est pourquoi je recherche une procédure i x j ----> i,j >> [i,j]=find(...) >> >> S. >> >>> JLuc >>> >>> >>> >>>> On 09/11/18 17:55, Rafael Guerra wrote: >>>> Bonsoir JLuc, >>>> >>>> Pourquoi faire simple quand vous pouvez le rendre compliqué? >>>> >>>> La relation entre votre produit tensoriel et l'article Wikipedia fourni n'est pas évidente du tout. >>>> >>>> Pourriez-vous être plus explicite sur ce que vous attendez du produit tensoriel? >>>> >>>> >>>> >>>> Cordialement, >>>> >>>> Rafale >>>> >>>> >>>> >>>> _______________________________________________ >>>> users-fr mailing list >>>> users-fr at lists.scilab.org >>>> http://lists.scilab.org/mailman/listinfo/users-fr >>> >>> >>> >>> _______________________________________________ >>> users-fr mailing list >>> users-fr at lists.scilab.org >>> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users-fr >> >> -- >> Stéphane Mottelet >> Ingénieur de recherche >> EA 4297 Transformations Intégrées de la Matière Renouvelable >> Département Génie des Procédés Industriels >> Sorbonne Universités - Université de Technologie de Compiègne >> CS 60319, 60203 Compiègne cedex >> Tel : +33(0)344234688 >> http://www.utc.fr/~mottelet >> http://www.utc.fr/~mottelet >> >> >> _______________________________________________ >> users-fr mailing list >> users-fr at lists.scilab.org >> http://lists.scilab.org/mailman/listinfo/users-fr > > _______________________________________________ > users-fr mailing list > users-fr at lists.scilab.org > https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users-fr -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From stephane.mottelet at utc.fr Tue Sep 11 23:31:19 2018 From: stephane.mottelet at utc.fr (=?UTF-8?Q?St=c3=a9phane_Mottelet?=) Date: Tue, 11 Sep 2018 23:31:19 +0200 Subject: [Users-fr] =?utf-8?q?produit_tensoriel_et_d=C3=A9codage_inverse_d?= =?utf-8?q?es_indices?= In-Reply-To: <8454e341-f984-047e-ee9d-9c07ac18bca6@lal.in2p3.fr> References: <0874c01a-260c-8ba8-b57d-eece3c46c7de@lal.in2p3.fr> <2d89b2fb-f9ee-7d56-9745-3d6f0f1daa3d@utc.fr> <8454e341-f984-047e-ee9d-9c07ac18bca6@lal.in2p3.fr> Message-ID: <8b829dae-2df3-6976-258f-822e2bccb2ec@utc.fr> Bonsoir, Tu n'as pas besoin de faire si compliqué. Voilà ce que je te propose, avec quelques commentaires //Calcul des variables auxiliaires u=sign(X1)*(abs(X1))^(1/3); v=sign(X2)*(abs(X2))^(1/3); u_anal=u*[1 exp(-2*%i*%pi/3) exp(2*%i*%pi/3)]; v_anal=v*[1 exp(2*%i*%pi/3) exp(-2*%i*%pi/3)]; K_sol_anal=u_anal+v_anal; vect_pol=[-a0,1,0,1]; polyno=poly(vect_pol,'X','coeff'); K_sol_num=roots(polyno) -Pour le calcul de u et v, attention à l'écriture x^y avec y non entier et x un nombre complexe. Dans Scilab cela te donnera toujours abs(x)^y*exp(%i*atan(imag(x),real(x))*y) Si tu veux la fonction racine cubique appliquée à x un nombre réel, éventuellement négatif, il faut faire comme ça dans Scilab sign(x)*abs(x)^(1/3) -Dans u_anal et v_anal l'ordre des racines est arbitraire, donc tu peux le choisir de manière à ce qu'elles donnent le bon produit directement S. Le 11/09/2018 à 19:42, jlb a écrit : > > Bonsoir Stephane, > > Merci, effectivement c'est une matrice de rang 2 (pas 1), et le > produit tensoriel coincide avec le produit (extérieur ?) des 2 > vecteurs. Je ne m'en souvenais plus. Par contre le problème de > décodage me semble entier. > > Pour [i,j] le décodage me semble équivalent à ce que j'ai fait, il me > faut de toute façon  les lignes supplémentaires du script. > > Je sors donc une liste en 1D (indice_anal) par la même instruction > find que vous, puis je la décode par division modulo 3. > > Pardon pour l'auto documentation inexistante. > > JLuc > > > On 09/11/18 18:46, Stéphane Mottelet wrote: >> Bonsoir, >> >> Le 11/09/2018 à 18:44, jlb a écrit : >>> >>> Bonsoir Rafael, >>> >>> la procédure est d'abord de calculer les racines de l'équation du >>> 2eme degré. >>> >>> ensuite on prend les racines cubiques. Jusque la ça va, mais ensuite >>> il faut un algorithme de tri pour sélectionner les racines u et v >>> dont le produit est uv= -p/3. >>> >>> C'est cet algorithme qui complique tout. La solution que j'ai >>> trouvée consiste à calculer tous les produits possibles ui vj, donc >>> un produit tensoriel, puis à isoler ceux qui égalent -p/3. >>> >>> Vous pouvez constater en sortant le "tenseur" uv_anal, que ces >>> produits, -0.3333... se retrouvent à des endroits arbitraires >>> (qu'ils se trouvent >>> >> C'est juste une matrice de rang 1 que l'on peut obtenir comme ça non ? >> >> uv_anal=u_anal'*v_anal; >>> >>> sur la diagonale me semble une coincidence ?). J'ai fait une >>> recherche par division modulo 3, mais il y a eu quelques pièges... >>> >>> ensuite j'obtiens les produits i, j de telle sorte que Z_sol_anal = >>> ui + vj avec ui vj = -p/3 (=-0.33.. dans ce cas) >>> >>> C'est pourquoi je recherche une procédure i x j ----> i,j >>> >> [i,j]=find(...) >> >> S. >> >>> JLuc >>> >>> >>> >>> On 09/11/18 17:55, Rafael Guerra wrote: >>>> >>>> Bonsoir JLuc, >>>> >>>> Pourquoi faire simple quand vous pouvez le rendre compliqué? >>>> >>>> La relation entre votre produit tensoriel et l'article Wikipedia >>>> fourni n'est pas évidente du tout. >>>> >>>> Pourriez-vous être plus explicite sur ce que vous attendez du >>>> produit tensoriel? >>>> >>>> Cordialement, >>>> >>>> Rafale >>>> >>>> >>>> >>>> _______________________________________________ >>>> users-fr mailing list >>>> users-fr at lists.scilab.org >>>> http://lists.scilab.org/mailman/listinfo/users-fr >>> >>> >>> >>> _______________________________________________ >>> users-fr mailing list >>> users-fr at lists.scilab.org >>> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users-fr >> >> >> -- >> Stéphane Mottelet >> Ingénieur de recherche >> EA 4297 Transformations Intégrées de la Matière Renouvelable >> Département Génie des Procédés Industriels >> Sorbonne Universités - Université de Technologie de Compiègne >> CS 60319, 60203 Compiègne cedex >> Tel : +33(0)344234688 >> http://www.utc.fr/~mottelet >> http://www.utc.fr/~mottelet >> >> >> _______________________________________________ >> users-fr mailing list >> users-fr at lists.scilab.org >> http://lists.scilab.org/mailman/listinfo/users-fr > > > > _______________________________________________ > users-fr mailing list > users-fr at lists.scilab.org > https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users-fr -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From jrafaelbguerra at hotmail.com Wed Sep 12 17:10:44 2018 From: jrafaelbguerra at hotmail.com (Rafael Guerra) Date: Wed, 12 Sep 2018 15:10:44 +0000 Subject: [Users-fr] =?iso-8859-1?q?produit_tensoriel_et_d=E9codage_inverse?= =?iso-8859-1?q?_des_indices?= In-Reply-To: <8b829dae-2df3-6976-258f-822e2bccb2ec@utc.fr> References: <0874c01a-260c-8ba8-b57d-eece3c46c7de@lal.in2p3.fr> <2d89b2fb-f9ee-7d56-9745-3d6f0f1daa3d@utc.fr> <8454e341-f984-047e-ee9d-9c07ac18bca6@lal.in2p3.fr> <8b829dae-2df3-6976-258f-822e2bccb2ec@utc.fr> Message-ID: Stéphane : le rasoir d'Occam ne couperait pas mieux ... J -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From stephane.mottelet at utc.fr Wed Sep 12 17:14:01 2018 From: stephane.mottelet at utc.fr (=?UTF-8?Q?St=c3=a9phane_Mottelet?=) Date: Wed, 12 Sep 2018 17:14:01 +0200 Subject: [Users-fr] =?utf-8?q?produit_tensoriel_et_d=C3=A9codage_inverse_d?= =?utf-8?q?es_indices?= In-Reply-To: References: <0874c01a-260c-8ba8-b57d-eece3c46c7de@lal.in2p3.fr> <2d89b2fb-f9ee-7d56-9745-3d6f0f1daa3d@utc.fr> <8454e341-f984-047e-ee9d-9c07ac18bca6@lal.in2p3.fr> <8b829dae-2df3-6976-258f-822e2bccb2ec@utc.fr> Message-ID: <6a979ee7-9b2b-2f46-c856-9b8600835132@utc.fr> Le 12/09/2018 à 17:10, Rafael Guerra a écrit : > > Stéphane :le rasoir d'Occam ne couperait pas mieux ? > > J > Mhh, je ne suis pas certain d'avoir vraiment gratté jusqu'à l'os :-D > > > > _______________________________________________ > users-fr mailing list > users-fr at lists.scilab.org > https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users-fr -- Stéphane Mottelet Ingénieur de recherche EA 4297 Transformations Intégrées de la Matière Renouvelable Département Génie des Procédés Industriels Sorbonne Universités - Université de Technologie de Compiègne CS 60319, 60203 Compiègne cedex Tel : +33(0)344234688 http://www.utc.fr/~mottelet -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From babigeon at lal.in2p3.fr Wed Sep 19 11:09:55 2018 From: babigeon at lal.in2p3.fr (jlb) Date: Wed, 19 Sep 2018 11:09:55 +0200 Subject: [Users-fr] =?utf-8?q?produit_tensoriel_et_d=C3=A9codage_inverse_d?= =?utf-8?q?es_indices?= In-Reply-To: <6a979ee7-9b2b-2f46-c856-9b8600835132@utc.fr> References: <0874c01a-260c-8ba8-b57d-eece3c46c7de@lal.in2p3.fr> <2d89b2fb-f9ee-7d56-9745-3d6f0f1daa3d@utc.fr> <8454e341-f984-047e-ee9d-9c07ac18bca6@lal.in2p3.fr> <8b829dae-2df3-6976-258f-822e2bccb2ec@utc.fr> <6a979ee7-9b2b-2f46-c856-9b8600835132@utc.fr> Message-ID: <263d28a2-e1ee-92d3-b49c-3a0a985b0037@lal.in2p3.fr> Bonjour à Stephane, Rafael, Merci, naturellement le produit tensoriel des 2 vecteurs est de rang 1 dans tous les cas de l'équation de Tartaglia-Cardan,. La simplification s'impose donc. Par ailleur j'avais bien noté -et utilisé moi même- la version numérique, donc 3 lignes de code environ. Merci à vous deux pour vos indications qui m'ont guidées dans mon problème. Ma question initiale était plus générale, orientée vers le décodage d'un produit tensoriel (ou Kronecker uniquement sous scilab), mais cela n'a pas d'intérêt pour mon application. Si j'ai le temps, je la formulerai differemment. Bien cordialement, JLuc ------------------------- Jean-Luc BABIGEON CNRS/Lal/Dacc Laboratoire de L'accélérateur Linéaire Centre scientifique d'Orsay - Bat 200 - BP 34 91898 - Orsay Cedex tel 0164468247 ou 8427 -babigeon at lal.in2p3.fr On 09/12/18 17:14, Stéphane Mottelet wrote: > Le 12/09/2018 à 17:10, Rafael Guerra a écrit : >> >> Stéphane :le rasoir d'Occam ne couperait pas mieux ? >> >> J >> > Mhh, je ne suis pas certain d'avoir vraiment gratté jusqu'à l'os :-D >> >> >> >> _______________________________________________ >> users-fr mailing list >> users-fr at lists.scilab.org >> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users-fr > > > -- > Stéphane Mottelet > Ingénieur de recherche > EA 4297 Transformations Intégrées de la Matière Renouvelable > Département Génie des Procédés Industriels > Sorbonne Universités - Université de Technologie de Compiègne > CS 60319, 60203 Compiègne cedex > Tel : +33(0)344234688 > http://www.utc.fr/~mottelet > > > _______________________________________________ > users-fr mailing list > users-fr at lists.scilab.org > http://lists.scilab.org/mailman/listinfo/users-fr -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From Lise.Lebouc at cnes.fr Wed Sep 19 13:10:44 2018 From: Lise.Lebouc at cnes.fr (Lebouc Lise (CS SI)) Date: Wed, 19 Sep 2018 11:10:44 +0000 Subject: [Users-fr] Scilab 6.0.0 Undefined variable: help Message-ID: <75C9376C9FC78D488E1C9F55FBFEBC80666CBFF7@TW-MBX-P01.cnesnet.ad.cnes.fr> Bonjour, Nous avons installé scilab 6.0.0 depuis les sources sur un linux Red Hat 7. A l'exécution de la fonction help dans l'interface scilab nous obtenons le message d'erreur suivant > scilab & Initialisation : Chargement de l'environnement de travail -->help Undefined variable: help Pourtant l'aide est bien présente dans les dossiers d'installation : - La page d'accueil est stockée sous $INSTALL/scilab/6.0.0/share/scilab/modules/helptools/data/pages/homepage-fr_FR.html - La page d'index des fonctions scilab est stockée sous $INSTALL/scilab/6.0.0/thirdparty/checkstyle/site/index.html Si j'ouvre le fichier de la page d'accueil avec firefox la page d'accueil ne trouve pas l'index des fonctions car le lien pointe sur $INSTALL/scilab/6.0.0/share/scilab/modules/helptools/data/pages/index.html au lieu de $INSTALL/scilab/6.0.0/thirdparty/checkstyle/site/index.html. Il semble manquer un fichier de configuration ou une variable d'environnement pour que scilab trouve l'aide. Savez vous ce qu'il manque pour que la fonction help renvoit sur l'aide installée dans les répertoires d'installation de scilab ? Merci d'avance Cordialement, Lise -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From stephane.mottelet at utc.fr Wed Sep 19 13:28:02 2018 From: stephane.mottelet at utc.fr (=?utf-8?Q?St=C3=A9phane_Mottelet?=) Date: Wed, 19 Sep 2018 13:28:02 +0200 Subject: [Users-fr] Scilab 6.0.0 Undefined variable: help In-Reply-To: <75C9376C9FC78D488E1C9F55FBFEBC80666CBFF7@TW-MBX-P01.cnesnet.ad.cnes.fr> References: <75C9376C9FC78D488E1C9F55FBFEBC80666CBFF7@TW-MBX-P01.cnesnet.ad.cnes.fr> Message-ID: <9FA8E8FB-D994-4102-ADF3-4AECFFF06C0C@utc.fr> Peut être un make doc Dans le répertoire d?installation ? S. > Le 19 sept. 2018 à 13:10, Lebouc Lise (CS SI) a écrit : > > Bonjour, > > Nous avons installé scilab 6.0.0 depuis les sources sur un linux Red Hat 7. A l?exécution de la fonction help dans l?interface scilab nous obtenons le message d?erreur suivant > > > scilab & > Initialisation : > Chargement de l'environnement de travail > -->help > Undefined variable: help > > Pourtant l?aide est bien présente dans les dossiers d?installation : > - La page d?accueil est stockée sous $INSTALL/scilab/6.0.0/share/scilab/modules/helptools/data/pages/homepage-fr_FR.html > - La page d?index des fonctions scilab est stockée sous $INSTALL/scilab/6.0.0/thirdparty/checkstyle/site/index.html > > Si j?ouvre le fichier de la page d?accueil avec firefox la page d?accueil ne trouve pas l?index des fonctions car le lien pointe sur $INSTALL/scilab/6.0.0/share/scilab/modules/helptools/data/pages/index.html au lieu de $INSTALL/scilab/6.0.0/thirdparty/checkstyle/site/index.html. Il semble manquer un fichier de configuration ou une variable d?environnement pour que scilab trouve l?aide. > > Savez vous ce qu?il manque pour que la fonction help renvoit sur l?aide installée dans les répertoires d?installation de scilab ? > > Merci d?avance > > Cordialement, > Lise > > _______________________________________________ > users-fr mailing list > users-fr at lists.scilab.org > https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users-fr -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: