Moti unidimensionali

Una volta lanciato il programma nella cella desiderata, avviare l’animazione per la variabile t.

Con i cursori si possono variare i parametri delle leggi orarie.

Moto uniforme e uniformemente accelerato

ClearAll[x,v,p1,p2,p3];

x[t_,p1_,p2_,p3_]:= p1 t^2+p2 t +p3 ;   (* legge oraria per la coordinata x, con tre parametri liberi *)
(* v[t_,p1_,p2_,p3_]:=D[x[t,p1,p2,p3],t] ;   (* legge oraria per la coordinata x, con tre parametri liberi *) *)
v[t_,p1_,p2_,p3_]:=2 p1 t+p2

nstep=1000;   (* numero di valori per cui calcola ciascun parametro *)
xmin=0.;
xmax=1.1; (* massima coordinata per la visualizzazione *)

tmin=0.;  (* valore minimo della variabile t *)
tmax=.95;  (* valore massimo della variabile t *)
tstart=tmin;  (* valore iniziale della variabile t *)
tpasso=(tmax-tmin)/nstep;

p1nome="a";   (* dati per il parametro 1 *)
p1min=-10.;
p1max=10.;
p1start=0;
p1passo=(p1max-p1min)/nstep;

p2nome="(Subscript[v, 0])";   (* dati per il parametro 2 *)
p2min=-2.;
p2max=2.;
p2start=0.;
p2passo=(p2max-p2min)/nstep;

p3nome="(Subscript[x, 0])";   (* dati per il parametro 3 *)
p3min=-1.;
p3max=1.;
p3start=0.;
p3passo=(p3max-p3min)/nstep;


(*
Manipulate[
Column[{
Plot[x[t,x0,v0,a] /. {x0->x0val,v0->v0val,a->aval},{t,-tmax,tmax},PlotRange->{-2,2},ImageSize->300],
Plot[v[t,v0,a]/. {x0->x0val,v0->v0val,a->aval},{t,-tmax,tmax},PlotRange->{-2,2},ImageSize->300]
}
]
,
 (* {{t,tstart,"t"},tmin,tmax,tpasso}, *)
{{x0val,x0start,x0nome},x0min,x0max,x0passo},
{{v0val,v0start,v0nome},v0min,v0max,v0passo},
{{aval,astart,anome},amin,amax,apasso}
]
*)

Manipulate[
Column[{
Text["x(t) = (Subscript[x, 0]) + (Subscript[v, 0])t +\!\(\*FractionBox[\(\(\\ \)\(1\)\), \(2\)]\)(at^2)"],
Show[
Plot[{x[t2,p1,p2,p3]},{t2,-tmax,tmax},PlotRange->{-2,2},PlotStyle->Dashed,ImageSize->300,AxesLabel->{"t","x"}],
Graphics[{Blue,PointSize[Medium],Point[{t,x[t,p1,p2,p3]}]}],
{Graphics[{Dashed,Black,Line[{{t,0},{t,x[t,p1,p2,p3]}}]}],
Graphics[{Red,PointSize[Large],Point[{t,0}]}]},
{Graphics[{Dashed,Black,Line[{{0,x[t,p1,p2,p3]},{t,x[t,p1,p2,p3]}}]}],
Graphics[{Black,PointSize[Large],Point[{0,x[t,p1,p2,p3]}]}]}
]
,
Text["v(t) = (Subscript[v, 0]) + at"],
Show[
Plot[{v[t2,p1,p2,p3]},{t2,-tmax,tmax},PlotRange->{-4,4},PlotStyle->Dashed,ImageSize->300,AxesLabel->{"t","v"}],
Graphics[{Blue,PointSize[Medium],Point[{t,v[t,p1,p2,p3]}]}],
{Graphics[{Dashed,Black,Line[{{t,0},{t,v[t,p1,p2,p3]}}]}],
Graphics[{Red,PointSize[Large],Point[{t,0}]}]},
{Graphics[{Dashed,Black,Line[{{0,v[t,p1,p2,p3]},{t,v[t,p1,p2,p3]}}]}],
Graphics[{Black,PointSize[Large],Point[{0,v[t,p1,p2,p3]}]}]}
],
Show[
ParametricPlot[{x[t2,p1,p2,p3],0},{t2,-1,1},PlotRange->{-2,2},PlotStyle->None,ImageSize->300,Axes->{True,False},AxesLabel->{"x",""}],
Graphics[{PointSize[Large],Point[{x[t,p1,p2,p3],0}]}]
]
}
]
,
{{t,tstart,"t"},-tmax,tmax,tpasso,Appearance->"Open"}, 
{{p1,p1start,p1nome},p1min,p1max,p1passo,Appearance->"Open"},
{{p2,p2start,p2nome},p2min,p2max,p2passo,Appearance->"Open"},
{{p3,p3start,p3nome},p3min,p3max,p3passo,Appearance->"Open"},
ControlPlacement->Left
]

