情节为相似的论点显示了不同的答案

时间:2018-09-30 07:08:20

标签: wolfram-mathematica

我刚刚开始学习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}] 给出了正确的答案,第二个给出了错误的答案。我期望得到相同的答案。造成差异的原因是什么?

1 个答案:

答案 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]

enter image description here