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

            Rank groups within a grouped sequence of TRUE/FALSE and NAGrouping functions (tapply, by, aggregate) and the *apply familyCharacters counting and subletting specific patternsWhat is the purpose of setting a key in data.table?data.table vs dplyr: can one do something well the other can't or does poorly?how to make a bar plot for a list of dataframes?How to group by unique values in a list in RPandas - Alternative to rank() function that gives unique ordinal ranks for a columnRank within group in for loop in RData transformation: from dyadic to observational data in RGetting map from purrr to work with paste0

            Are all passive ability checks floors for active ability checks?Does passive perception supersede active perception?Which skills can be used passively?Active Opposition with Free-Form Professions in Fate5E Trap/Ambush/Stealth Mechanics VS Passive Perception ConfusionInteraction between perception and stealth in obscured conditionsHow does Keen Sight affect Passive Perception?Are all d20 rolls either attacks, saves or ability checks?Can players declare that they are making a specific ability check?Can I see a Hidden creature that is not obscured at all?Can a Stealth check ever be made passively?Is this alternate version of the Observant feat balanced?What is the minimum amount of skill points per HD?

            Quoting Keynes in a lectureIs differentiated instruction permitted by universities?How to make students learn prerequisitesUnsatisfactory Instructor Evaluations: balancing of expectations of engineering studentsWhat is the difference between a “statistician”, “applied statistician”, and an academic applying advanced stats within their field?Listing in reference section, but not quotingHow to efficiently use time while preparing for a class?Graduate Admissions: Teaching Emphasisstrategies for sharing teaching information with universities I don't personally have contacts withIs there an efficient way to give a large class of students feedback about their assignments?Is it unreasonable to expect students to read the lecture notes before attending the first class?