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
Is there a way to get `mathscr' with lower case letters in pdfLaTeX?
Extract more than nine arguments that occur periodically in a sentence to use in macros in order to typset
It grows, but water kills it
Why is the "ls" command showing permissions of files in a FAT32 partition?
Does Doodling or Improvising on the Piano Have Any Benefits?
Electoral considerations aside, what are potential benefits, for the US, of policy changes proposed by the tweet recognizing Golan annexation?
Non-trope happy ending?
Why "had" in "[something] we would have made had we used [something]"?
Do the primes contain an infinite almost arithmetic progression?
What are the advantages of simplicial model categories over non-simplicial ones?
How should I respond when I lied about my education and the company finds out through background check?
Yosemite Fire Rings - What to Expect?
Why does AES have exactly 10 rounds for a 128-bit key, 12 for 192 bits and 14 for a 256-bit key size?
Open a doc from terminal, but not by its name
Is aluminum electrical wire used on aircraft?
How could a planet have erratic days?
Limits and Infinite Integration by Parts
Keeping a ball lost forever
Pre-mixing cryogenic fuels and using only one fuel tank
creating a ":KeepCursor" command
Recommended PCB layout understanding - ADM2572 datasheet
Quoting Keynes in a lecture
How do you respond to a colleague from another team when they're wrongly expecting that you'll help them?
Plot of a tornado-shaped surface
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
$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)"]
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)"]
What's going wrong here?
differential-equations simplifying-expressions
$endgroup$
add a comment |
$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)"]
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)"]
What's going wrong here?
differential-equations simplifying-expressions
$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
yesterday
1
$begingroup$
@dpholmes PlottingPlot3D[Evaluate[aSol, FullSimplify[aSol, [Epsilon] > 0]], t, 0, 1, [Epsilon], 0, 1]
reveals that it might be a precision problem.
$endgroup$
– Henrik Schumacher
yesterday
add a comment |
$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)"]
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)"]
What's going wrong here?
differential-equations simplifying-expressions
$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)"]
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)"]
What's going wrong here?
differential-equations simplifying-expressions
differential-equations simplifying-expressions
edited yesterday
MarcoB
37.9k556114
37.9k556114
asked yesterday
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
yesterday
1
$begingroup$
@dpholmes PlottingPlot3D[Evaluate[aSol, FullSimplify[aSol, [Epsilon] > 0]], t, 0, 1, [Epsilon], 0, 1]
reveals that it might be a precision problem.
$endgroup$
– Henrik Schumacher
yesterday
add a comment |
$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
yesterday
1
$begingroup$
@dpholmes PlottingPlot3D[Evaluate[aSol, FullSimplify[aSol, [Epsilon] > 0]], t, 0, 1, [Epsilon], 0, 1]
reveals that it might be a precision problem.
$endgroup$
– Henrik Schumacher
yesterday
$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
yesterday
$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
yesterday
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
yesterday
$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
yesterday
add a comment |
1 Answer
1
active
oldest
votes
$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
]
$endgroup$
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
$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
]
$endgroup$
add a comment |
$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
]
$endgroup$
add a comment |
$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
]
$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
]
answered yesterday
MarcoBMarcoB
37.9k556114
37.9k556114
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
$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
yesterday
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
yesterday