fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. #define R 3000 // 抵抗 (Ω)
  5. #define L 0.001 // インダクタンス (H)
  6. #define E 5 // 電源電圧 (V)
  7. #define TIME_STEP 0.001 // 時間ステップ (秒)
  8. #define MAX_TIME 0.1 // 最大シミュレーション時間 (秒)
  9.  
  10. int main() {
  11. double current = 0.0; // 電流
  12. double time = 0.0; // 時間
  13. double tau = L / R; // 時定数 (秒)
  14. double dt = TIME_STEP; // 時間刻み (秒)
  15. double voltage = E; // 電圧
  16.  
  17. // ヘッダを表示
  18. printf("Time (s), Current (A)\n");
  19.  
  20. // 時間ごとに電流を計算
  21. while (time <= MAX_TIME) {
  22. // 電流の変化(I(t) = V/R * (1 - exp(-t/τ)))
  23. current = (voltage / R) * (1 - exp(-time / tau));
  24.  
  25. // 結果を表示
  26. printf("%lf, %lf\n", time, current);
  27.  
  28. // 時間を進める
  29. time += dt;
  30. }
  31.  
  32. printf("計算が終了しました。\n");
  33.  
  34. return 0;
  35. }
  36.  
Success #stdin #stdout 0s 5280KB
stdin
Standard input is empty
stdout
Time (s), Current (A)
0.000000, 0.000000
0.001000, 0.001667
0.002000, 0.001667
0.003000, 0.001667
0.004000, 0.001667
0.005000, 0.001667
0.006000, 0.001667
0.007000, 0.001667
0.008000, 0.001667
0.009000, 0.001667
0.010000, 0.001667
0.011000, 0.001667
0.012000, 0.001667
0.013000, 0.001667
0.014000, 0.001667
0.015000, 0.001667
0.016000, 0.001667
0.017000, 0.001667
0.018000, 0.001667
0.019000, 0.001667
0.020000, 0.001667
0.021000, 0.001667
0.022000, 0.001667
0.023000, 0.001667
0.024000, 0.001667
0.025000, 0.001667
0.026000, 0.001667
0.027000, 0.001667
0.028000, 0.001667
0.029000, 0.001667
0.030000, 0.001667
0.031000, 0.001667
0.032000, 0.001667
0.033000, 0.001667
0.034000, 0.001667
0.035000, 0.001667
0.036000, 0.001667
0.037000, 0.001667
0.038000, 0.001667
0.039000, 0.001667
0.040000, 0.001667
0.041000, 0.001667
0.042000, 0.001667
0.043000, 0.001667
0.044000, 0.001667
0.045000, 0.001667
0.046000, 0.001667
0.047000, 0.001667
0.048000, 0.001667
0.049000, 0.001667
0.050000, 0.001667
0.051000, 0.001667
0.052000, 0.001667
0.053000, 0.001667
0.054000, 0.001667
0.055000, 0.001667
0.056000, 0.001667
0.057000, 0.001667
0.058000, 0.001667
0.059000, 0.001667
0.060000, 0.001667
0.061000, 0.001667
0.062000, 0.001667
0.063000, 0.001667
0.064000, 0.001667
0.065000, 0.001667
0.066000, 0.001667
0.067000, 0.001667
0.068000, 0.001667
0.069000, 0.001667
0.070000, 0.001667
0.071000, 0.001667
0.072000, 0.001667
0.073000, 0.001667
0.074000, 0.001667
0.075000, 0.001667
0.076000, 0.001667
0.077000, 0.001667
0.078000, 0.001667
0.079000, 0.001667
0.080000, 0.001667
0.081000, 0.001667
0.082000, 0.001667
0.083000, 0.001667
0.084000, 0.001667
0.085000, 0.001667
0.086000, 0.001667
0.087000, 0.001667
0.088000, 0.001667
0.089000, 0.001667
0.090000, 0.001667
0.091000, 0.001667
0.092000, 0.001667
0.093000, 0.001667
0.094000, 0.001667
0.095000, 0.001667
0.096000, 0.001667
0.097000, 0.001667
0.098000, 0.001667
0.099000, 0.001667
計算が終了しました。