Boundary Value Problem and FullSimplifyI failed to solve a set of one-dimension fluid mechanics PDEs with NDSolveDSolve gives complex function although the solution is a real oneNumerical solution of coupled ODEs with boundary conditionsNDSolve and strange “nonlinear coefficients problem”Reaction-diffusion PDE with NDSolve: either very slow or very inaccurateSolution of nonlinear system with boundary conditionsDSolve, NDSolve with WhenEvent Give Incorrect Solution for Simple ODEInhomogeneous Neumann boundary conditions for diffusion equationAnalyitic and numerical solutions plots of PDE are different!Not sure how to set up the Laplacian/Poisson Equation

Avoiding estate tax by giving multiple gifts

What is the difference between "behavior" and "behaviour"?

How can I kill an app using Terminal?

Is there a problem with hiding "forgot password" until it's needed?

What can we do to stop prior company from asking us questions?

Tiptoe or tiphoof? Adjusting words to better fit fantasy races

How do I find the solutions of the following equation?

What is paid subscription needed for in Mortal Kombat 11?

How do I rename a Linux host without needing to reboot for the rename to take effect?

How do I extract a value from a time formatted value in excel?

Why are there no referendums in the US?

Is exact Kanji stroke length important?

How does Loki do this?

What is the intuitive meaning of having a linear relationship between the logs of two variables?

How does the UK government determine the size of a mandate?

Do the temporary hit points from the Battlerager barbarian's Reckless Abandon stack if I make multiple attacks on my turn?

Why not increase contact surface when reentering the atmosphere?

India just shot down a satellite from the ground. At what altitude range is the resulting debris field?

Anatomically Correct Strange Women In Ponds Distributing Swords

Hostile work environment after whistle-blowing on coworker and our boss. What do I do?

Is HostGator storing my password in plaintext?

Arithmetic mean geometric mean inequality unclear

How to pronounce the slash sign

Inappropriate reference requests from Journal reviewers



Boundary Value Problem and FullSimplify


I failed to solve a set of one-dimension fluid mechanics PDEs with NDSolveDSolve gives complex function although the solution is a real oneNumerical solution of coupled ODEs with boundary conditionsNDSolve and strange “nonlinear coefficients problem”Reaction-diffusion PDE with NDSolve: either very slow or very inaccurateSolution of nonlinear system with boundary conditionsDSolve, NDSolve with WhenEvent Give Incorrect Solution for Simple ODEInhomogeneous Neumann boundary conditions for diffusion equationAnalyitic and numerical solutions plots of PDE are different!Not sure how to set up the Laplacian/Poisson Equation













3












$begingroup$


I'm confused about the output Mathematica is giving me when solving a boundary value problem of the form:



eq = ϵ y''[t] + 2 y'[t] + 2 y[t] == 0;
bc1 = y[0] == 0;
bc2 = y[1] == 1;

aSol = y[t] /. DSolve[eq, bc1, bc2, y[t], t][[1]][[1]]


This yields the correct answer, and produces plots like this for ep=1, ep=0.1, and ep=0.01.



Plot[
aSol /. ϵ -> 1,
aSol /. ϵ -> 0.1,
aSol /. ϵ -> 0.01,
t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]


enter image description here



So far, so good!



However, if I simply ask Mathematica to FullSimplify[aSol], the resulting solution is no longer correct, and it does not satisfy one of the boundary conditions:



aSolSimpl = FullSimplify[aSol]

Plot[
aSol /. ϵ -> 0.05,
aSolSimpl /. ϵ -> 0.05
, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]


enter image description here



What's going wrong here?










share|improve this question











