Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

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?

share|improve this question
add comment

2 Answers

up vote 8 down vote accepted

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}]

enter image description here

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 =.

enter image description here

share|improve this answer
    
wow that's fantastic!!!! –  Slightly Jun 13 '13 at 21:21
    
I may be making another question where I couple the last point to the first point. I would then want to make the same type if thing, but take the i's and put them around in a circle. so that the 10 is equal to the 0. I already have all the individual plots of this, I would just need some guidance to how to put them in a circle instead of a line. –  Slightly Jun 13 '13 at 21:22
    
@James Edit this question. Put new code and questions here. I think there is no need to make another. May be You could also analyze this solution and answer Your own question. Tip: Table[{Cos[i*2Pi/11],Sin[i*2Pi/11],x[i][t]},{i,0,10}] –  Kuba Jun 13 '13 at 21:30
    
Hmm. let me see if I can come up with something –  Slightly Jun 13 '13 at 21:38
    
Would I have to use a parametric plot? –  Slightly Jun 13 '13 at 21:45
show 6 more comments

Solution by @Kuba can be easily extended to put the oscillators on a circle.

Loin = NDSolve[Stew, Table[x[i], {i, 0, 10}], {t, 50}];

fr[t_] = Transpose@{Most@Range[0, 2 Pi, 2 Pi/11], x[#][t]&/@Range[0, 10]} /. First@Loin;

r0 = 3;
Animate[
   ListPlot[
      Function[{th, r}, {(r0 + r) Cos[th], (r0 + r) Sin[th]}] @@@ fr[t], 
      PlotRange -> {{-5, 5}, {-5, 5}}, AspectRatio -> 1, 
      Prolog -> {Gray, Circle[{0, 0}, 3]}, Axes -> False, 
      PlotMarkers -> Automatic], 
  {t, 0, 50}]

enter image description here

share|improve this answer
    
That isn't working for me. And I wanted the 2nd edited part of the equation to be in a circle because they are all connected. –  Slightly Jun 13 '13 at 22:20
    
So replace the Solt with Loin. –  mmal Jun 13 '13 at 22:24
    
I got it. Thank you so much. –  Slightly Jun 13 '13 at 22:25
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.