When do I use GenerateConditions and Assumptions with Integrate or Sum?
Integrate
and Sum
evaluations return generic solutions. These are usually correct for general cases, but may not apply for specific parameter values (see Generic and Non-Generic Cases).
For example, this summation is unbounded if x
is greater than or equal to 1:
In[1]:= Sum[x^n, {n, 0, Infinity}]
Out[1]= 1 / (1 - x)
The GenerateConditions
->True option tells the function to state when the solution is valid.
Now we confirm that the result applies only for Abs[x]<1
:
In[2]:= Sum[x^n, {n, 0, Infinity}, GenerateConditions -> True]
Out[2]= ConditionalExpression[1/(1 - x), Abs[x] < 1]
If any condition is known already, the Assumptions
option can be used to tell Sum
about it. This gives a simple output suitable for later use in the code. The explicit condition used here will need to be remembered when the result is used:
In[3]:= Sum[x^n, {n, 0, Infinity}, Assumptions -> {-1 < x && x < 1}]
Out[3]= 1/(1 - x)
Assumptions can also be passed using the Assuming
function or $Assumptions
:
In[4]:= Integrate[1/(x + a), {x, 0, 1}]
Out[4]= ConditionalExpression[-Log[a] + Log[1 + a],
Re[a] > 0 || Re[a] < -1 || NotElement[a, Reals]
In[5]:= Assuming[a > 0, Integrate[1/(x + a), {x, 0, 1}]]Out[5]= Log[1 + 1/a]
In[6]:= $Assumptions = a > 0;
Integrate[1/(x + a), {x, 0, 1}]Out[7]= Log[1 + 1/a]
This resets $Assumptions
to its default:
In[8]:= $Assumptions =. ;
1-800-WOLFRAM (국제 전화는 +1-217-398-0700)
고객 지원
월요일 - 금요일
8am–5pm 중부 표준시
- 제품 등록 및 동기화
- 구매 전 정보 및 주문
- 설치 및 동작
고급 기술지원 (해당 고객을 대상으로)
월요일 - 목요일
8am–7pm 중부 표준시
금요일
8:30–10am & 11am–5pm 중부 표준시
- 우선적 기술지원
- Wolfram 전문가들의 제품 지원
- Wolfram 프로그래밍
- 고급 설치 지원