<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Bonjour,</p>
    <p>Ma source, tout simplement Wikipedia.</p>
    <p><a class="moz-txt-link-freetext" href="https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Cardan">https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Cardan</a><br>
    </p>
    <p>Merci pour ce très beau texte !</p>
    <p> 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.</p>
    <p>Je l'avais vérifié sur mes résultats, les parties réelles étaient
      correctes, mais les parties imaginaires non.<br>
    </p>
    <p>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 ?</p>
    <p>JLuc<br>
    </p>
    <span>-------------------------<br>
      Jean-Luc <span class="SpellE">BABIGEON</span> <br>
      CNRS/Lal/<span class="SpellE">Dacc</span> <br>
      <span class="SpellE">Laboratoire</span> de <span class="SpellE">L'accélérateur</span>
      <span class="SpellE">Linéaire</span> <br>
      Centre <span class="SpellE">scientifique</span> d'Orsay - Bat 200
      - BP 34 <br>
      91898 - Orsay Cedex <br>
      <span class="SpellE">tel</span> 0164468247 <span class="SpellE">ou</span>
      8427 <a moz-do-not-send="true"
        href="mailto:-babigeon@lal.in2p3.fr">
        -babigeon@lal.in2p3.fr</a> </span><span></span>
    <br>
    <br>
    <div class="moz-cite-prefix">On 09/11/18 11:04, Rafael Guerra wrote:<br>
    </div>
    <blockquote