Moto armonico semplice

ClearAll[x,v,a,p1,p2,p3];

x[t_,p1_,p2_,p3_]:= p1 Sin[p2 t + p3];   (* legge oraria per la coordinata x, con tre parametri liberi *)
v[t_,p1_,p2_,p3_]:= Cos[p2 t + p3];   (* legge oraria per v, con tre parametri liberi *)
a[t_,p1_,p2_,p3_]:= -Sin[p2 t + p3];   (* legge oraria per a, con tre parametri liberi *)


nstep=1000;   (* numero di valori per cui calcola ciascun parametro *)
xmin=0.;
xmax=1.1; (* massima coordinata per la visualizzazione *)

tmin=0.;  (* valore minimo della variabile t *)
tmax=.95;  (* valore massimo della variabile t *)
tstart=tmin;  (* valore iniziale della variabile t *)
tpasso=(tmax-tmin)/nstep;

p1nome="A";   (* dati per il parametro 1 *)
p1min=0.;
p1max=2.;
p1start=1.;
p1passo=(p1max-p1min)/nstep;

p2nome="ω";   (* dati per il parametro 2 *)
p2min=0.1;
p2max=10.;
p2start=2 Pi;
p2passo=(p2max-p2min)/nstep;

p3nome="ϕ";   (* dati per il parametro 3 *)
p3min=0.;
p3max=2 Pi;
p3start=0.;
p3passo=(p3max-p3min)/nstep;


Manipulate[
Column[{
Text["x(t) = A sin(ωt+ϕ)"],
Show[
Plot[{x[t2,p1,p2,p3]},{t2,-tmax,tmax},PlotRange->{-2,2},PlotStyle->Dashed,ImageSize->300,AxesLabel->{"t","x/A"}],
Graphics[{Blue,PointSize[Medium],Point[{t,x[t,p1,p2,p3]}]}],
{Graphics[{Dashed,Black,Line[{{t,0},{t,x[t,p1,p2,p3]}}]}],
Graphics[{Red,PointSize[Large],Point[{t,0}]}]},
{Graphics[{Dashed,Black,Line[{{0,x[t,p1,p2,p3]},{t,x[t,p1,p2,p3]}}]}],
Graphics[{Black,PointSize[Large],Point[{0,x[t,p1,p2,p3]}]}]}
]
,
Text["v(t) = Aω cos(ωt+ϕ)"],
Show[
Plot[{v[t2,p1,p2,p3]},{t2,-tmax,tmax},PlotRange->{-2,2},PlotStyle->Dashed,ImageSize->300,AxesLabel->{"t","v/(Aω)"}],
Graphics[{Blue,PointSize[Medium],Point[{t,v[t,p1,p2,p3]}]}],
{Graphics[{Dashed,Black,Line[{{t,0},{t,v[t,p1,p2,p3]}}]}],
Graphics[{Red,PointSize[Large],Point[{t,0}]}]},
{Graphics[{Dashed,Black,Line[{{0,v[t,p1,p2,p3]},{t,v[t,p1,p2,p3]}}]}],
Graphics[{Black,PointSize[Large],Point[{0,v[t,p1,p2,p3]}]}]}
]
,
Show[
ParametricPlot[{x[t2,p1,p2,p3],0},{t2,-1,1},PlotRange->{-2,2},PlotStyle->None,ImageSize->300,Axes->{True,False},AxesLabel->{"x",""}],
Graphics[{PointSize[Large],Point[{x[t,p1,p2,p3],0}]}]
]}
]
,
{{t,tstart,"t"},-tmax,tmax,tpasso,Appearance->"Open"}, 
{{p1,p1start,p1nome},p1min,p1max,p1passo,Appearance->"Open"},
{{p2,p2start,p2nome},p2min,p2max,p2passo,Appearance->"Open"},
{{p3,p3start,p3nome},p3min,p3max,p3passo,Appearance->"Open"},
ControlPlacement->Left
]

