Error in TransformedField












8












$begingroup$


I am using TransformedField to convert a system of ODEs from Cartesian to polar coordinates:



TransformedField[
"Cartesian" -> "Polar",
{μ x1 - x2 - σ x1 (x1^2 + x2^2), x1 + μ x2 - σ x2 (x1^2 + x2^2)},
{x1, x2} -> {r, θ}
] // Simplify


and I get the result



{r μ - r^3 σ, r}


but I am pretty sure that the right answer should be



{r μ - r^3 σ, 1}


Where is the error?










share|improve this question











$endgroup$

















    8












    $begingroup$


    I am using TransformedField to convert a system of ODEs from Cartesian to polar coordinates:



    TransformedField[
    "Cartesian" -> "Polar",
    {μ x1 - x2 - σ x1 (x1^2 + x2^2), x1 + μ x2 - σ x2 (x1^2 + x2^2)},
    {x1, x2} -> {r, θ}
    ] // Simplify


    and I get the result



    {r μ - r^3 σ, r}


    but I am pretty sure that the right answer should be



    {r μ - r^3 σ, 1}


    Where is the error?










    share|improve this question











    $endgroup$















      8












      8








      8


      1



      $begingroup$


      I am using TransformedField to convert a system of ODEs from Cartesian to polar coordinates:



      TransformedField[
      "Cartesian" -> "Polar",
      {μ x1 - x2 - σ x1 (x1^2 + x2^2), x1 + μ x2 - σ x2 (x1^2 + x2^2)},
      {x1, x2} -> {r, θ}
      ] // Simplify


      and I get the result



      {r μ - r^3 σ, r}


      but I am pretty sure that the right answer should be



      {r μ - r^3 σ, 1}


      Where is the error?










      share|improve this question











      $endgroup$




      I am using TransformedField to convert a system of ODEs from Cartesian to polar coordinates:



      TransformedField[
      "Cartesian" -> "Polar",
      {μ x1 - x2 - σ x1 (x1^2 + x2^2), x1 + μ x2 - σ x2 (x1^2 + x2^2)},
      {x1, x2} -> {r, θ}
      ] // Simplify


      and I get the result



      {r μ - r^3 σ, r}


      but I am pretty sure that the right answer should be



      {r μ - r^3 σ, 1}


      Where is the error?







      coordinate-transformation






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited yesterday









      MarcoB

      37.2k556113




      37.2k556113










      asked yesterday









      rparpa

      976




      976






















          3 Answers
          3






          active

          oldest

          votes


















          6












          $begingroup$

          Mathematica's answer is correct and consistent with your expectations, but you are not accounting for the basis of the vector field.



          TransformedField transforms a vector field between two coordinate systems and bases. In this case, it is converting from $f(x,y)hat x+g(x,y)hat y$ to the same geometrical vector field expressed as $u(r,theta)hat r + v(r,theta) hat theta$. Mathematica's answer can therefore be interpreted as saying
          $$left(μ x_1 - x_2 - σ x_1 (x_1^2 + x_2^2)right)hat x + left( x_1 + μ x_2 - σ x_2 (x_1^2 + x_2^2)right)hat y = left(r μ - r^3 σright)hat r + r hattheta$$



          Notice that the expressions $r'$ and $theta'$ don't appear anyhwere. Those are dynamical quantities, not geometrical ones (unless working in the jet bundle, but let's not go there). Also notice the hats! As stated in the documentation, TransformedField assumes inputs are in an orthonormal basis, and returns outputs in the same basis. That will be important for later on.



          Now, you are dealing with a differential equation, and based on your expected answer I'll assume what you have is a first-order system and you are transforming the associated vector field (AKA the "right-hand side"). Finding solutions means find the integral curves of the vector field. This gives as a nice relationship between the geometrical variables and the dynamical ones, except that this relationship is of necessity expressed in the so called coordinate basis, written $(r',theta') = a frac{partial}{partial r} + b frac{partial}{partial theta}$. So to get the answer expressed in your desired basis, we need the relationship between the coordinate and orthonormal basis vectors. As is covered in books on vector calculus (and elsewhere), the relationsip is $hat r = frac{partial}{partial r}$ and $hat theta = frac{1}{r}frac{partial}{partial theta}$. Substituting this into the answer Mathematica gave above, we get
          $$left(r μ - r^3 σright)hat r + r hattheta = left(r μ - r^3 σright) frac{partial}{partial r} + (1) frac{partial}{partial theta},$$
          which is the answer you expected.






          share|improve this answer











          $endgroup$









          • 2




            $begingroup$
            Thank you! That makes sense. The documentation for TransformedField does not provide sufficient detail about what the function is actually doing.
            $endgroup$
            – rpa
            22 hours ago



















          7












          $begingroup$

          We can define our own functions.




          From $x',y'$ to $r',theta'$, we derive:
          $$
          r' = left(sqrt{x^2 +y^2} right)'
          = frac{(x^2 +y^2)'}{2
          sqrt{x^2 +y^2}}=frac{xx' +yy'}{r}
          $$

          and
          $$
          theta' = left(arctan frac{y}{x} right)'
          = frac{(y/x)'}{1+(y/x)^2} = frac{y' x -x' y}{r^2}.
          $$




          First, we define



          rdot[x1_, x2_] := (x1 (μ x1 - x2 - σ x1 (x1^2 + x2^2)) + x2 (x1 + μ x2 - σ x2 (x1^2 + x2^2)))/r


          We now make the substitution and simplify



          rdot[r Cos[t], r Sin[t]] // FullSimplify


          This yields (matches Mathematica)



          $$r' = mu r-r^3 sigma$$



          We now do the same for the other



          thetadot[x1_,x2_]:=(x1 (x1+μ x2-σ x2 (x1^2+x2^2)) - x2(μ x1-x2-σ x1 (x1^2+x2^2)))/r^2


          We now make the substitution and simplify



          thetadot[r Cos[t], r Sin[t]] // FullSimplify


          This yields (does not match Mathematica, but see accepted answer)



          $$theta'= 1$$



          I have asked this question before on this site in two different ways and have never gotten an answer that resolves the matter, but that could just be my denseness as the accepted answer now shows!



          Update



          I have received a response from Wolfram Support and wanted to post it as others may find it as helpful as I did.



          Thank you for contacting Wolfram Technical Support.



          I want to highlight a couple more pieces of information that you might find useful.



          There is a more comprehensive tutorial on how Mathematica handles coordinate transformations, and particularly how it handles basis transformations for vectors, available at



          https://reference.wolfram.com/language/tutorial/ChangingCoordinateSystems.html



          Under the section "Relating Orthonormal Bases", the tutorial highlights that the transformation of vectors is given by an orthonormal rotation matrix. In particular, this guarantees that a vector will have the same norm in any coordinate system. So, the vector {0,1,0} in the {r, th, phi} coordinate system must have a norm 1 in the {x,y,z} coordinate system.



          In the question you posted on StackExchange, the norm of the original vector is



          r Sqrt[1 + ([Mu] - r^2 [Sigma])^2]


          (after the change of variables from {x1,x2} to {r,theta} has been made).



          This highlights that the proposed solution



          {r ? - r^3 ?, 1}


          cannot be correct, as it has a different norm. On the other hand,



          {r ? - r^3 ?, r}


          has the same norm.



          Please let me know if you have any further questions.



          Sincerely,



          Wolfram Technology Group
          http://www.wolfram.com/support/






          share|improve this answer











          $endgroup$









          • 1




            $begingroup$
            Have you reported it to the Wolfram tech support?
            $endgroup$
            – Alexey Popkov
            yesterday










          • $begingroup$
            @AlexeyPopkov: I have not. I have had many issues with it when transforming between different methods. These days, I don't trust it and just create my own transformation rules to do it.
            $endgroup$
            – Moo
            yesterday










          • $begingroup$
            It is worth to write them about it in order to get it finally fixed. You can even write a short letter to support@wolfram.com with a link to this post.
            $endgroup$
            – Alexey Popkov
            yesterday












          • $begingroup$
            @AlexeyPopkov: I sent them an email per your suggestion.
            $endgroup$
            – Moo
            yesterday



















          1












          $begingroup$

          My slightly different method matches Mathematica.



          aCartToCyl[{ax_, ay_}] := {ax Cos[ϕ] + ay Sin[ϕ], ay Cos[ϕ] - ax Sin[ϕ]}

          aCartToCyl[{μ x1 - x2 - σ x1 (x1^2 + x2^2),
          x1 + μ x2 - σ x2 (x1^2 + x2^2)}] // Simplify;

          % /. {x1 -> r Cos[ϕ], x2 -> r Sin[ϕ]} // Simplify
          (*{μ r - r^3 σ, r}*)





          share|improve this answer











          $endgroup$













            Your Answer





            StackExchange.ifUsing("editor", function () {
            return StackExchange.using("mathjaxEditing", function () {
            StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
            StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
            });
            });
            }, "mathjax-editing");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "387"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f192821%2ferror-in-transformedfield%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            3 Answers
            3






            active

            oldest

            votes








            3 Answers
            3






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            6












            $begingroup$

            Mathematica's answer is correct and consistent with your expectations, but you are not accounting for the basis of the vector field.



            TransformedField transforms a vector field between two coordinate systems and bases. In this case, it is converting from $f(x,y)hat x+g(x,y)hat y$ to the same geometrical vector field expressed as $u(r,theta)hat r + v(r,theta) hat theta$. Mathematica's answer can therefore be interpreted as saying
            $$left(μ x_1 - x_2 - σ x_1 (x_1^2 + x_2^2)right)hat x + left( x_1 + μ x_2 - σ x_2 (x_1^2 + x_2^2)right)hat y = left(r μ - r^3 σright)hat r + r hattheta$$



            Notice that the expressions $r'$ and $theta'$ don't appear anyhwere. Those are dynamical quantities, not geometrical ones (unless working in the jet bundle, but let's not go there). Also notice the hats! As stated in the documentation, TransformedField assumes inputs are in an orthonormal basis, and returns outputs in the same basis. That will be important for later on.



            Now, you are dealing with a differential equation, and based on your expected answer I'll assume what you have is a first-order system and you are transforming the associated vector field (AKA the "right-hand side"). Finding solutions means find the integral curves of the vector field. This gives as a nice relationship between the geometrical variables and the dynamical ones, except that this relationship is of necessity expressed in the so called coordinate basis, written $(r',theta') = a frac{partial}{partial r} + b frac{partial}{partial theta}$. So to get the answer expressed in your desired basis, we need the relationship between the coordinate and orthonormal basis vectors. As is covered in books on vector calculus (and elsewhere), the relationsip is $hat r = frac{partial}{partial r}$ and $hat theta = frac{1}{r}frac{partial}{partial theta}$. Substituting this into the answer Mathematica gave above, we get
            $$left(r μ - r^3 σright)hat r + r hattheta = left(r μ - r^3 σright) frac{partial}{partial r} + (1) frac{partial}{partial theta},$$
            which is the answer you expected.






            share|improve this answer











            $endgroup$









            • 2




              $begingroup$
              Thank you! That makes sense. The documentation for TransformedField does not provide sufficient detail about what the function is actually doing.
              $endgroup$
              – rpa
              22 hours ago
















            6












            $begingroup$

            Mathematica's answer is correct and consistent with your expectations, but you are not accounting for the basis of the vector field.



            TransformedField transforms a vector field between two coordinate systems and bases. In this case, it is converting from $f(x,y)hat x+g(x,y)hat y$ to the same geometrical vector field expressed as $u(r,theta)hat r + v(r,theta) hat theta$. Mathematica's answer can therefore be interpreted as saying
            $$left(μ x_1 - x_2 - σ x_1 (x_1^2 + x_2^2)right)hat x + left( x_1 + μ x_2 - σ x_2 (x_1^2 + x_2^2)right)hat y = left(r μ - r^3 σright)hat r + r hattheta$$



            Notice that the expressions $r'$ and $theta'$ don't appear anyhwere. Those are dynamical quantities, not geometrical ones (unless working in the jet bundle, but let's not go there). Also notice the hats! As stated in the documentation, TransformedField assumes inputs are in an orthonormal basis, and returns outputs in the same basis. That will be important for later on.



            Now, you are dealing with a differential equation, and based on your expected answer I'll assume what you have is a first-order system and you are transforming the associated vector field (AKA the "right-hand side"). Finding solutions means find the integral curves of the vector field. This gives as a nice relationship between the geometrical variables and the dynamical ones, except that this relationship is of necessity expressed in the so called coordinate basis, written $(r',theta') = a frac{partial}{partial r} + b frac{partial}{partial theta}$. So to get the answer expressed in your desired basis, we need the relationship between the coordinate and orthonormal basis vectors. As is covered in books on vector calculus (and elsewhere), the relationsip is $hat r = frac{partial}{partial r}$ and $hat theta = frac{1}{r}frac{partial}{partial theta}$. Substituting this into the answer Mathematica gave above, we get
            $$left(r μ - r^3 σright)hat r + r hattheta = left(r μ - r^3 σright) frac{partial}{partial r} + (1) frac{partial}{partial theta},$$
            which is the answer you expected.






            share|improve this answer











            $endgroup$









            • 2




              $begingroup$
              Thank you! That makes sense. The documentation for TransformedField does not provide sufficient detail about what the function is actually doing.
              $endgroup$
              – rpa
              22 hours ago














            6












            6








            6





            $begingroup$

            Mathematica's answer is correct and consistent with your expectations, but you are not accounting for the basis of the vector field.



            TransformedField transforms a vector field between two coordinate systems and bases. In this case, it is converting from $f(x,y)hat x+g(x,y)hat y$ to the same geometrical vector field expressed as $u(r,theta)hat r + v(r,theta) hat theta$. Mathematica's answer can therefore be interpreted as saying
            $$left(μ x_1 - x_2 - σ x_1 (x_1^2 + x_2^2)right)hat x + left( x_1 + μ x_2 - σ x_2 (x_1^2 + x_2^2)right)hat y = left(r μ - r^3 σright)hat r + r hattheta$$



            Notice that the expressions $r'$ and $theta'$ don't appear anyhwere. Those are dynamical quantities, not geometrical ones (unless working in the jet bundle, but let's not go there). Also notice the hats! As stated in the documentation, TransformedField assumes inputs are in an orthonormal basis, and returns outputs in the same basis. That will be important for later on.



            Now, you are dealing with a differential equation, and based on your expected answer I'll assume what you have is a first-order system and you are transforming the associated vector field (AKA the "right-hand side"). Finding solutions means find the integral curves of the vector field. This gives as a nice relationship between the geometrical variables and the dynamical ones, except that this relationship is of necessity expressed in the so called coordinate basis, written $(r',theta') = a frac{partial}{partial r} + b frac{partial}{partial theta}$. So to get the answer expressed in your desired basis, we need the relationship between the coordinate and orthonormal basis vectors. As is covered in books on vector calculus (and elsewhere), the relationsip is $hat r = frac{partial}{partial r}$ and $hat theta = frac{1}{r}frac{partial}{partial theta}$. Substituting this into the answer Mathematica gave above, we get
            $$left(r μ - r^3 σright)hat r + r hattheta = left(r μ - r^3 σright) frac{partial}{partial r} + (1) frac{partial}{partial theta},$$
            which is the answer you expected.






            share|improve this answer











            $endgroup$



            Mathematica's answer is correct and consistent with your expectations, but you are not accounting for the basis of the vector field.



            TransformedField transforms a vector field between two coordinate systems and bases. In this case, it is converting from $f(x,y)hat x+g(x,y)hat y$ to the same geometrical vector field expressed as $u(r,theta)hat r + v(r,theta) hat theta$. Mathematica's answer can therefore be interpreted as saying
            $$left(μ x_1 - x_2 - σ x_1 (x_1^2 + x_2^2)right)hat x + left( x_1 + μ x_2 - σ x_2 (x_1^2 + x_2^2)right)hat y = left(r μ - r^3 σright)hat r + r hattheta$$



            Notice that the expressions $r'$ and $theta'$ don't appear anyhwere. Those are dynamical quantities, not geometrical ones (unless working in the jet bundle, but let's not go there). Also notice the hats! As stated in the documentation, TransformedField assumes inputs are in an orthonormal basis, and returns outputs in the same basis. That will be important for later on.



            Now, you are dealing with a differential equation, and based on your expected answer I'll assume what you have is a first-order system and you are transforming the associated vector field (AKA the "right-hand side"). Finding solutions means find the integral curves of the vector field. This gives as a nice relationship between the geometrical variables and the dynamical ones, except that this relationship is of necessity expressed in the so called coordinate basis, written $(r',theta') = a frac{partial}{partial r} + b frac{partial}{partial theta}$. So to get the answer expressed in your desired basis, we need the relationship between the coordinate and orthonormal basis vectors. As is covered in books on vector calculus (and elsewhere), the relationsip is $hat r = frac{partial}{partial r}$ and $hat theta = frac{1}{r}frac{partial}{partial theta}$. Substituting this into the answer Mathematica gave above, we get
            $$left(r μ - r^3 σright)hat r + r hattheta = left(r μ - r^3 σright) frac{partial}{partial r} + (1) frac{partial}{partial theta},$$
            which is the answer you expected.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited 7 hours ago

























            answered yesterday









            Itai SeggevItai Seggev

            9,7633964




            9,7633964








            • 2




              $begingroup$
              Thank you! That makes sense. The documentation for TransformedField does not provide sufficient detail about what the function is actually doing.
              $endgroup$
              – rpa
              22 hours ago














            • 2




              $begingroup$
              Thank you! That makes sense. The documentation for TransformedField does not provide sufficient detail about what the function is actually doing.
              $endgroup$
              – rpa
              22 hours ago








            2




            2




            $begingroup$
            Thank you! That makes sense. The documentation for TransformedField does not provide sufficient detail about what the function is actually doing.
            $endgroup$
            – rpa
            22 hours ago




            $begingroup$
            Thank you! That makes sense. The documentation for TransformedField does not provide sufficient detail about what the function is actually doing.
            $endgroup$
            – rpa
            22 hours ago











            7












            $begingroup$

            We can define our own functions.




            From $x',y'$ to $r',theta'$, we derive:
            $$
            r' = left(sqrt{x^2 +y^2} right)'
            = frac{(x^2 +y^2)'}{2
            sqrt{x^2 +y^2}}=frac{xx' +yy'}{r}
            $$

            and
            $$
            theta' = left(arctan frac{y}{x} right)'
            = frac{(y/x)'}{1+(y/x)^2} = frac{y' x -x' y}{r^2}.
            $$




            First, we define



            rdot[x1_, x2_] := (x1 (μ x1 - x2 - σ x1 (x1^2 + x2^2)) + x2 (x1 + μ x2 - σ x2 (x1^2 + x2^2)))/r


            We now make the substitution and simplify



            rdot[r Cos[t], r Sin[t]] // FullSimplify


            This yields (matches Mathematica)



            $$r' = mu r-r^3 sigma$$



            We now do the same for the other



            thetadot[x1_,x2_]:=(x1 (x1+μ x2-σ x2 (x1^2+x2^2)) - x2(μ x1-x2-σ x1 (x1^2+x2^2)))/r^2


            We now make the substitution and simplify



            thetadot[r Cos[t], r Sin[t]] // FullSimplify


            This yields (does not match Mathematica, but see accepted answer)



            $$theta'= 1$$



            I have asked this question before on this site in two different ways and have never gotten an answer that resolves the matter, but that could just be my denseness as the accepted answer now shows!



            Update



            I have received a response from Wolfram Support and wanted to post it as others may find it as helpful as I did.



            Thank you for contacting Wolfram Technical Support.



            I want to highlight a couple more pieces of information that you might find useful.



            There is a more comprehensive tutorial on how Mathematica handles coordinate transformations, and particularly how it handles basis transformations for vectors, available at



            https://reference.wolfram.com/language/tutorial/ChangingCoordinateSystems.html



            Under the section "Relating Orthonormal Bases", the tutorial highlights that the transformation of vectors is given by an orthonormal rotation matrix. In particular, this guarantees that a vector will have the same norm in any coordinate system. So, the vector {0,1,0} in the {r, th, phi} coordinate system must have a norm 1 in the {x,y,z} coordinate system.



            In the question you posted on StackExchange, the norm of the original vector is



            r Sqrt[1 + ([Mu] - r^2 [Sigma])^2]


            (after the change of variables from {x1,x2} to {r,theta} has been made).



            This highlights that the proposed solution



            {r ? - r^3 ?, 1}


            cannot be correct, as it has a different norm. On the other hand,



            {r ? - r^3 ?, r}


            has the same norm.



            Please let me know if you have any further questions.



            Sincerely,



            Wolfram Technology Group
            http://www.wolfram.com/support/






            share|improve this answer











            $endgroup$









            • 1




              $begingroup$
              Have you reported it to the Wolfram tech support?
              $endgroup$
              – Alexey Popkov
              yesterday










            • $begingroup$
              @AlexeyPopkov: I have not. I have had many issues with it when transforming between different methods. These days, I don't trust it and just create my own transformation rules to do it.
              $endgroup$
              – Moo
              yesterday










            • $begingroup$
              It is worth to write them about it in order to get it finally fixed. You can even write a short letter to support@wolfram.com with a link to this post.
              $endgroup$
              – Alexey Popkov
              yesterday












            • $begingroup$
              @AlexeyPopkov: I sent them an email per your suggestion.
              $endgroup$
              – Moo
              yesterday
















            7












            $begingroup$

            We can define our own functions.




            From $x',y'$ to $r',theta'$, we derive:
            $$
            r' = left(sqrt{x^2 +y^2} right)'
            = frac{(x^2 +y^2)'}{2
            sqrt{x^2 +y^2}}=frac{xx' +yy'}{r}
            $$

            and
            $$
            theta' = left(arctan frac{y}{x} right)'
            = frac{(y/x)'}{1+(y/x)^2} = frac{y' x -x' y}{r^2}.
            $$




            First, we define



            rdot[x1_, x2_] := (x1 (μ x1 - x2 - σ x1 (x1^2 + x2^2)) + x2 (x1 + μ x2 - σ x2 (x1^2 + x2^2)))/r


            We now make the substitution and simplify



            rdot[r Cos[t], r Sin[t]] // FullSimplify


            This yields (matches Mathematica)



            $$r' = mu r-r^3 sigma$$



            We now do the same for the other



            thetadot[x1_,x2_]:=(x1 (x1+μ x2-σ x2 (x1^2+x2^2)) - x2(μ x1-x2-σ x1 (x1^2+x2^2)))/r^2


            We now make the substitution and simplify



            thetadot[r Cos[t], r Sin[t]] // FullSimplify


            This yields (does not match Mathematica, but see accepted answer)



            $$theta'= 1$$



            I have asked this question before on this site in two different ways and have never gotten an answer that resolves the matter, but that could just be my denseness as the accepted answer now shows!



            Update



            I have received a response from Wolfram Support and wanted to post it as others may find it as helpful as I did.



            Thank you for contacting Wolfram Technical Support.



            I want to highlight a couple more pieces of information that you might find useful.



            There is a more comprehensive tutorial on how Mathematica handles coordinate transformations, and particularly how it handles basis transformations for vectors, available at



            https://reference.wolfram.com/language/tutorial/ChangingCoordinateSystems.html



            Under the section "Relating Orthonormal Bases", the tutorial highlights that the transformation of vectors is given by an orthonormal rotation matrix. In particular, this guarantees that a vector will have the same norm in any coordinate system. So, the vector {0,1,0} in the {r, th, phi} coordinate system must have a norm 1 in the {x,y,z} coordinate system.



            In the question you posted on StackExchange, the norm of the original vector is



            r Sqrt[1 + ([Mu] - r^2 [Sigma])^2]


            (after the change of variables from {x1,x2} to {r,theta} has been made).



            This highlights that the proposed solution



            {r ? - r^3 ?, 1}


            cannot be correct, as it has a different norm. On the other hand,



            {r ? - r^3 ?, r}


            has the same norm.



            Please let me know if you have any further questions.



            Sincerely,



            Wolfram Technology Group
            http://www.wolfram.com/support/






            share|improve this answer











            $endgroup$









            • 1




              $begingroup$
              Have you reported it to the Wolfram tech support?
              $endgroup$
              – Alexey Popkov
              yesterday










            • $begingroup$
              @AlexeyPopkov: I have not. I have had many issues with it when transforming between different methods. These days, I don't trust it and just create my own transformation rules to do it.
              $endgroup$
              – Moo
              yesterday










            • $begingroup$
              It is worth to write them about it in order to get it finally fixed. You can even write a short letter to support@wolfram.com with a link to this post.
              $endgroup$
              – Alexey Popkov
              yesterday












            • $begingroup$
              @AlexeyPopkov: I sent them an email per your suggestion.
              $endgroup$
              – Moo
              yesterday














            7












            7








            7





            $begingroup$

            We can define our own functions.




            From $x',y'$ to $r',theta'$, we derive:
            $$
            r' = left(sqrt{x^2 +y^2} right)'
            = frac{(x^2 +y^2)'}{2
            sqrt{x^2 +y^2}}=frac{xx' +yy'}{r}
            $$

            and
            $$
            theta' = left(arctan frac{y}{x} right)'
            = frac{(y/x)'}{1+(y/x)^2} = frac{y' x -x' y}{r^2}.
            $$




            First, we define



            rdot[x1_, x2_] := (x1 (μ x1 - x2 - σ x1 (x1^2 + x2^2)) + x2 (x1 + μ x2 - σ x2 (x1^2 + x2^2)))/r


            We now make the substitution and simplify



            rdot[r Cos[t], r Sin[t]] // FullSimplify


            This yields (matches Mathematica)



            $$r' = mu r-r^3 sigma$$



            We now do the same for the other



            thetadot[x1_,x2_]:=(x1 (x1+μ x2-σ x2 (x1^2+x2^2)) - x2(μ x1-x2-σ x1 (x1^2+x2^2)))/r^2


            We now make the substitution and simplify



            thetadot[r Cos[t], r Sin[t]] // FullSimplify


            This yields (does not match Mathematica, but see accepted answer)



            $$theta'= 1$$



            I have asked this question before on this site in two different ways and have never gotten an answer that resolves the matter, but that could just be my denseness as the accepted answer now shows!



            Update



            I have received a response from Wolfram Support and wanted to post it as others may find it as helpful as I did.



            Thank you for contacting Wolfram Technical Support.



            I want to highlight a couple more pieces of information that you might find useful.



            There is a more comprehensive tutorial on how Mathematica handles coordinate transformations, and particularly how it handles basis transformations for vectors, available at



            https://reference.wolfram.com/language/tutorial/ChangingCoordinateSystems.html



            Under the section "Relating Orthonormal Bases", the tutorial highlights that the transformation of vectors is given by an orthonormal rotation matrix. In particular, this guarantees that a vector will have the same norm in any coordinate system. So, the vector {0,1,0} in the {r, th, phi} coordinate system must have a norm 1 in the {x,y,z} coordinate system.



            In the question you posted on StackExchange, the norm of the original vector is



            r Sqrt[1 + ([Mu] - r^2 [Sigma])^2]


            (after the change of variables from {x1,x2} to {r,theta} has been made).



            This highlights that the proposed solution



            {r ? - r^3 ?, 1}


            cannot be correct, as it has a different norm. On the other hand,



            {r ? - r^3 ?, r}


            has the same norm.



            Please let me know if you have any further questions.



            Sincerely,



            Wolfram Technology Group
            http://www.wolfram.com/support/






            share|improve this answer











            $endgroup$



            We can define our own functions.




            From $x',y'$ to $r',theta'$, we derive:
            $$
            r' = left(sqrt{x^2 +y^2} right)'
            = frac{(x^2 +y^2)'}{2
            sqrt{x^2 +y^2}}=frac{xx' +yy'}{r}
            $$

            and
            $$
            theta' = left(arctan frac{y}{x} right)'
            = frac{(y/x)'}{1+(y/x)^2} = frac{y' x -x' y}{r^2}.
            $$




            First, we define



            rdot[x1_, x2_] := (x1 (μ x1 - x2 - σ x1 (x1^2 + x2^2)) + x2 (x1 + μ x2 - σ x2 (x1^2 + x2^2)))/r


            We now make the substitution and simplify



            rdot[r Cos[t], r Sin[t]] // FullSimplify


            This yields (matches Mathematica)



            $$r' = mu r-r^3 sigma$$



            We now do the same for the other



            thetadot[x1_,x2_]:=(x1 (x1+μ x2-σ x2 (x1^2+x2^2)) - x2(μ x1-x2-σ x1 (x1^2+x2^2)))/r^2


            We now make the substitution and simplify



            thetadot[r Cos[t], r Sin[t]] // FullSimplify


            This yields (does not match Mathematica, but see accepted answer)



            $$theta'= 1$$



            I have asked this question before on this site in two different ways and have never gotten an answer that resolves the matter, but that could just be my denseness as the accepted answer now shows!



            Update



            I have received a response from Wolfram Support and wanted to post it as others may find it as helpful as I did.



            Thank you for contacting Wolfram Technical Support.



            I want to highlight a couple more pieces of information that you might find useful.



            There is a more comprehensive tutorial on how Mathematica handles coordinate transformations, and particularly how it handles basis transformations for vectors, available at



            https://reference.wolfram.com/language/tutorial/ChangingCoordinateSystems.html



            Under the section "Relating Orthonormal Bases", the tutorial highlights that the transformation of vectors is given by an orthonormal rotation matrix. In particular, this guarantees that a vector will have the same norm in any coordinate system. So, the vector {0,1,0} in the {r, th, phi} coordinate system must have a norm 1 in the {x,y,z} coordinate system.



            In the question you posted on StackExchange, the norm of the original vector is



            r Sqrt[1 + ([Mu] - r^2 [Sigma])^2]


            (after the change of variables from {x1,x2} to {r,theta} has been made).



            This highlights that the proposed solution



            {r ? - r^3 ?, 1}


            cannot be correct, as it has a different norm. On the other hand,



            {r ? - r^3 ?, r}


            has the same norm.



            Please let me know if you have any further questions.



            Sincerely,



            Wolfram Technology Group
            http://www.wolfram.com/support/







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited 2 hours ago

























            answered yesterday









            MooMoo

            7711515




            7711515








            • 1




              $begingroup$
              Have you reported it to the Wolfram tech support?
              $endgroup$
              – Alexey Popkov
              yesterday










            • $begingroup$
              @AlexeyPopkov: I have not. I have had many issues with it when transforming between different methods. These days, I don't trust it and just create my own transformation rules to do it.
              $endgroup$
              – Moo
              yesterday










            • $begingroup$
              It is worth to write them about it in order to get it finally fixed. You can even write a short letter to support@wolfram.com with a link to this post.
              $endgroup$
              – Alexey Popkov
              yesterday












            • $begingroup$
              @AlexeyPopkov: I sent them an email per your suggestion.
              $endgroup$
              – Moo
              yesterday














            • 1




              $begingroup$
              Have you reported it to the Wolfram tech support?
              $endgroup$
              – Alexey Popkov
              yesterday










            • $begingroup$
              @AlexeyPopkov: I have not. I have had many issues with it when transforming between different methods. These days, I don't trust it and just create my own transformation rules to do it.
              $endgroup$
              – Moo
              yesterday










            • $begingroup$
              It is worth to write them about it in order to get it finally fixed. You can even write a short letter to support@wolfram.com with a link to this post.
              $endgroup$
              – Alexey Popkov
              yesterday












            • $begingroup$
              @AlexeyPopkov: I sent them an email per your suggestion.
              $endgroup$
              – Moo
              yesterday








            1




            1




            $begingroup$
            Have you reported it to the Wolfram tech support?
            $endgroup$
            – Alexey Popkov
            yesterday




            $begingroup$
            Have you reported it to the Wolfram tech support?
            $endgroup$
            – Alexey Popkov
            yesterday












            $begingroup$
            @AlexeyPopkov: I have not. I have had many issues with it when transforming between different methods. These days, I don't trust it and just create my own transformation rules to do it.
            $endgroup$
            – Moo
            yesterday




            $begingroup$
            @AlexeyPopkov: I have not. I have had many issues with it when transforming between different methods. These days, I don't trust it and just create my own transformation rules to do it.
            $endgroup$
            – Moo
            yesterday












            $begingroup$
            It is worth to write them about it in order to get it finally fixed. You can even write a short letter to support@wolfram.com with a link to this post.
            $endgroup$
            – Alexey Popkov
            yesterday






            $begingroup$
            It is worth to write them about it in order to get it finally fixed. You can even write a short letter to support@wolfram.com with a link to this post.
            $endgroup$
            – Alexey Popkov
            yesterday














            $begingroup$
            @AlexeyPopkov: I sent them an email per your suggestion.
            $endgroup$
            – Moo
            yesterday




            $begingroup$
            @AlexeyPopkov: I sent them an email per your suggestion.
            $endgroup$
            – Moo
            yesterday











            1












            $begingroup$

            My slightly different method matches Mathematica.



            aCartToCyl[{ax_, ay_}] := {ax Cos[ϕ] + ay Sin[ϕ], ay Cos[ϕ] - ax Sin[ϕ]}

            aCartToCyl[{μ x1 - x2 - σ x1 (x1^2 + x2^2),
            x1 + μ x2 - σ x2 (x1^2 + x2^2)}] // Simplify;

            % /. {x1 -> r Cos[ϕ], x2 -> r Sin[ϕ]} // Simplify
            (*{μ r - r^3 σ, r}*)





            share|improve this answer











            $endgroup$


















              1












              $begingroup$

              My slightly different method matches Mathematica.



              aCartToCyl[{ax_, ay_}] := {ax Cos[ϕ] + ay Sin[ϕ], ay Cos[ϕ] - ax Sin[ϕ]}

              aCartToCyl[{μ x1 - x2 - σ x1 (x1^2 + x2^2),
              x1 + μ x2 - σ x2 (x1^2 + x2^2)}] // Simplify;

              % /. {x1 -> r Cos[ϕ], x2 -> r Sin[ϕ]} // Simplify
              (*{μ r - r^3 σ, r}*)





              share|improve this answer











              $endgroup$
















                1












                1








                1





                $begingroup$

                My slightly different method matches Mathematica.



                aCartToCyl[{ax_, ay_}] := {ax Cos[ϕ] + ay Sin[ϕ], ay Cos[ϕ] - ax Sin[ϕ]}

                aCartToCyl[{μ x1 - x2 - σ x1 (x1^2 + x2^2),
                x1 + μ x2 - σ x2 (x1^2 + x2^2)}] // Simplify;

                % /. {x1 -> r Cos[ϕ], x2 -> r Sin[ϕ]} // Simplify
                (*{μ r - r^3 σ, r}*)





                share|improve this answer











                $endgroup$



                My slightly different method matches Mathematica.



                aCartToCyl[{ax_, ay_}] := {ax Cos[ϕ] + ay Sin[ϕ], ay Cos[ϕ] - ax Sin[ϕ]}

                aCartToCyl[{μ x1 - x2 - σ x1 (x1^2 + x2^2),
                x1 + μ x2 - σ x2 (x1^2 + x2^2)}] // Simplify;

                % /. {x1 -> r Cos[ϕ], x2 -> r Sin[ϕ]} // Simplify
                (*{μ r - r^3 σ, r}*)






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 2 hours ago

























                answered 18 hours ago









                Bill WattsBill Watts

                3,4511620




                3,4511620






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Mathematica Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    Use MathJax to format equations. MathJax reference.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f192821%2ferror-in-transformedfield%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    How to label and detect the document text images

                    Vallis Paradisi

                    Tabula Rosettana