Skip to main content
cleaned added error message
Source Link
Nasser
  • 150.6k
  • 12
  • 162
  • 376

You can't use VectorPlot3D if the independent variable is the same. t in your case. You'll get errors such as

VectorPlot3D::glims: Range specifications {t,0,100} and {t,0,100} \ 
contain the same iteration variable.

So, I am not surewithout knowing what you are trying to do. But by replacing here, I replaced t to new independent variable for each one of your solutions x,r,y just to make VectorPlot3D happy, now you can now use VectorPlot3D.

And it really helps to break the steps out to see what is going on. Instead of writing f[g[y[...]]]] and then wondering where is the problem, one can write

result = y[..]
result = g[result]
result = f[result]

and put each step in separate cell, then you can see more easily see in which step the problem was and correct it.

Manipulate[
 
 Module[{sol, t, x, r, y, r1, x1, y1},
  sol = First@NDSolve[{
      r'[t] == i - l*r[t] - ux*r[t]*x[t] - uy*r[t]*y[t],
      x'[t] == -mx*x[t] + ex*ux*r[t]*x[t],
      y'[t] == -my*y[t] + ey*uy*r[t]*y[t],
      r[0] == 1, x[0] == 1, y[0] == 1}, {r[t], x[t], y[t]}, {t, 0, 
      1000}, MaxSteps -> Infinity, AccuracyGoal -> 10];
  
  r = (r[t] /. sol) /. t -> r1;
  x = (r[t] /. sol) /. t -> x1;
  y = (r[t] /. sol) /. t -> y1;
  
  VectorPlot3D[{r, x, y}, {r1, 0, 1000}, {x1, 0, 1000}, {y1, 0, 1000},
    VectorColorFunction -> "DeepSeaColors"]      
  ],
 
 {i, 0, 100}, {l, 0, 1}, {ux, 0, 1},
 {uy, 0, 1}, {mx, 0, 1}, {my, 0, 1}, {ex, 0, 1}, {ey, 0, 1}
 ]

Mathematica graphics

You can't use VectorPlot3D if the independent variable is the same. t in your case. So, I am not sure what you are trying to do. But by replacing t to new independent variable for each one of your solutions x,r,y just to make VectorPlot3D happy, you can now use VectorPlot3D.

And it really helps to break the steps out to see what is going on. Instead of writing f[g[y[...]]]] and then wondering where is the problem, one can write

result = y[..]
result = g[result]
result = f[result]

and put each step in separate cell, then you can see more easily see in which step the problem was and correct it.

Manipulate[
 
 Module[{sol, t, x, r, y, r1, x1, y1},
  sol = First@NDSolve[{
      r'[t] == i - l*r[t] - ux*r[t]*x[t] - uy*r[t]*y[t],
      x'[t] == -mx*x[t] + ex*ux*r[t]*x[t],
      y'[t] == -my*y[t] + ey*uy*r[t]*y[t],
      r[0] == 1, x[0] == 1, y[0] == 1}, {r[t], x[t], y[t]}, {t, 0, 
      1000}, MaxSteps -> Infinity, AccuracyGoal -> 10];
  
  r = (r[t] /. sol) /. t -> r1;
  x = (r[t] /. sol) /. t -> x1;
  y = (r[t] /. sol) /. t -> y1;
  
  VectorPlot3D[{r, x, y}, {r1, 0, 1000}, {x1, 0, 1000}, {y1, 0, 1000},
    VectorColorFunction -> "DeepSeaColors"]      
  ],
 
 {i, 0, 100}, {l, 0, 1}, {ux, 0, 1},
 {uy, 0, 1}, {mx, 0, 1}, {my, 0, 1}, {ex, 0, 1}, {ey, 0, 1}
 ]

Mathematica graphics

You can't use VectorPlot3D if the independent variable is the same. t in your case. You'll get errors such as

VectorPlot3D::glims: Range specifications {t,0,100} and {t,0,100} \ 
contain the same iteration variable.

So, without knowing what you are trying to do here, I replaced t to new independent variable for each one of your solutions x,r,y just to make VectorPlot3D happy now you can now use VectorPlot3D.

And it really helps to break the steps out to see what is going on. Instead of writing f[g[y[...]]]] and then wondering where is the problem, one can write

