I have a list
list00 =
{ E^(-0.6830132/t), E^(-0.6830131/t), E^(-0.6830134/t), E^(-0.68301335/t),
E^(-0.18301321/t),E^(-0.18301341/t), E^(-0.1830133/t) , E^(0.183013/t),
E^(0.1830132/t) ,E^(0.6830132/t)};
Actually I want to have a summation result as:4E^(-0.683013/t)+3E^(-0.183013/t)+2E^(0.183013/t)+E^(0.683013/t)
In fact the numbers are in another list
list =
{-0.6830132, -0.6830131, -0.6830134,-0.68301335,
-0.18301321, -0.18301341, -0.1830133 , 0.183013, 0.1830132 ,0.6830132};
I have used of Sum[E^(list[[k]]/t),{k,Length[list]})]
Answer
You can just round the result, and then they are the same number.
Total[E^(Round[list, 10.^-6]/t)]
(* 4 E^(-0.683013/t) + 3 E^(-0.183013/t) +
2 E^(0.183013/t) + E^(0.683013/t) *)
The Exp
and Round
function are listable, so you don't need an explicit call to Sum
. But if you wanted one,
Sum[ E^(Round[list[[k]], 10.^-6]/t), {k, Length[list]}]
Edit You can also use SetPrecision
Total@Exp[ SetPrecision[list, 6]/t]
(* 4 E^(-0.683013/t) + 3 E^(-0.183013/t) +
2 E^(0.183013/t) + E^(0.683013/t) *)
But I don't see an equivalent to SameTest
for Plus
Comments
Post a Comment