2011-01-18 40 views
3

我有一些功能設置是這樣的:如何評估與某個數字的集成?

f(x):=1-2**-x$ 
g(y):=integrate(f(x), x, 0, y)$ 

和評價他們:

f(1)$float(%); 
g(1)$float(%); 

但克(1),我得到了一個象徵性的,而不是答案的數值答案。使用float()試圖獲得數值答案,但它只是將所有的積分項轉換爲浮點數。

我怎樣才能得到g(1)作爲一個數字?

+0

您使用的是Wolfram Mathematica嗎? – Elalfer

+0

[Maxima](http://maxima.sourceforge.net/) – david4dev

回答

3

爲什麼不這樣做(用定積分的定義):

f(x):=1-2**-x$ 
gg(x):=''(integrate(f(x), x))$ 
g(y):=gg(y) - gg(0)$ 
「(引號引號)運算符用於強制的評估:='

的右手側的分配前。

0

如果您只對數值解法感興趣,那麼您可以使用數值積分。 例如,您可以使用quad_qag (f(x), x, a, b, key, [epsrel, epsabs, limit])

我嘗試:

f(x) := 1-2^(-x); 
g(y):= quad_qag(f(x), x, 0, y, 3, epsrel=10d-8)$ 
g(1); 

它返回:

[0.27865247955552,3.093663986714272*10^-15,31,0] 

的第一個條目是數值解,

的第二個條目是近似相對誤差,

的第三項是實現解決方案所需的迭代次數,

最後一項是錯誤代碼;錯誤代碼是

  • 0如果沒有遇到任何問題;
  • 1如果太多的子區間完成;
  • 2如果檢測到過多的舍入誤差,
  • 3如果發生極壞的被積函數行爲;
  • 6如果輸入無效。

順便說一句,確切的解決方案是大約0.27865的1-1 /(2 * log(2))。