Come posso valutare un'integrazione per un numero?
-
12-10-2019 - |
Domanda
Ho alcune funzioni impostate in questo modo:
f(x):=1-2**-x$
g(y):=integrate(f(x), x, 0, y)$
e valutate:
f(1)$float(%);
g(1)$float(%);
ma per g (1), ho ricevuto una risposta simbolica al posto di una risposta numerica. Utilizzando galleggiante () è stato un tentativo di ottenere una risposta numerica ma appena compiuto tutti i termini nella integrale in galleggianti.
Come posso ottenere g (1) come un numero?
Soluzione
Perché non fare (dalla definizione di integrale definito):
f(x):=1-2**-x$
gg(x):=''(integrate(f(x), x))$
g(y):=gg(y) - gg(0)$
'' (quote-citazione) operatore viene utilizzato per forzare la valutazione della: = '. S destra prima della cessione
Altri suggerimenti
Se siete interessati solo a una soluzione numerica, allora si potrebbe utilizzare l'integrazione numerica.
Per esempio si potrebbe usare quad_qag (f(x), x, a, b, key, [epsrel, epsabs, limit])
.
ho provato:
f(x) := 1-2^(-x);
g(y):= quad_qag(f(x), x, 0, y, 3, epsrel=10d-8)$
g(1);
che ritorna:
[0.27865247955552,3.093663986714272*10^-15,31,0]
la prima voce è la soluzione numerica,
la seconda voce è l'errore relativo approssimativa,
la terza voce è il numero di iterazioni necessario per ottenere la soluzione,
e l'ultima voce è un codice di errore; codici di errore sono
- 0 se sono stati riscontrati problemi;
- 1 se sono stati fatti troppi sotto-intervalli;
- 2 se viene rilevato un eccessivo errore di arrotondamento;
- 3 se si verifica un comportamento integrando molto male;
- 6 se l'ingresso non è valido.
A proposito, la soluzione esatta è 1-1 / (2 * log (2)), che è di circa 0,27,865 mila.