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
$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
Mar 21 at 15:19
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
Mar 21 at 15:20
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 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 PlottingPlot3D[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
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
Mar 21 at 15:19
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
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
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 Mar 21 at 15:53
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
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