Wolfram mathematica 简化数列

Wolfram mathematica 简化数列,wolfram-mathematica,sum,simplify,Wolfram Mathematica,Sum,Simplify,我在简化mathematica中的一些函数时遇到了一些问题。在我编写的一个程序中,我用求和函数计算了一些函数,其中许多项最终被乘以零。我想打印功能,但要简化。我尝试使用FullSimplify,但它需要永远运行。然后我尝试使用Simplify,但它不起作用。这是我得到的一个函数的例子 2. Sqrt[-(-1+x) x]+ 0. Sin[2 ArcCos[-1+2 x]]+ 0. Sin[3 ArcCos[-1+2 x]]+ 0. Sin[4 ArcCos[-1+2 x]]+ 0. Sin[5

我在简化mathematica中的一些函数时遇到了一些问题。在我编写的一个程序中,我用求和函数计算了一些函数,其中许多项最终被乘以零。我想打印功能,但要简化。我尝试使用FullSimplify,但它需要永远运行。然后我尝试使用Simplify,但它不起作用。这是我得到的一个函数的例子

2. Sqrt[-(-1+x) x]+
0. Sin[2 ArcCos[-1+2 x]]+
0. Sin[3 ArcCos[-1+2 x]]+
0. Sin[4 ArcCos[-1+2 x]]+
0. Sin[5 ArcCos[-1+2 x]]+
0. Sin[6 ArcCos[-1+2 x]]+
0. Sin[7 ArcCos[-1+2 x]]+
0. Sin[8 ArcCos[-1+2 x]]+
0. Sin[9 ArcCos[-1+2 x]]+
0. Sin[10 ArcCos[-1+2 x]]+
0. Sin[11 ArcCos[-1+2 x]]+
0. Sin[12 ArcCos[-1+2 x]]+
0. Sin[13 ArcCos[-1+2 x]]+
0. Sin[14 ArcCos[-1+2 x]]+
0. Sin[15 ArcCos[-1+2 x]]+
0. Sin[16 ArcCos[-1+2 x]]+
0. Sin[17 ArcCos[-1+2 x]]+
0. Sin[18 ArcCos[-1+2 x]]+
0. Sin[19 ArcCos[-1+2 x]]+
0. Sin[20 ArcCos[-1+2 x]]+
0. Sin[21 ArcCos[-1+2 x]]+
0. Sin[22 ArcCos[-1+2 x]]+
0. Sin[23 ArcCos[-1+2 x]]+
0. Sin[24 ArcCos[-1+2 x]]+
0. Sin[25 ArcCos[-1+2 x]]+
0. Sin[26 ArcCos[-1+2 x]]
那么,为什么不简化为

2. Sqrt[-(-1+x) x]
我还有一个跟进问题,但并不那么重要。但是,假设其中有四个项具有非零系数,那么有可能将它们组合成一个数值近似于原始项的项吗


感谢所有回复的人

在这些“0”术语后面隐藏着一些非常小(但非零)的数字。您可以使用
Chop

对机器精度问好

(* exact *)
0 Sin[x]
Out[1]= 0

(* machine precision *)
0. Sin[x]
Out[2]= 0. Sin[x]
用于将数字设置为非常接近零,精确到0

expr = 2. Sqrt[-(-1 + x) x] + 0. Sin[2 ArcCos[-1 + 2 x]] + 
   0. Sin[3 ArcCos[-1 + 2 x]] + 0. Sin[4 ArcCos[-1 + 2 x]] + 
   0. Sin[5 ArcCos[-1 + 2 x]] + 0. Sin[6 ArcCos[-1 + 2 x]] + 
   0. Sin[7 ArcCos[-1 + 2 x]] + 0. Sin[8 ArcCos[-1 + 2 x]] + 
   0. Sin[9 ArcCos[-1 + 2 x]] + 0. Sin[10 ArcCos[-1 + 2 x]] + 
   0. Sin[11 ArcCos[-1 + 2 x]] + 0. Sin[12 ArcCos[-1 + 2 x]] + 
   0. Sin[13 ArcCos[-1 + 2 x]] + 0. Sin[14 ArcCos[-1 + 2 x]] + 
   0. Sin[15 ArcCos[-1 + 2 x]] + 0. Sin[16 ArcCos[-1 + 2 x]] + 
   0. Sin[17 ArcCos[-1 + 2 x]];

Chop[expr]
Out[4]= 2. Sqrt[(1 - x) x]

你能稍微澄清一下你的第二个问题吗?我想你可以简化你的问题。试试
0.+x
@Sjoerd看一看@Silmaril89:你说“近似”,但不告诉use它应该近似到什么程度(即,以什么顺序)。您总是可以根据泰勒级数展开每个项(使用
级数[]
),并保留每个项的第一个
n
项,然后将它们组合成一个巨大的项,其中包含一个巨大的分子和分母(一起使用
[]
)。同样,这也延伸了“术语”一词的含义:@Silmaril89:还可以查看用于扩展函数的
TrigExpand
。例如,
Sin[2 arcin[x]]
2xsqrt[1-x^2]
Sin[3 arcin[x]
3x-4x^3
谢谢你的回复,这非常有意义。你和尤达一样应该被选中,但我得选一个。尤达是这里最好的一个。我不认为我在这里的措辞在技术上是正确的。一个有趣的“诀窍”是用一个10位数的计算器输入1E12+1-1E12。如果1是任何位置,但不是最后一个位置,它将返回0。你可以用mma做同样的事情,尽管它的精确度更高。在我的机器上,
1.*10^16+1.-1.*10^16
给出0。请注意小数点,如果删除所有小数点,mma将恢复为精确算术,并给出1。此外,如果表达式中的第一个术语较大,mma有时会忽略较小的术语:参见最后一个示例。