2011-02-24 135 views
3

我正在努力如何摆脱Mathematica中从输出中微不足道的表达式。 例子:Mathematica,剩余零

pVec = Table[{i, Exp[-i*0.03]}, {i, 0, 2.5, 1/2}]; 

    pVec[[2, 2]] = p1; 
    pVec[[3, 2]] = p2; 
    pVec[[4, 2]] = p3; 
    pVec[[5, 2]] = p4; 
    pVec[[6, 2]] = p5; 

    qq = Interpolation[pVec, InterpolationOrder -> 1]; 

>> qq[0.5] 
>> 0. (1 - p1) + p1 

0*(1-p1)显然是零,但我不能找到一种方法来摆脱它? (我对Mathematica比较陌生......)简化没有工作,N[ ]也没有工作FullSimplyfy[ ]

有什么建议?因为在使用这种插值的大表达式中,这些零表达式累积...并且我有10个线路答案而不是常量。

+1

@Vyautas我看到你已经有了很好的回应。我会提到,作为一种替代方案,您可以尝试收集这些零并将它们发送到某个缺少它们的国家。成本几乎无需发送 - 零点很轻(有人说它们是无质量的,但我不相信)。 – 2011-02-25 03:37:17

回答

4

我觉得你需要的功能是Chop

从帮助: “Chop[expr]替换EXPR是通过精确的整数0接近于零的近似实数”

例如:

[email protected][0.5] 
Chop[0.` (1 - p1) + p1] 

既给作为输出:

p1

+0

谢谢!正是我需要的! – Vytautas 2011-02-24 17:00:42