result = y[..]
result = g[result]
result = f[result]

and put each step in separate cell, then you can see more easily see in which step the problem was and correct it.

Manipulate[
 
 Module[{sol, t, x, r, y, r1, x1, y1},
  sol = First@NDSolve[{
      r'[t] == i - l*r[t] - ux*r[t]*x[t] - uy*r[t]*y[t],
      x'[t] == -mx*x[t] + ex*ux*r[t]*x[t],
      y'[t] == -my*y[t] + ey*uy*r[t]*y[t],
      r[0] == 1, x[0] == 1, y[0] == 1}, {r[t], x[t], y[t]}, {t, 0, 
      1000}, MaxSteps -> Infinity, AccuracyGoal -> 10];
  
  r = (r[t] /. sol) /. t -> r1;
  x = (r[t] /. sol) /. t -> x1;
  y = (r[t] /. sol) /. t -> y1;
  
  VectorPlot3D[{r, x, y}, {r1, 0, 1000}, {x1, 0, 1000}, {y1, 0, 1000},
    VectorColorFunction -> "DeepSeaColors"]      
  ],
 
 {i, 0, 100}, {l, 0, 1}, {ux, 0, 1},
 {uy, 0, 1}, {mx, 0, 1}, {my, 0, 1}, {ex, 0, 1}, {ey, 0, 1}
 ]

Mathematica graphics

added 62 characters in body
Source Link
Nasser
  • 150.6k
  • 12
  • 162
  • 376

You can't use VectorPlot3D if the independent variable is the same. t in your case. So, I am not sure what you are trying to do. But by replacing t to new independent variable for each one of your solutions x,r,y just to make VectorPlot3D happy, you can now use VectorPlot3D.

And it really helps to break the steps out to see what is going on. Instead of writing f[g[y[...]]]] and then wondering where is the problem, one can write

result = y[..]
result = g[result]
result = f[result]

This wayand put each step in separate cell, then you can see more easily see in which step the problem was and correct it.

Manipulate[
 
 Module[{sol, t, x, r, y, r1, x1, y1},
  sol = First@NDSolve[{
      r'[t] == i - l*r[t] - ux*r[t]*x[t] - uy*r[t]*y[t],
      x'[t] == -mx*x[t] + ex*ux*r[t]*x[t],
      y'[t] == -my*y[t] + ey*uy*r[t]*y[t],
      r[0] == 1, x[0] == 1, y[0] == 1}, {r[t], x[t], y[t]}, {t, 0, 
      1000}, MaxSteps -> Infinity, AccuracyGoal -> 10];
  
  r = (r[t] /. sol) /. t -> r1;
  x = (r[t] /. sol) /. t -> x1;
  y = (r[t] /. sol) /. t -> y1;
  
  VectorPlot3D[{r, x, y}, {r1, 0, 1000}, {x1, 0, 1000}, {y1, 0, 1000},
    VectorColorFunction -> "DeepSeaColors"]      
  ],
 
 {i, 0, 100}, {l, 0, 1}, {ux, 0, 1},
 {uy, 0, 1}, {mx, 0, 1}, {my, 0, 1}, {ex, 0, 1}, {ey, 0, 1}
 ]

Mathematica graphics

You can't use VectorPlot3D if the independent variable is the same. t in your case. So, I am not sure what you are trying to do. But by replacing t to new independent variable for each one of your solutions x,r,y just to make VectorPlot3D happy, you can now use VectorPlot3D.

And it really helps to break the steps out to see what is going on. Instead of writing f[g[y[...]]]] and then wondering where is the problem, one can write

result = y[..]
result = g[result]
result = f[result]

This way, you can see in which step the problem was.

