我刚刚开始学习mathematica,所以如果这是一个简单的问题,请原谅我。我试图找出包含Plot
的表达式的ReplaceAll
与带有Plot
的{{1}}的工作原理为何不同。我有:
Set
由于某种原因,第一个Clear["Global`*"]
I0[t_] = HeavisidePi[(t - 1/2 10^-9)/10^-9];
sol = DSolve[{D[I2[t], t]*R == I1[t]/C0, I0[t] == I1[t] + I2[t],
I2[0] == 0}, {I1[t], I2[t]}, t];
I2 = I2[t] /. sol[[1]];
Plot[I2 /. {C0 -> 5*10^-12, R -> 500}, {t, -2 10^-9, 10^-8}]
C0 = 5*10^-12;
R = 500;
Plot[I2, {t, -2 10^-9, 10^-8}]
给出了正确的答案,第二个给出了错误的答案。我期望得到相同的答案。造成差异的原因是什么?
答案 0 :(得分:0)
是的,这很有趣。如果首先设置t
,则t = 0.5* 10^-9
的值为0.181269,但是如果它一直保持符号状态,则结果为0.402672
a = Plot[
I2 /. {C0 -> 5*10^-12, R -> 500}, {t, -2 10^-9, 10^-8}];
b = Plot[Evaluate[
I2 /. {C0 -> 5*10^-12, R -> 500}], {t, -2 10^-9, 10^-8}];
x = 0.5* 10^-9;
c = I2 /. t -> x /. {C0 -> 5*10^-12, R -> 500}
0.181269
d = I2 /. {t -> x, C0 -> 5*10^-12, R -> 500}
0.402672
Show[{a, b, ListPlot[{{x, c}, {x, d}}]}, PlotRange -> All]