Moto smorzato esponenzialmente 1

ClearAll[x,v,p1,p2,p3];

x[t_,p1_,p2_]:= p1 Exp[-t/p2];   (* legge oraria per la coordinata x, con tre parametri liberi *)
v[t_,p1_,p2_]:= -(p1/p2) Exp[-t/p2];   (* legge oraria per la velocità v, con tre parametri liberi *)

nstep=1000;   (* numero di valori per cui calcola ciascun parametro *)
xmin=0.;
xmax=1.1; (* massima coordinata per la visualizzazione *)

tmin=0.;  (* valore minimo della variabile t *)
tmax=.95;  (* valore massimo della variabile t *)
tstart=tmin;  (* valore iniziale della variabile t *)
tpasso=(tmax-tmin)/nstep;

p1nome="A";   (* dati per il parametro 1 *)
p1min=0.;
p1max=2.;
p1start=2.;
p1passo=(p1max-p1min)/nstep;

p2nome="τ";   (* dati per il parametro 2 *)
p2min=0.01;
p2max=2.;
p2start=.2;
p2passo=(p2max-p2min)/nstep;


Manipulate[
Column[{
Text["x(t) = A e^(-t/τ)"],
Show[
Plot[{x[t2,p1,p2]},{t2,0,tmax},PlotRange->{-.5,2},PlotStyle->Dashed,ImageSize->300,AxesLabel->{"t","x"}],
Graphics[{Blue,PointSize[Medium],Point[{t,x[t,p1,p2]}]}],
{Graphics[{Dashed,Black,Line[{{t,0},{t,x[t,p1,p2]}}]}],
Graphics[{Red,PointSize[Large],Point[{t,0}]}]},
{Graphics[{Dashed,Black,Line[{{0,x[t,p1,p2]},{t,x[t,p1,p2]}}]}],
Graphics[{Black,PointSize[Large],Point[{0,x[t,p1,p2]}]}]}
],
Text["v(t) = -(A/τ) e^(-t/τ)"],
Show[
Plot[{v[t2,p1,p2]},{t2,0,tmax},PlotRange->{-10,.5},PlotStyle->Dashed,ImageSize->300,AxesLabel->{"t","v"}],
Graphics[{Blue,PointSize[Medium],Point[{t,v[t,p1,p2]}]}],
{Graphics[{Dashed,Black,Line[{{t,0},{t,v[t,p1,p2]}}]}],
Graphics[{Red,PointSize[Large],Point[{t,0}]}]},
{Graphics[{Dashed,Black,Line[{{0,v[t,p1,p2]},{t,v[t,p1,p2]}}]}],
Graphics[{Black,PointSize[Large],Point[{0,v[t,p1,p2]}]}]}
],
Show[
ParametricPlot[{x[t2,p1,p2],0},{t2,0,1},PlotRange->{-.5,2},PlotStyle->None,ImageSize->300,Axes->{True,False},AxesLabel->{"x",""}],
Graphics[{PointSize[Large],Point[{x[t,p1,p2],0}]}]
]
}
]
,
{{t,tstart,"t"},0,tmax,tpasso,Appearance->"Open"}, 
{{p2,p2start,p2nome},p2min,p2max,p2passo,Appearance->"Open"},
{{p1,p1start,p1nome},p1min,p1max,p1passo,Appearance->"Open"},
ControlPlacement->Left
]

Moto armonico smorzato

ClearAll[x,v,p1,p2,p3];

x[t_,p1_,p2_,p3_]:= p1 Sin[2 Pi/p2 t ] Exp[-t/p3];   (* legge oraria per la coordinata x, con tre parametri liberi *)

nstep=1000;   (* numero di valori per cui calcola ciascun parametro *)
xmin=0.;
xmax=1.1; (* massima coordinata per la visualizzazione *)

tmin=0.;  (* valore minimo della variabile t *)
tmax=.95;  (* valore massimo della variabile t *)
tstart=tmin;  (* valore iniziale della variabile t *)
tpasso=(tmax-tmin)/nstep;

p1nome="A";   (* dati per il parametro 1 *)
p1min=0.;
p1max=2.;
p1start=1.5;
p1passo=(p1max-p1min)/nstep;

