fork download
  1. #include <stdio.h>
  2. #define NUM_PARTICLE 3
  3. typedef struct {
  4. double y; // 位置
  5. double v; // 速度
  6. double d; // 抵抗係数係数
  7. double e; // 反発係数
  8. } Pmass;
  9. void update_mass_state(Pmass *p, double h) {
  10. double g=9.8;
  11. double a; // 加速度
  12.  
  13. a=-g-(p->d)*(p->v);
  14.  
  15. p->v=(p->v)+a*h;
  16. p->y=(p->y)+(p->v)*h;
  17.  
  18. if (p->y < 0) {
  19. p->v=-(p->v)*(p->e);
  20. p->y = 0;
  21. }
  22. }
  23.  
  24. int main() {
  25. double h = 0.01; // 時刻の刻み幅
  26. Pmass p[NUM_PARTICLE]; // 3つの質点
  27. //①
  28. p[0].y=2.0;
  29. p[0].v=0.0;
  30. p[0].d=0.5;
  31. p[0].e=0.8;
  32. //②
  33. p[1].y=2.0;
  34. p[1].v=2.0;
  35. p[1].d=0.5;
  36. p[1].e=0.8;
  37. //③
  38. p[2].y=2.0;
  39. p[2].v=0.0;
  40. p[2].d=2.0;
  41. p[2].e=0.6;
  42.  
  43. for (int k = 0; k < 301; k++) {
  44. printf("%.2f", k * h);
  45. for (int i = 0; i < NUM_PARTICLE; i++){
  46. printf(",%.4f", p[i].y);
  47. update_mass_state(&p[i], h);
  48. }
  49. printf("\n");
  50. }
  51. return 0;
  52. }
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
0.00,2.0000,2.0000,2.0000
0.01,1.9990,2.0189,1.9990
0.02,1.9971,2.0368,1.9971
0.03,1.9941,2.0535,1.9942
0.04,1.9902,2.0693,1.9904
0.05,1.9854,2.0839,1.9857
0.06,1.9796,2.0975,1.9801
0.07,1.9728,2.1101,1.9736
0.08,1.9651,2.1216,1.9663
0.09,1.9565,2.1320,1.9582
0.10,1.9469,2.1415,1.9492
0.11,1.9364,2.1499,1.9394
0.12,1.9249,2.1573,1.9289
0.13,1.9126,2.1637,1.9176
0.14,1.8993,2.1690,1.9055
0.15,1.8851,2.1734,1.8927
0.16,1.8700,2.1767,1.8792
0.17,1.8540,2.1791,1.8649
0.18,1.8371,2.1804,1.8500
0.19,1.8193,2.1808,1.8344
0.20,1.8006,2.1802,1.8181
0.21,1.7810,2.1786,1.8011
0.22,1.7605,2.1761,1.7835
0.23,1.7392,2.1726,1.7653
0.24,1.7170,2.1681,1.7465
0.25,1.6939,2.1626,1.7271
0.26,1.6699,2.1563,1.7071
0.27,1.6451,2.1489,1.6865
0.28,1.6195,2.1406,1.6653
0.29,1.5929,2.1314,1.6436
0.30,1.5656,2.1212,1.6213
0.31,1.5374,2.1102,1.5985
0.32,1.5083,2.0981,1.5752
0.33,1.4784,2.0852,1.5513
0.34,1.4477,2.0714,1.5270
0.35,1.4162,2.0566,1.5021
0.36,1.3838,2.0410,1.4768
0.37,1.3506,2.0244,1.4510
0.38,1.3167,2.0069,1.4247
0.39,1.2819,1.9886,1.3980
0.40,1.2462,1.9693,1.3709
0.41,1.2098,1.9492,1.3433
0.42,1.1726,1.9282,1.3153
0.43,1.1346,1.9063,1.2868
0.44,1.0958,1.8836,1.2579
0.45,1.0562,1.8599,1.2287
0.46,1.0159,1.8355,1.1990
0.47,0.9747,1.8101,1.1690
0.48,0.9328,1.7839,1.1386
0.49,0.8901,1.7569,1.1078
0.50,0.8467,1.7290,1.0766
0.51,0.8025,1.7003,1.0451
0.52,0.7575,1.6707,1.0133
0.53,0.7118,1.6403,0.9810
0.54,0.6653,1.6091,0.9485
0.55,0.6181,1.5771,0.9156
0.56,0.5701,1.5442,0.8824
0.57,0.5214,1.5105,0.8489
0.58,0.4720,1.4760,0.8151
0.59,0.4218,1.4407,0.7810
0.60,0.3709,1.4046,0.7466
0.61,0.3192,1.3677,0.7119
0.62,0.2669,1.3300,0.6769
0.63,0.2138,1.2915,0.6416
0.64,0.1600,1.2523,0.6060
0.65,0.1055,1.2122,0.5702
0.66,0.0503,1.1714,0.5341
0.67,0.0000,1.1297,0.4978
0.68,0.0435,1.0873,0.4612
0.69,0.0859,1.0442,0.4243
0.70,0.1270,1.0003,0.3873
0.71,0.1669,0.9556,0.3499
0.72,0.2057,0.9101,0.3124
0.73,0.2433,0.8640,0.2746
0.74,0.2797,0.8170,0.2366
0.75,0.3150,0.7693,0.1983
0.76,0.3491,0.7209,0.1599
0.77,0.3821,0.6717,0.1212
0.78,0.4139,0.6218,0.0824
0.79,0.4446,0.5712,0.0433
0.80,0.4741,0.5199,0.0040
0.81,0.5025,0.4678,0.0000
0.82,0.5298,0.4150,0.0222
0.83,0.5560,0.3615,0.0430
0.84,0.5811,0.3072,0.0624
0.85,0.6050,0.2523,0.0805
0.86,0.6279,0.1967,0.0972
0.87,0.6496,0.1403,0.1125
0.88,0.6703,0.0833,0.1266
0.89,0.6899,0.0255,0.1395
0.90,0.7084,0.0000,0.1510
0.91,0.7259,0.0455,0.1614
0.92,0.7423,0.0898,0.1706
0.93,0.7576,0.1330,0.1787
0.94,0.7718,0.1749,0.1855
0.95,0.7850,0.2156,0.1913
0.96,0.7972,0.2552,0.1960
0.97,0.8083,0.2935,0.1996
0.98,0.8184,0.3307,0.2021
0.99,0.8274,0.3668,0.2037
1.00,0.8355,0.4017,0.2042
1.01,0.8425,0.4354,0.2037
1.02,0.8485,0.4680,0.2022
1.03,0.8535,0.4994,0.1998
1.04,0.8574,0.5297,0.1965
1.05,0.8604,0.5588,0.1923
1.06,0.8624,0.5869,0.1871
1.07,0.8634,0.6138,0.1811
1.08,0.8634,0.6396,0.1742
1.09,0.8624,0.6643,0.1665
1.10,0.8605,0.6879,0.1580
1.11,0.8576,0.7103,0.1486
1.12,0.8537,0.7317,0.1384
1.13,0.8488,0.7521,0.1275
1.14,0.8430,0.7713,0.1158
1.15,0.8363,0.7894,0.1034
1.16,0.8286,0.8065,0.0902
1.17,0.8200,0.8225,0.0764
1.18,0.8104,0.8375,0.0618
1.19,0.7999,0.8514,0.0465
1.20,0.7884,0.8642,0.0306
1.21,0.7761,0.8760,0.0139
1.22,0.7628,0.8868,0.0000
1.23,0.7486,0.8965,0.0092
1.24,0.7335,0.9053,0.0172
1.25,0.7175,0.9129,0.0240
1.26,0.7006,0.9196,0.0298
1.27,0.6828,0.9252,0.0344
1.28,0.6641,0.9299,0.0380
1.29,0.6446,0.9335,0.0405
1.30,0.6241,0.9362,0.0420
1.31,0.6028,0.9378,0.0425
1.32,0.5806,0.9385,0.0420
1.33,0.5575,0.9382,0.0405
1.34,0.5335,0.9369,0.0381
1.35,0.5087,0.9346,0.0348
1.36,0.4831,0.9313,0.0305
1.37,0.4566,0.9271,0.0253
1.38,0.4292,0.9220,0.0193
1.39,0.4010,0.9158,0.0124
1.40,0.3720,0.9088,0.0046
1.41,0.3421,0.9007,0.0000
1.42,0.3114,0.8918,0.0041
1.43,0.2799,0.8819,0.0071
1.44,0.2475,0.8711,0.0090
1.45,0.2143,0.8593,0.0099
1.46,0.1804,0.8467,0.0099
1.47,0.1456,0.8331,0.0088
1.48,0.1100,0.8186,0.0068
1.49,0.0736,0.8032,0.0039
1.50,0.0363,0.7869,0.0000
1.51,0.0000,0.7697,0.0000
1.52,0.0293,0.7516,0.0018
1.53,0.0574,0.7326,0.0026
1.54,0.0844,0.7127,0.0024
1.55,0.1103,0.6919,0.0013
1.56,0.1351,0.6703,0.0000
1.57,0.1588,0.6478,0.0003
1.58,0.1814,0.6244,0.0000
1.59,0.2029,0.6002,0.0000
1.60,0.2233,0.5751,0.0000
1.61,0.2426,0.5492,0.0000
1.62,0.2609,0.5224,0.0000
1.63,0.2781,0.4947,0.0000
1.64,0.2942,0.4662,0.0000
1.65,0.3092,0.4369,0.0000
1.66,0.3232,0.4068,0.0000
1.67,0.3362,0.3758,0.0000
1.68,0.3481,0.3440,0.0000
1.69,0.3590,0.3113,0.0000
1.70,0.3688,0.2779,0.0000
1.71,0.3776,0.2436,0.0000
1.72,0.3854,0.2086,0.0000
1.73,0.3921,0.1727,0.0000
1.74,0.3979,0.1360,0.0000
1.75,0.4026,0.0985,0.0000
1.76,0.4063,0.0603,0.0000
1.77,0.4091,0.0212,0.0000
1.78,0.4108,0.0000,0.0000
1.79,0.4116,0.0307,0.0000
1.80,0.4113,0.0603,0.0000
1.81,0.4101,0.0888,0.0000
1.82,0.4079,0.1161,0.0000
1.83,0.4048,0.1424,0.0000
1.84,0.4007,0.1675,0.0000
1.85,0.3956,0.1915,0.0000
1.86,0.3895,0.2144,0.0000
1.87,0.3826,0.2362,0.0000
1.88,0.3746,0.2570,0.0000
1.89,0.3658,0.2766,0.0000
1.90,0.3560,0.2952,0.0000
1.91,0.3452,0.3127,0.0000
1.92,0.3336,0.3291,0.0000
1.93,0.3210,0.3445,0.0000
1.94,0.3075,0.3588,0.0000
1.95,0.2931,0.3720,0.0000
1.96,0.2777,0.3842,0.0000
1.97,0.2615,0.3954,0.0000
1.98,0.2444,0.4055,0.0000
1.99,0.2264,0.4147,0.0000
2.00,0.2075,0.4227,0.0000
2.01,0.1877,0.4298,0.0000
2.02,0.1670,0.4358,0.0000
2.03,0.1455,0.4409,0.0000
2.04,0.1230,0.4449,0.0000
2.05,0.0997,0.4479,0.0000
2.06,0.0756,0.4499,0.0000
2.07,0.0506,0.4510,0.0000
2.08,0.0247,0.4510,0.0000
2.09,0.0000,0.4501,0.0000
2.10,0.0203,0.4482,0.0000
2.11,0.0395,0.4453,0.0000
2.12,0.0576,0.4415,0.0000
2.13,0.0747,0.4367,0.0000
2.14,0.0907,0.4310,0.0000
2.15,0.1056,0.4243,0.0000
2.16,0.1195,0.4166,0.0000
2.17,0.1323,0.4080,0.0000
2.18,0.1441,0.3985,0.0000
2.19,0.1549,0.3880,0.0000
2.20,0.1646,0.3766,0.0000
2.21,0.1733,0.3643,0.0000
2.22,0.1809,0.3511,0.0000
2.23,0.1876,0.3369,0.0000
2.24,0.1932,0.3219,0.0000
2.25,0.1978,0.3059,0.0000
2.26,0.2014,0.2891,0.0000
2.27,0.2041,0.2713,0.0000
2.28,0.2057,0.2527,0.0000
2.29,0.2063,0.2331,0.0000
2.30,0.2060,0.2127,0.0000
2.31,0.2047,0.1914,0.0000
2.32,0.2024,0.1693,0.0000
2.33,0.1991,0.1462,0.0000
2.34,0.1949,0.1223,0.0000
2.35,0.1897,0.0976,0.0000
2.36,0.1835,0.0720,0.0000
2.37,0.1765,0.0455,0.0000
2.38,0.1684,0.0182,0.0000
2.39,0.1594,0.0000,0.0000
2.40,0.1495,0.0214,0.0000
2.41,0.1387,0.0418,0.0000
2.42,0.1269,0.0611,0.0000
2.43,0.1142,0.0792,0.0000
2.44,0.1006,0.0964,0.0000
2.45,0.0861,0.1124,0.0000
2.46,0.0707,0.1274,0.0000
2.47,0.0544,0.1413,0.0000
2.48,0.0372,0.1542,0.0000
2.49,0.0190,0.1661,0.0000
2.50,0.0000,0.1769,0.0000
2.51,0.0000,0.1867,0.0000
2.52,0.0149,0.1954,0.0000
2.53,0.0287,0.2031,0.0000
2.54,0.0414,0.2098,0.0000
2.55,0.0531,0.2155,0.0000
2.56,0.0638,0.2202,0.0000
2.57,0.0734,0.2239,0.0000
2.58,0.0820,0.2265,0.0000
2.59,0.0896,0.2282,0.0000
2.60,0.0962,0.2289,0.0000
2.61,0.1017,0.2286,0.0000
2.62,0.1063,0.2273,0.0000
2.63,0.1098,0.2251,0.0000
2.64,0.1124,0.2219,0.0000
2.65,0.1139,0.2177,0.0000
2.66,0.1145,0.2126,0.0000
2.67,0.1141,0.2065,0.0000
2.68,0.1127,0.1995,0.0000
2.69,0.1103,0.1915,0.0000
2.70,0.1070,0.1826,0.0000
2.71,0.1027,0.1727,0.0000
2.72,0.0974,0.1619,0.0000
2.73,0.0912,0.1502,0.0000
2.74,0.0840,0.1376,0.0000
2.75,0.0759,0.1240,0.0000
2.76,0.0669,0.1095,0.0000
2.77,0.0569,0.0942,0.0000
2.78,0.0460,0.0779,0.0000
2.79,0.0341,0.0607,0.0000
2.80,0.0214,0.0427,0.0000
2.81,0.0077,0.0237,0.0000
2.82,0.0000,0.0039,0.0000
2.83,0.0106,0.0000,0.0000
2.84,0.0202,0.0155,0.0000
2.85,0.0288,0.0300,0.0000
2.86,0.0363,0.0434,0.0000
2.87,0.0429,0.0557,0.0000
2.88,0.0484,0.0671,0.0000
2.89,0.0529,0.0773,0.0000
2.90,0.0564,0.0866,0.0000
2.91,0.0589,0.0948,0.0000
2.92,0.0604,0.1020,0.0000
2.93,0.0609,0.1082,0.0000
2.94,0.0605,0.1134,0.0000
2.95,0.0591,0.1175,0.0000
2.96,0.0566,0.1207,0.0000
2.97,0.0533,0.1229,0.0000
2.98,0.0489,0.1241,0.0000
2.99,0.0436,0.1243,0.0000
3.00,0.0374,0.1235,0.0000