質問

このようにセットアップされた機能がいくつかあります。

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

そしてそれらを評価しました:

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

しかし、G(1)については、数値の答えの代わりに象徴的な答えを得ました。 Float()を使用することは数値の答えを得ようと試みましたが、積分のすべての用語をフロートに変えました。

g(1)を数として取得するにはどうすればよいですか?

役に立ちましたか?

解決

なぜ(明確な積分の定義によって)だけではないのですか:

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

''(QUOTE-QUOTE)オペレーターは、割り当ての前に:= 'の右側の評価を強制するために使用されます。

他のヒント

数値ソリューションのみに興味がある場合は、数値統合を使用できます。たとえば、使用できます 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非常に悪いインテグランドの動作が発生した場合。
  • 6入力が無効な場合。

ところで、正確なソリューションは1-1/(2*log(2))で、約0.27865です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top