..., multiple experiments
#include <stdlib.h>
struct Wheel {
Parameter M, D, k;
Integrator v, y;
Wheel(Input
F,
double _M,
double _D,
double _k):
M(_M), D(_D), k(_k),
v( (F - D*v - k*y) / M ),
y( v ) { }
void SetM(double _M) { M=_M; }
void SetD(double _D) { D=_D; }
void Setk(double _k) { k=_k; }
void PrintParameters() {
Print(
"# mass = %g kg ", M.Value());
Print(
" damping = %g ", D.Value());
Print(
" stiffness = %g \n", k.Value());
}
};
double _m=5, _d=500, _k=5e4;
Print(
"%6.3f %.4g %.4g\n",
T.
Value(), w.y.Value(), w.v.Value());
}
int main(
int argc,
char *argv[]) {
Print(
"# wheel2 --- multiple experiments\n");
if(argc==4) {
_m = atof(argv[1]);
_d = atof(argv[2]);
_k = atof(argv[3]);
}
for(double m=_m/2; m<=_m*5; m*=1.2) {
w.SetM(m);
w.SetD(_d);
w.Setk(_k);
w.PrintParameters();
}
}