Manipulate[
 
 Module[{sol, t, x, r, y, r1, x1, y1},
  sol = First@NDSolve[{
      r'[t] == i - l*r[t] - ux*r[t]*x[t] - uy*r[t]*y[t],
      x'[t] == -mx*x[t] + ex*ux*r[t]*x[t],
      y'[t] == -my*y[t] + ey*uy*r[t]*y[t],
      r[0] == 1, x[0] == 1, y[0] == 1}, {r[t], x[t], y[t]}, {t, 0, 
      1000}, MaxSteps -> Infinity, AccuracyGoal -> 10];
  
  r = (r[t] /. sol) /. t -> r1;
  x = (r[t] /. sol) /. t -> x1;
  y = (r[t] /. sol) /. t -> y1;
  
  VectorPlot3D[{r, x, y}, {r1, 0, 1000}, {x1, 0, 1000}, {y1, 0, 1000},
    VectorColorFunction -> "DeepSeaColors"]      
  ],
 
 {i, 0, 100}, {l, 0, 1}, {ux, 0, 1},
 {uy, 0, 1}, {mx, 0, 1}, {my, 0, 1}, {ex, 0, 1}, {ey, 0, 1}
 ]

Mathematica graphics

You can't use VectorPlot3D if the independent variable is the same. t in your case. So, I am not sure what you are trying to do. But by replacing t to new independent variable for each one of your solutions x,r,y just to make VectorPlot3D happy, you can now use VectorPlot3D.

And it really helps to break the steps out to see what is going on. Instead of writing f[g[y[...]]]] and then wondering where is the problem, one can write

result = y[..]
result = g[result]
result = f[result]

and put each step in separate cell, then you can see more easily see in which step the problem was and correct it.

Manipulate[
 
 Module[{sol, t, x, r, y, r1, x1, y1},
  sol = First@NDSolve[{
      r'[t] == i - l*r[t] - ux*r[t]*x[t] - uy*r[t]*y[t],
      x'[t] == -mx*x[t] + ex*ux*r[t]*x[t],
      y'[t] == -my*y[t] + ey*uy*r[t]*y[t],
      r[0] == 1, x[0] == 1, y[0] == 1}, {r[t], x[t], y[t]}, {t, 0, 
      1000}, MaxSteps -> Infinity, AccuracyGoal -> 10];
  
  r = (r[t] /. sol) /. t -> r1;
  x = (r[t] /. sol) /. t -> x1;
  y = (r[t] /. sol) /. t -> y1;
  
  VectorPlot3D[{r, x, y}, {r1, 0, 1000}, {x1, 0, 1000}, {y1, 0, 1000},
    VectorColorFunction -> "DeepSeaColors"]      
  ],
 
 {i, 0, 100}, {l, 0, 1}, {ux, 0, 1},
 {uy, 0, 1}, {mx, 0, 1}, {my, 0, 1}, {ex, 0, 1}, {ey, 0, 1}
 ]

Mathematica graphics

Source Link
Nasser
  • 150.6k
  • 12
  • 162
  • 376

You can't use VectorPlot3D if the independent variable is the same. t in your case. So, I am not sure what you are trying to do. But by replacing t to new independent variable for each one of your solutions x,r,y just to make VectorPlot3D happy, you can now use VectorPlot3D.

And it really helps to break the steps out to see what is going on. Instead of writing f[g[y[...]]]] and then wondering where is the problem, one can write

result = y[..]
result = g[result]
result = f[result]

This way, you can see in which step the problem was.

Manipulate[
 
 Module[{sol, t, x, r, y, r1, x1, y1},
  sol = First@NDSolve[{
      r'[t] == i - l*r[t] - ux*r[t]*x[t] - uy*r[t]*y[t],
      x'[t] == -mx*x[t] + ex*ux*r[t]*x[t],
      y'[t] == -my*y[t] + ey*uy*r[t]*y[t],
      r[0] == 1, x[0] == 1, y[0] == 1}, {r[t], x[t], y[t]}, {t, 0, 
      1000}, MaxSteps -> Infinity, AccuracyGoal -> 10];
  
  r = (r[t] /. sol) /. t -> r1;
  x = (r[t] /. sol) /. t -> x1;
  y = (r[t] /. sol) /. t -> y1;
  
  VectorPlot3D[{r, x, y}, {r1, 0, 1000}, {x1, 0, 1000}, {y1, 0, 1000},
    VectorColorFunction -> "DeepSeaColors"]      
  ],
 
 {i, 0, 100}, {l, 0, 1}, {ux, 0, 1},
 {uy, 0, 1}, {mx, 0, 1}, {my, 0, 1}, {ex, 0, 1}, {ey, 0, 1}
 ]

Mathematica graphics