cite="mid:VI1PR04MB4109A5E50CACF03441A85995CC040@VI1PR04MB4109.eurprd04.prod.outlook.com"
      type="cite">
      <meta http-equiv="Context-Type" content="text/html;
        charset=iso-8859-1">
      <meta name="ProgId" content="Word.Document">
      <meta name="Generator" content="Microsoft Word 15">
      <meta name="Originator" content="Microsoft Word 15">
      <div class="WordSection1">
        <p class="MsoNormal"><span lang="FR">Bonjour,</span></p>
        <p class="MsoNormal"><span lang="FR"> </span></p>
        <p class="MsoNormal"><span lang="FR">Avez-vous une référence
            pour les formules analytiques que vous essayez d'implémenter
            dans Scilab?</span></p>
        <p class="MsoNormal"><span lang="FR"> </span></p>
        <p class="MsoNormal"><span lang="FR">Il me semble que la
            référence ci-dessous conduit à une implémentation plus
            simple:</span></p>
        <p class="MsoNormal"><span lang="FR"><a moz-do-not-send="true"
              href="https://www.ias.ac.in/article/fulltext/reso/011/08/0053-0061">https://www.ias.ac.in/article/fulltext/reso/011/08/0053-0061</a></span></p>
        <p class="MsoNormal"><span lang="FR"> </span></p>
        <p class="MsoNormal"><span class="SpellE"><span>Cordialement</span></span><span>,</span></p>
        <p class="MsoNormal"><span lang="FR">Rafael</span></p>
        <p class="MsoNormal"><span lang="FR"> </span></p>
        <p class="MsoNormal"><span lang="FR"> </span></p>
        <div>
          <div>
            <p class="MsoNormal"><b><span>From:</span></b><span> users-<span
                  class="SpellE">fr</span>
                <a class="moz-txt-link-rfc2396E" href="mailto:users-fr-bounces@lists.scilab.org"><users-fr-bounces@lists.scilab.org></a> <b><span>On
                    Behalf Of
                  </span></b><span class="SpellE">jlb</span><br>
                <b><span>Sent:</span></b> Tuesday, September 11, 2018
                10:51 AM<br>
                <b><span>To:</span></b> <a class="moz-txt-link-abbreviated" href="mailto:users-fr@lists.scilab.org">users-fr@lists.scilab.org</a><br>
                <b><span>Subject:</span></b> [Users-<span class="SpellE">fr</span>]
                <span class="SpellE">produit</span> <span
                  class="SpellE">tensoriel</span> et <span
                  class="SpellE">
                  décodage</span> inverse des indices</span></p>
          </div>
        </div>
        <p class="MsoNormal"><span> </span></p>
        <p class="MsoNormal"><span>Bonjour,<br>
            <br>
            Pour la <span class="SpellE">compréhension</span> <span
              class="SpellE">uniquement</span>,
            <span class="SpellE">j'essaie</span> de comparer <span
              class="SpellE">une</span> <span class="SpellE">
              résolution</span> <span class="SpellE">analytique</span>
            de Tartaglia Cardan avec la solution
            <span class="SpellE">numérique</span> de <span
              class="SpellE">scilab</span>.<br>
            <br>
            Voila le script<br>
            <br>
            //<br>
            //<span class="SpellE">stacksize</span>('max');<br>
            <br>
            Z0=1; <br>
            Z02=1; <br>
            a0=(Z02/Z0)^2;<br>
            <br>
            //Determination du <span class="SpellE">facteur</span> K
            par resolution <span class="SpellE">
              analytique</span> (Tartaglia-Cardan)<br>
            //Resolution de l equation K^3 + K -a0 = 0 avec
            a0=(Z02/Z0)^2<br>
            <br>
            //determinant <span class="SpellE">auxiliaire</span> de l
            equation X2 -a0X -1/27 =0<br>
            <span class="SpellE">delta_aux</span>=(-a0)^2  +
            (4/27)*(1)^3;<br>
            //<span class="SpellE">delta_aux</span> <span
              class="SpellE">est</span> <span class="SpellE">
              toujours</span> <span class="SpellE">positif</span><br>
            <br>
            //<span class="SpellE">racines</span> <span class="SpellE">auxiliaires</span><br>
            X1=(1/2)*(+a0+sqrt(<span class="SpellE">delta_aux</span>) );<br>
            X2=(1/2)*(+a0-sqrt(<span class="SpellE">delta_aux</span>) );<br>
            <br>
            //<span class="SpellE">Calcul</span> des variables <span
              class="SpellE">auxiliaires</span><br>
            u=(X1)^(1/3);<br>
            v=(X2)^(1/3);<br>
            <br>
            v=-v*<span class="SpellE">exp</span>(-%i*<span
              class="SpellE">atan</span>(<span class="SpellE">imag</span>(v)/real(v))); 
            //<span class="SpellE">choix</span> de la solution
            <span class="SpellE">reelle</span> car <span class="SpellE">scilab</span>
            ne <span class="SpellE">
              previent</span> pas !!<br>
            <br>
            u_1=u;<br>
            u_2=u*( cos(2*%pi/3)+%i*sin(2*%pi/3) );<br>
            u_3=u*( cos(-2*%pi/3) +%i*sin(-2*%pi/3) );<br>
            <br>
            v_1=v;<br>
            v_2=v*( cos(2*%pi/3)+%i*sin(2*%pi/3) );<br>
            v_3=v*( cos(-2*%pi/3) +%i*sin(-2*%pi/3) );<br>
            <br>
            <span class="SpellE">u_anal</span>=[u_1,u_2,u_3];<br>
            <span class="SpellE">v_anal</span>=[v_1,v_2,v_3];<br>
            <br>
            <span class="SpellE">uv_anal</span>=<span class="SpellE">u_anal</span>.*.<span
              class="SpellE">v_anal</span>';<br>
            <br>
            <span class="SpellE">indice_anal</span>=find(real(<span
              class="SpellE">uv_anal</span>+(1/3)*ones(3,3)) <10^(-5)
            );<br>
            <br>
            <span class="SpellE">col_u_anal</span>=ceil(<span
              class="SpellE">indice_anal</span>./(3*ones(1,size(<span
              class="SpellE">indice_anal</span>)(2))));<br>
            <br>
            <span class="SpellE">modulo_v_anal</span>=modulo(<span
              class="SpellE">indice_anal,size</span>(uv_anal,2) );<br>
            <br>
            for j=1:1:size(uv_anal,2)<br>
                if <span class="SpellE">modulo_v_anal</span>(j)==0 then<br>
                    <span class="SpellE">modulo_v_anal</span>(j)=3;<br>
            end<br>
            <span class="SpellE">end</span>;<br>
            for j=1:1:size(uv_anal,2)<br>
                <span class="SpellE">u_anal</span>(j)=<span
              class="SpellE">u_anal</span>(<span class="SpellE">col_u_anal</span>(j))<br>
                <span class="SpellE">v_anal</span>(j)=<span
              class="SpellE">v_anal</span>(<span class="SpellE">modulo_v_anal</span>(j))<br>
            end;<br>
            <br>
            <span class="SpellE">K_sol_anal</span>=<span class="SpellE">u_anal+v_anal</span>;<br>
            <br>
            //determination de K par <span class="SpellE">methode</span>
            <span class="SpellE">
              numerique</span><br>
            <br>
            <span class="SpellE">vect_pol</span>=[-a0,1,0,1];<br>
            <span class="SpellE">polyno</span>=poly(vect_pol,'X','<span
              class="SpellE">coeff</span>');<br>
            <span class="SpellE">K_sol_num</span>=roots(<span
              class="SpellE">polyno</span>);<br>
            <br>
            *********************************************<br>
            <br>
            <span class="SpellE">Evidemment</span> <span class="SpellE">c'est</span>
            loin d'être
            <span class="SpellE">optimisé</span> (!) <span
              class="SpellE">mais</span> surtout
            <span class="SpellE">j'ai</span> du mal à <span
              class="SpellE">décoder</span> les indices du
            <span class="SpellE">produit</span> <span class="SpellE">tensoriel</span>
            des solutions
            <span class="SpellE">u_anal</span> et <span class="SpellE">v_anal</span>.
            Mon <span class="SpellE">
              algorithme</span> ne <span class="SpellE">fonctionne</span>
            pas, à mon <span class="SpellE">
              avis</span> <span class="SpellE">il</span> y a <span
              class="SpellE">une</span> <span class="SpellE">
              erreur</span> <span class="SpellE">dans</span> les <span
              class="SpellE">boucles</span> de la fin.
            <br>
            <br>
            De <span class="SpellE">façon</span> <span class="SpellE">général</span>,
            comment
            <span class="SpellE">remonter</span> <span class="SpellE">proprement</span>
            de la
            <span class="SpellE">matrice</span> <span class="SpellE">tij</span>
            = xi prod <span class="SpellE">
              yj</span> <br>
            <span class="SpellE">où</span> prod <span class="SpellE">est</span>
            le <span class="SpellE">
              produit</span> <span class="SpellE">tensoriel</span> ???<br>
            <br>
            Merci pour <span class="SpellE">vos</span> <span
              class="SpellE">avis</span><br>
            Bien <span class="SpellE">cordialement</span>,<br>
            <span class="SpellE">JLuc</span><br>
            <br>
          </span><span></span><br>
        </p>
      </div>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
users-fr mailing list
<a class="moz-txt-link-abbreviated" href="mailto:users-fr@lists.scilab.org">users-fr@lists.scilab.org</a>
<a class="moz-txt-link-freetext" href="http://lists.scilab.org/mailman/listinfo/users-fr">http://lists.scilab.org/mailman/listinfo/users-fr</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>