Упростить серию в Mathematica - PullRequest
3 голосов
/ 30 июня 2011

У меня есть некоторые проблемы, упрощающие некоторые функции в Mathematica. В написанной мною программе у меня есть несколько функций, рассчитанных с помощью функции Sum, многие из которых в итоге умножаются на ноль. Я хочу, чтобы функция была напечатана, но упрощена. Я пытаюсь использовать 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]

У меня также есть дополнительный вопрос, который не так важен. Но, скажем, четыре из этих слагаемых имеют ненулевые коэффициенты, возможно ли объединить их в одно слагаемое, которое является числовым приближением к оригиналу?

Спасибо всем, кто отвечает!

Ответы [ 2 ]

11 голосов
/ 30 июня 2011

Скажите привет точности станка.

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

(* machine precision *)
0. Sin[x]
Out[2]= 0. Sin[x]

Используйте Chop, чтобы установить числа, абсурдно близкие к нулю, точно к 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]
6 голосов
/ 30 июня 2011

За этими "0"Термины там скрыты очень маленькими (но ненулевыми) числами.Вы можете сократить их, используя Chop.

...