p2nome="T";   (* dati per il parametro 2 *)
p2min=0.01;
p2max=1.;
p2start=.1;
p2passo=(p2max-p2min)/nstep;

p3nome="τ";   (* dati per il parametro 3 *)
p3min=0.01;
p3max=2.;
p3start=.2;
p3passo=(p3max-p3min)/nstep;


Manipulate[
Column[{
Text["x(t) = A sin(2πt/T) exp(-t/τ)"],
Show[
Plot[{x[t2,p1,p2,p3]},{t2,0,tmax},PlotRange->{-2,2},PlotStyle->Dashed,ImageSize->300,AxesLabel->{"t","x"}],
Graphics[{Blue,PointSize[Medium],Point[{t,x[t,p1,p2,p3]}]}],
{Graphics[{Dashed,Black,Line[{{t,0},{t,x[t,p1,p2,p3]}}]}],
Graphics[{Red,PointSize[Large],Point[{t,0}]}]},
{Graphics[{Dashed,Black,Line[{{0,x[t,p1,p2,p3]},{t,x[t,p1,p2,p3]}}]}],
Graphics[{Black,PointSize[Large],Point[{0,x[t,p1,p2,p3]}]}]}
]
,
Show[
ParametricPlot[{x[t2,p1,p2,p3],0},{t2,0,1},PlotRange->{-2,2},PlotStyle->None,ImageSize->300,Axes->{True,False},AxesLabel->{"x",""}],
Graphics[{PointSize[Large],Point[{x[t,p1,p2,p3],0}]}]
]
}
]
,
{{t,tstart,"t"},0,tmax,tpasso,Appearance->"Open"}, 
{{p3,p3start,p3nome},p3min,p3max,p3passo,Appearance->"Open"},
{{p2,p2start,p2nome},p2min,p2max,p2passo,Appearance->"Open"},
{{p1,p1start,p1nome},p1min,p1max,p1passo,Appearance->"Open"},
ControlPlacement->Left
]

Moto smorzato esponenzialmente 2

ClearAll[x,v,p1,p2,p3];

x[t_,p1_,p2_]:= p1 (1-Exp[-t/p2]);   (* legge oraria per la coordinata x, con tre parametri liberi *)

nstep=1000;   (* numero di valori per cui calcola ciascun parametro *)
xmin=0.;
xmax=1.1; (* massima coordinata per la visualizzazione *)

tmin=0.;  (* valore minimo della variabile t *)
tmax=.95;  (* valore massimo della variabile t *)
tstart=tmin;  (* valore iniziale della variabile t *)
tpasso=(tmax-tmin)/nstep;

p1nome="A";   (* dati per il parametro 1 *)
p1min=0.;
p1max=2.;
p1start=1.5;
p1passo=(p1max-p1min)/nstep;

p2nome="τ";   (* dati per il parametro 2 *)
p2min=0.1;
p2max=1.;
p2start=.2;
p2passo=(p2max-p2min)/nstep;


Manipulate[
Column[{
Text["x(t) = A[1-e^(-t/τ)]"],
Show[
Plot[{x[t2,p1,p2]},{t2,0,tmax},PlotRange->{-.5,2},PlotStyle->Dashed,ImageSize->300,AxesLabel->{"t","x"}],
Graphics[{Blue,PointSize[Medium],Point[{t,x[t,p1,p2]}]}],
{Graphics[{Dashed,Black,Line[{{t,0},{t,x[t,p1,p2]}}]}],
Graphics[{Red,PointSize[Large],Point[{t,0}]}]},
{Graphics[{Dashed,Black,Line[{{0,x[t,p1,p2]},{t,x[t,p1,p2]}}]}],
Graphics[{Black,PointSize[Large],Point[{0,x[t,p1,p2]}]}]}
]
,
Show[
ParametricPlot[{x[t2,p1,p2],0},{t2,-1,1},PlotRange->{-.5,2},PlotStyle->None,ImageSize->300,Axes->{True,False},AxesLabel->{"x",""}],
Graphics[{PointSize[Large],Point[{x[t,p1,p2],0}]}]
]
}
]
,
{{t,tstart,"t"},0,tmax,tpasso,Appearance->"Open"}, 
{{p2,p2start,p2nome},p2min,p2max,p2passo,Appearance->"Open"},
{{p1,p1start,p1nome},p1min,p1max,p1passo,Appearance->"Open"},
ControlPlacement->Left
]