Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main()
- {
- ...
- metod(x0, v0, m, a, b)
- ...
- return 0;
- }
- struct Parametr
- {
- public double a;
- public double phi;
- public double omega;
- };
- Parametr func(float x0, float v0, float e)
- {
- Parametr p;
- double a0 = Math.Sqrt(x0*x0 + v0*v0);
- double phi0 = -Math.Atan(v0 / x0);
- double sin0 = Math.Sin(phi0), tan0 = Math.Tan(phi0), cos0 = Math.Cos(phi0), cos3 = Math.Cos(3*phi0);
- double phi1 = (1 / 32 * cos3 * tan0 - 3 / 8 * a0 * a0 * sin0 - 1 / 3 * Math.Sin(3 * phi0)) / (sin0 * tan0 + cos0);
- double a1 = a0 * (phi1 * tan0 - cos0 / (32 * cos0));
- double a = a0 + e * a1;
- double phi = phi0 + e * phi1;
- double omega = 1 + e * 3 * a * a / 8;
- p.a = a;
- p.phi = phi;
- p.omega = omega;
- return p;
- }
- void metod(float x0, float v0, float m, float a, float b)
- {
- float x, v;
- a /= m;
- b /= m;
- Parametr p;
- float e = b / a;
- for (float t = 0; t < 10; t = (float)(t + 0.1))
- {
- p = func(x0, v0, e);
- x = (float)(p.a * Math.Cos(p.omega * t + p.phi) + e * Math.Pow(p.a, 3) / 32 * Math.Cos(3 * (p.omega * t + p.phi)));
- v = (float)(p.a * p.omega * Math.Sin(p.omega * t + p.phi) + e * Math.Pow(p.a, 3)*p.omega / 32 * Math.Sin(3 * (p.omega * t + p.phi)));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement