Mathematica Optimizing DE Solutions with Mathematica: Plotting x[t] vs. t"

  • Thread starter Thread starter Nusc
  • Start date Start date
  • Tags Tags
    Mathematica
AI Thread Summary
The discussion focuses on solving a differential equation using Mathematica, specifically the equation x'[t] == (α - (x[t] - 1)^2)x[t] with an initial condition. Users encounter errors when attempting to solve symbolically due to the non-algebraic nature of the equations and boundary conditions. A suggested workaround is to use NDSolve for numerical solutions, ensuring that α is assigned a numerical value. The correct implementation involves defining α before calling NDSolve and then plotting the result with the specified time interval. Ultimately, users are guided to ensure all expressions are numerical to successfully plot the solution.
Nusc
Messages
752
Reaction score
2
DSolve[{x'[t] == (\[Alpha] - (x[t] - 1)^2) x[t], x[0] == 0.004}, x[t],
t]


I get the following message:
Solve::tdep: The equations appear to involve the variables to be solved for in an essentially non-algebraic way. >>

DSolve::bvnul: For some branches of the general solution, the given boundary conditions lead to an empty solution. >>


What do I do?

I need to plot the solution.
 
Physics news on Phys.org
If you just need the plot, you can try solving it numerically.

NDSolve[{x'[t] == (\[Alpha] - (x[t] - 1)^2) x[t], x[0] == 0.004}, x[t], {t, 0, 10}]

(note how you need to specify an interval)
 
I get the following:

NDSolve::ndnum: Encountered non-numerical value for a derivative at t == 0.`. >>
 
Ah right, my mistake.
You can only solve it numerically if the entire expression is numerical. It chokes on \[Alpha] being symbolic, if you plug in a value for \[Alpha] it does work, e.g.

Code:
Block[ { \[Alpha] = 1 },
  NDSolve[{x'[t] == (\[Alpha] - (x[t] - 1)^2) x[t], x[0] == 0.004}, x[t], {t, 0, 10}]
]

Will that do for you, or do you need an exact solution?
 
I receive the following:

{{x[t] -> \!\(\*
TagBox[
RowBox[{"InterpolatingFunction", "[",
RowBox[{
RowBox[{"{",
RowBox[{"{",
RowBox[{"0.`", ",", "10.`"}], "}"}], "}"}], ",", "\<\"<>\"\>"}], "]"}],
False,
Editable->False]\)[t]}}

I can set the value for alpha but I don't obtain a numerical solution. Then I have to plot the solution.
 
Code:
s = NDSolve[{x'[t] == (4 - (x[t] - 1)^2) x[t], x[0] == 0.004}, 
  x[t], {t, 0, 10}]
Plot[Evaluate[x[t] /. s], {t, 0, 10}, PlotRange -> All]


notice you have to put in something for alpha, like previously stated. i did 4.
 

Similar threads

Replies
1
Views
3K
Replies
3
Views
3K
Replies
4
Views
3K
Replies
1
Views
7K
Replies
1
Views
5K
Replies
1
Views
3K
Replies
1
Views
4K
Replies
2
Views
3K
Replies
2
Views
7K
Back
Top