$endgroup$











  • $begingroup$
    i think because you assign Epsilon different values. i used Full Simplify and it was fine with me use it as follow to check aSol = y[t] /. DSolve[eq, bc1, bc2, y[t], t] /. [Epsilon] -> 1 aSolSimpl = FullSimplify[aSol] /. [Epsilon] -> 1 Plot[aSol, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"] Plot[aSolSimpl, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]
    $endgroup$
    – Alrubaie
    Mar 21 at 15:19







  • 1




    $begingroup$
    @dpholmes Plotting Plot3D[Evaluate[aSol, FullSimplify[aSol, [Epsilon] > 0]], t, 0, 1, [Epsilon], 0, 1] reveals that it might be a precision problem.
    $endgroup$
    – Henrik Schumacher
    Mar 21 at 15:20















3












$begingroup$


I'm confused about the output Mathematica is giving me when solving a boundary value problem of the form:



eq = ϵ y''[t] + 2 y'[t] + 2 y[t] == 0;
bc1 = y[0] == 0;
bc2 = y[1] == 1;

aSol = y[t] /. DSolve[eq, bc1, bc2, y[t], t][[1]][[1]]


This yields the correct answer, and produces plots like this for ep=1, ep=0.1, and ep=0.01.



Plot[
aSol /. ϵ -> 1,
aSol /. ϵ -> 0.1,
aSol /. ϵ -> 0.01,
t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]


enter image description here



So far, so good!



However, if I simply ask Mathematica to FullSimplify[aSol], the resulting solution is no longer correct, and it does not satisfy one of the boundary conditions:



aSolSimpl = FullSimplify[aSol]

Plot[
aSol /. ϵ -> 0.05,
aSolSimpl /. ϵ -> 0.05
, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]


enter image description here



What's going wrong here?










share|improve this question











$endgroup$











  • $begingroup$
    i think because you assign Epsilon different values. i used Full Simplify and it was fine with me use it as follow to check aSol = y[t] /. DSolve[eq, bc1, bc2, y[t], t] /. [Epsilon] -> 1 aSolSimpl = FullSimplify[aSol] /. [Epsilon] -> 1 Plot[aSol, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"] Plot[aSolSimpl, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]
    $endgroup$
    – Alrubaie
    Mar 21 at 15:19







  • 1




    $begingroup$
    @dpholmes Plotting Plot3D[Evaluate[aSol, FullSimplify[aSol, [Epsilon] > 0]], t, 0, 1, [Epsilon], 0, 1] reveals that it might be a precision problem.
    $endgroup$
    – Henrik Schumacher
    Mar 21 at 15:20













3












3








3





$begingroup$


I'm confused about the output Mathematica is giving me when solving a boundary value problem of the form:



eq = ϵ y''[t] + 2 y'[t] + 2 y[t] == 0;
bc1 = y[0] == 0;
bc2 = y[1] == 1;

aSol = y[t] /. DSolve[eq, bc1, bc2, y[t], t][[1]][[1]]


This yields the correct answer, and produces plots like this for ep=1, ep=0.1, and ep=0.01.



Plot[
aSol /. ϵ -> 1,
aSol /. ϵ -> 0.1,
aSol /. ϵ -> 0.01,
t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]


enter image description here



So far, so good!



However, if I simply ask Mathematica to FullSimplify[aSol], the resulting solution is no longer correct, and it does not satisfy one of the boundary conditions:



aSolSimpl = FullSimplify[aSol]

Plot[
aSol /. ϵ -> 0.05,
aSolSimpl /. ϵ -> 0.05
, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]


enter image description here



What's going wrong here?










share|improve this question











$endgroup$




I'm confused about the output Mathematica is giving me when solving a boundary value problem of the form:



eq = ϵ y''[t] + 2 y'[t] + 2 y[t] == 0;
bc1 = y[0] == 0;
bc2 = y[1] == 1;

aSol = y[t] /. DSolve[eq, bc1, bc2, y[t], t][[1]][[1]]


This yields the correct answer, and produces plots like this for ep=1, ep=0.1, and ep=0.01.



Plot[
aSol /. ϵ -> 1,
aSol /. ϵ -> 0.1,
aSol /. ϵ -> 0.01,
t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]


enter image description here



So far, so good!



However, if I simply ask Mathematica to FullSimplify[aSol], the resulting solution is no longer correct, and it does not satisfy one of the boundary conditions:



aSolSimpl = FullSimplify[aSol]

Plot[
aSol /. ϵ -> 0.05,
aSolSimpl /. ϵ -> 0.05
, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]


enter image description here



What's going wrong here?







differential-equations simplifying-expressions






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 21 at 15:41









MarcoB

37.9k556114




37.9k556114










asked Mar 21 at 14:57









dpholmesdpholmes

350111




350111











  • $begingroup$
    i think because you assign Epsilon different values. i used Full Simplify and it was fine with me use it as follow to check aSol = y[t] /. DSolve[eq, bc1, bc2, y[t], t] /. [Epsilon] -> 1 aSolSimpl = FullSimplify[aSol] /. [Epsilon] -> 1 Plot[aSol, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"] Plot[aSolSimpl, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]
    $endgroup$
    – Alrubaie
    Mar 21 at 15:19







  • 1




    $begingroup$
    @dpholmes Plotting Plot3D[Evaluate[aSol, FullSimplify[aSol, [Epsilon] > 0]], t, 0, 1, [Epsilon], 0, 1] reveals that it might be a precision problem.
    $endgroup$
    – Henrik Schumacher
    Mar 21 at 15:20
















  • $begingroup$
    i think because you assign Epsilon different values. i used Full Simplify and it was fine with me use it as follow to check aSol = y[t] /. DSolve[eq, bc1, bc2, y[t], t] /. [Epsilon] -> 1 aSolSimpl = FullSimplify[aSol] /. [Epsilon] -> 1 Plot[aSol, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"] Plot[aSolSimpl, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]
    $endgroup$
    – Alrubaie
    Mar 21 at 15:19







  • 1




    $begingroup$
    @dpholmes Plotting Plot3D[Evaluate[aSol, FullSimplify[aSol, [Epsilon] > 0]], t, 0, 1, [Epsilon], 0, 1] reveals that it might be a precision problem.
    $endgroup$
    – Henrik Schumacher
    Mar 21 at 15:20















$begingroup$
i think because you assign Epsilon different values. i used Full Simplify and it was fine with me use it as follow to check aSol = y[t] /. DSolve[eq, bc1, bc2, y[t], t] /. [Epsilon] -> 1 aSolSimpl = FullSimplify[aSol] /. [Epsilon] -> 1 Plot[aSol, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"] Plot[aSolSimpl, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]
$endgroup$
– Alrubaie
Mar 21 at 15:19





$begingroup$
i think because you assign Epsilon different values. i used Full Simplify and it was fine with me use it as follow to check aSol = y[t] /. DSolve[eq, bc1, bc2, y[t], t] /. [Epsilon] -> 1 aSolSimpl = FullSimplify[aSol] /. [Epsilon] -> 1 Plot[aSol, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"] Plot[aSolSimpl, t, 0, 1, Frame -> True, FrameLabel -> "t", "y(t)"]
$endgroup$
– Alrubaie
Mar 21 at 15:19





1




1




$begingroup$
@dpholmes Plotting Plot3D[Evaluate[aSol, FullSimplify[aSol, [Epsilon] > 0]], t, 0, 1, [Epsilon], 0, 1] reveals that it might be a precision problem.
$endgroup$
– Henrik Schumacher
Mar 21 at 15:20




$begingroup$
@dpholmes Plotting Plot3D[Evaluate[aSol, FullSimplify[aSol, [Epsilon] > 0]], t, 0, 1, [Epsilon], 0, 1] reveals that it might be a precision problem.
$endgroup$
– Henrik Schumacher
Mar 21 at 15:20










1 Answer
1






active

oldest

votes


















5












$begingroup$

This behavior seems due to precision problems, as Henrik suggested in comments:



aSol = DSolveValue[eq, bc1, bc2, y[t], t];
aSolSimpl = FullSimplify[aSol];

Plot[Evaluate[aSol /. ϵ -> 1, 1/10, 1/100], t, 0, 1]

Plot[
Evaluate[aSolSimpl /. ϵ -> 1, 1/10, 1/100], t, 0, 1,
WorkingPrecision -> $MachinePrecision
]


Mathematica graphics






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%2f193714%2fboundary-value-problem-and-fullsimplify%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    5












    $begingroup$

    This behavior seems due to precision problems, as Henrik suggested in comments:



    aSol = DSolveValue[eq, bc1, bc2, y[t], t];
    aSolSimpl = FullSimplify[aSol];

    Plot[Evaluate[aSol /. ϵ -> 1, 1/10, 1/100], t, 0, 1]

    Plot[
    Evaluate[aSolSimpl /. ϵ -> 1, 1/10, 1/100], t, 0, 1,
    WorkingPrecision -> $MachinePrecision
    ]


    Mathematica graphics






    share|improve this answer









    $endgroup$

















      5












      $begingroup$

      This behavior seems due to precision problems, as Henrik suggested in comments:



      aSol = DSolveValue[eq, bc1, bc2, y[t], t];
      aSolSimpl = FullSimplify[aSol];

      Plot[Evaluate[aSol /. ϵ -> 1, 1/10, 1/100], t, 0, 1]

      Plot[
      Evaluate[aSolSimpl /. ϵ -> 1, 1/10, 1/100], t, 0, 1,
      WorkingPrecision -> $MachinePrecision
      ]


      Mathematica graphics






      share|improve this answer









      $endgroup$















        5












        5








        5





        $begingroup$

        This behavior seems due to precision problems, as Henrik suggested in comments:



        aSol = DSolveValue[eq, bc1, bc2, y[t], t];
        aSolSimpl = FullSimplify[aSol];

        Plot[Evaluate[aSol /. ϵ -> 1, 1/10, 1/100], t, 0, 1]

        Plot[
        Evaluate[aSolSimpl /. ϵ -> 1, 1/10, 1/100], t, 0, 1,
        WorkingPrecision -> $MachinePrecision
        ]


        Mathematica graphics






        share|improve this answer









        $endgroup$



        This behavior seems due to precision problems, as Henrik suggested in comments:



        aSol = DSolveValue[eq, bc1, bc2, y[t], t];
        aSolSimpl = FullSimplify[aSol];

        Plot[Evaluate[aSol /. ϵ -> 1, 1/10, 1/100], t, 0, 1]

        Plot[
        Evaluate[aSolSimpl /. ϵ -> 1, 1/10, 1/100], t, 0, 1,
        WorkingPrecision -> $MachinePrecision
        ]


        Mathematica graphics







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 21 at 15:53









        MarcoBMarcoB

        37.9k556114




        37.9k556114



























            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%2f193714%2fboundary-value-problem-and-fullsimplify%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

            Adding axes to figuresAdding axes labels to LaTeX figuresLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?adding axes to shapesAlign axes across subfiguresAdding figures with a certain orderLine up nested tikz enviroments or how to get rid of themAdding axes labels to LaTeX figures

            Luettelo Yhdysvaltain laivaston lentotukialuksista Lähteet | Navigointivalikko

            Gary (muusikko) Sisällysluettelo Historia | Rockin' High | Lähteet | Aiheesta muualla | NavigointivalikkoInfobox OKTuomas "Gary" Keskinen Ancaran kitaristiksiProjekti Rockin' High