# Plot the velocity

So I am trying to find the connection between Forcing Amplitude and Velocity in a differential equation (Which is the part of system of differential equations).

Those system differential equations are $$y''(t)+500y'(t)+100y(t)=-A(\cos(500t)+2\cos(1000t))$$ $$300x'(t)=1000y(t)+500y'(t)-35\tanh(50x'(t))$$

Practically, I am trying to graph the change in parameter $A$ which is Forcing Amplitude, and its effect on $x'(t)$. I am not looking for instantaneous velocity, so for example calculating $x(t)/t$ when $t$ is big enough I think is sufficient.

I succeed to use Manipulate to graph $x(t)$ versus $t$ on various $A$ as below.

Manipulate[{xy = NDSolve[{
y''[t] + 500 y'[t] + 250 y[t] == -a*(Cos[500 t] + 2*Cos[1000 t]),y[0] == 0, y'[0] == 0,
333 x'[t] == 250 y[t] + 500*y'[t] - 35*Tanh[50 x'[t]], x[0] == 0},
{x, y}, {t, 0, 0.1}], Plot[{x[t] /. xy}, {t, 0, 0.1}],
MaxSteps -> Infinity}, {a, 0, 100}]


EDIT: I might be a bit unclear in writing my question. So my question is : Is it possible to take A as x axis and average velocity x'(t) as y axis?

This can be done in Mathematica via simple function call. You can put NDSolve into a function can relate its parameter and output.

A simple example

f[k_?NumericQ]:=Block[{sol},
sol=NDSolve[{y'[x]==-k*y[x]+3,y[0]==1},y,{x,0,30}];
((y[30]/30)/.sol)[[1]]
]


Then plot it in a regular way:

Plot[f[k], {k, 0.1, 0.7}]


The result is

here y[t]/t is set at t = 30 and k is the damping parameter. The NumericQ is essential to hold the function until a legitimate Real argument is passed into the function.

• Thank you Shenghui! This is what I am looking for! Nov 21, 2013 at 11:13
• If you can explain the function of Block and [[1]], it would be great! Nov 21, 2013 at 11:29
• The three scope horsemen in Mathematica are: Block, Module and With. They all have their features. What in common is that they allow you to prevent conflicts between the internal variable of a function with a global variable, which is usually black letters/symbols in input cell.
– yshk
Nov 21, 2013 at 19:11

You can try ParametricNDSolve with parameter a

xy = ParametricNDSolve[{y''[t] + 500. y'[t] + 250. y[t] +
a*(Cos[500. t] + 2*Cos[1000. t]) == 0, y[0] == 0, y'[0] == 0,
250. y[t] + 500.*y'[t] - 35*Tanh[50. x'[t]] - 333. x'[t] == 0,
x[0] == 0}, {x, y}, {t, 0, 0.1}, {a}]


And then Plot the solutions

Plot[Evaluate[Table[x'[a][t] /. xy, {a, 1, 8, 1}]], {t, 0, 0.1},
PlotRange -> All]


• Thank you Mataraki. I understand that this is a common approach in this kind of problem. However, it lacks a wider perspective on how the droplet velocity changes when A changes. For example, in the range of A=1 to 100 (stepsize 1) how the velocity behaves is still unclear in this approach. That is why I am interested in calculating x(t) divided by t when t is big enough. Nov 21, 2013 at 8:53