Here are the differential equations that set's up the 11 coupled oscillators.
new = Join[
Table[x[i]''[t] == - x[i][t] +
0.1*(x[i + 1][t] - 2*x[i][t] + x[i - 1][t]), {i, 1,
9}], {x[0]''[t] == -x[0][t], x[10]''[t] == x[9][t], x[0][0] == 1,
x[0]'[0] == 1, x[1]'[0] == 0, x[1][0] == 0},
Table[x[i][0] == 0, {i, 2, 10}], Table[x[i]'[0] == 0, {i, 2, 10}]]
Here are the solutions.
Solt = NDSolve[new, Table[x[i], {i, 0, 10}], {t, 25}]
Here are the individual plots.
Table[Plot[Evaluate[x[i][t] /. Solt], {t, 0, 25},
PlotRange -> All], {i, 0, 10}]
I am trying to figure out how to make a graph so along the x-axis are my i's from 0 to 10, and I can watch the wave move along each oscillator as time moves on. I keep getting errors in which it floods my notebook and doesn't stop unless I close the kernel.
This is what I have so far, and I'm not sure how to incorporate time into this.
Plot[Evaluate[x[i][t] /. Solt], {i, 0, 10}]
EDIT Coupled in a circle
Stew = Join[
Table[x[i]''[t] == - x[i][t] +
0.1*(x[i + 1][t] - 2*x[i][t] + x[i - 1][t]), {i, 1,
9}], {x[10]''[t] == - x[10][t] +
0.1*(x[0][t] - 2*x[10][t] + x[9][t]),
x[0]''[t] == - x[0][t] +
0.1*(x[1][t] - 2*x[0][t] + x[10][t])}, {x[0][0] == 0,
x[0]'[0] == 0, x[1][0] == 1, x[1]'[0] == 0.5},
Table[x[i][0] == 0, {i, 2, 10}], Table[x[i]'[0] == 0, {i, 2, 10}]];
The Dsolve
Loin = NDSolve[Stew, Table[x[i], {i, 0, 10}], {t, 6.28}]
The individual graphs
Table[Plot[Evaluate[x[i][t] /. Loin], {t, 0, 6.28},
PlotRange -> All], {i, 0, 10}]
How would I go about putting the i=0 to 10 around in a circle?
Answer
After edit
I think oscillation directions should be parallel.
g[t_] = Table[{Cos[i*2 Pi/11], Sin[i*2 Pi/11], x[i][t]} /. Loin[[1]], {i, 0, 10}];
Animate[
Show[
ListPointPlot3D[g[t], PlotRange -> 1.5, BoxRatios -> 1, Filling -> Axis,
PlotStyle -> Directive@AbsolutePointSize@7, Boxed -> False],
ParametricPlot3D[{Cos@t, Sin@t, 0}, {t, 0, 2 Pi}, PlotStyle -> {Dashed, Black}]
,
ImageSize -> 500, ViewVector -> {{Cos[t/15], Sin[t/15], 1} 11, {0, 0, 0}},
AxesOrigin -> {0, 0, 0}, Ticks -> None, Axes -> True, AxesStyle -> {Red, Green, Blue},
SphericalRegion -> True],
{t, 0, 50}]
Before edit
f[t_] = Table[{i, x[i][t]} /. Solt[[1]], {i, 0, 10}];
Animate[
ListPlot[f[t], PlotRange -> {{0, 11}, {-1.5, 1.5}},
Joined -> True, PlotMarkers -> Automatic]
, {t, 0, 25}
]
Good to notice: In f[t]
definition :=
is intentionally replaced by =
.
Comments
Post a Comment