Boundary Value Problem and FullSimplify












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

345111




345111












  • $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

            Plaza Victoria

            In PowerPoint, is there a keyboard shortcut for bulleted / numbered list?

            How to put 3 figures in Latex with 2 figures side by side and 1 below these side by side images but in...