2011-01-18 11 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] 

最初のエントリは、数値解法である、

2番目のエントリは概算相対誤差であり、

3番目のエントリは、ソリューションを達成するために必要な反復回数です。

最後のエントリはエラーコードです。エラーコードは

  • です。問題が発生しなかった場合は0です。
  • あまりにも多くの部分間隔が行われた場合は1、
  • 2過度の丸め誤差が検出された場合。
  • 3非常に不都合なintegrand動作が発生した場合。
  • 入力が無効な場合は6です。

ところで、正確な解は、1 /(2 * log(2))であり、これは約0.27865です。

関連する問題