#include <stdio.h>
#include <math.h>
#define R 3000 // 抵抗 (Ω)
#define L 0.001 // インダクタンス (H)
#define E 5 // 電源電圧 (V)
#define MAX_TIME 0.1 // 最大シミュレーション時間 (秒)
#define NUM_POINTS 10 // 出力するデータ点数
int main() {
double current = 0.0; // 電流
double tau = L / R; // 時定数 (秒)
double dt = MAX_TIME / NUM_POINTS; // 10等分した時間刻み
double voltage = E; // 電圧
int i; // ループカウンタを事前に宣言(C89規格に対応)
// ヘッダを表示
printf("Time (s), Current (A)\n");
// 指定した回数だけ電流を計算して表示
for (i = 0; i <= NUM_POINTS; i++) {
// 電流の変化(I(t) = V/R * (1 - exp(-t/τ)))
current
= (voltage
/ R
) * (1 - exp(-time / tau
));
// 結果を表示
// 時間を進める
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgojZGVmaW5lIFIgMzAwMCAgICAgICAvLyDmirXmipcgKM6pKQojZGVmaW5lIEwgMC4wMDEgICAgICAvLyDjgqTjg7Pjg4Djgq/jgr/jg7PjgrkgKEgpCiNkZWZpbmUgRSA1ICAgICAgICAgIC8vIOmbu+a6kOmbu+WcpyAoVikKI2RlZmluZSBNQVhfVElNRSAwLjEgICAvLyDmnIDlpKfjgrfjg5/jg6Xjg6zjg7zjgrfjg6fjg7PmmYLplpMgKOenkikKI2RlZmluZSBOVU1fUE9JTlRTIDEwICAvLyDlh7rlipvjgZnjgovjg4fjg7zjgr/ngrnmlbAKCmludCBtYWluKCkgewogICAgZG91YmxlIGN1cnJlbnQgPSAwLjA7ICAgIC8vIOmbu+a1gQogICAgZG91YmxlIHRpbWUgPSAwLjA7ICAgICAgIC8vIOaZgumWkwogICAgZG91YmxlIHRhdSA9IEwgLyBSOyAgICAgIC8vIOaZguWumuaVsCAo56eSKQogICAgZG91YmxlIGR0ID0gTUFYX1RJTUUgLyBOVU1fUE9JTlRTOyAgIC8vIDEw562J5YiG44GX44Gf5pmC6ZaT5Yi744G/CiAgICBkb3VibGUgdm9sdGFnZSA9IEU7ICAgICAgLy8g6Zu75ZynCiAgICBpbnQgaTsgICAgICAgICAgICAgICAgICAgLy8g44Or44O844OX44Kr44Km44Oz44K/44KS5LqL5YmN44Gr5a6j6KiA77yIQzg56KaP5qC844Gr5a++5b+c77yJCgogICAgLy8g44OY44OD44OA44KS6KGo56S6CiAgICBwcmludGYoIlRpbWUgKHMpLCBDdXJyZW50IChBKVxuIik7CgogICAgLy8g5oyH5a6a44GX44Gf5Zue5pWw44Gg44GR6Zu75rWB44KS6KiI566X44GX44Gm6KGo56S6CiAgICBmb3IgKGkgPSAwOyBpIDw9IE5VTV9QT0lOVFM7IGkrKykgewogICAgICAgIC8vIOmbu+a1geOBruWkieWMlu+8iEkodCkgPSBWL1IgKiAoMSAtIGV4cCgtdC/PhCkp77yJCiAgICAgICAgY3VycmVudCA9ICh2b2x0YWdlIC8gUikgKiAoMSAtIGV4cCgtdGltZSAvIHRhdSkpOwogICAgICAgIAogICAgICAgIC8vIOe1kOaenOOCkuihqOekugogICAgICAgIHByaW50ZigiJWxmLCAlbGZcbiIsIHRpbWUsIGN1cnJlbnQpOwogICAgICAgIAogICAgICAgIC8vIOaZgumWk+OCkumAsuOCgeOCiwogICAgICAgIHRpbWUgKz0gZHQ7CiAgICB9CgogICAgcHJpbnRmKCLoqIjnrpfjgYzntYLkuobjgZfjgb7jgZfjgZ/jgIJcbiIpOwoKICAgIHJldHVybiAwOwp9Cg==
Time (s), Current (A)
0.000000, 0.000000
0.010000, 0.001667
0.020000, 0.001667
0.030000, 0.001667
0.040000, 0.001667
0.050000, 0.001667
0.060000, 0.001667
0.070000, 0.001667
0.080000, 0.001667
0.090000, 0.001667
0.100000, 0.001667
計算が終了しました。