Вопрос

У меня есть некоторые функции, настроенные так:

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]

Первая запись - это числовое решение,

Вторая запись - приблизительная относительная ошибка,

Третья запись - это количество итераций, необходимых для достижения решения,

и последняя запись - код ошибки; Коды ошибок есть

  • 0, если не возникали проблем;
  • 1, если было сделано слишком много подэнтервалов;
  • 2, если обнаружена чрезмерная ошибка заурядка;
  • 3 Если происходит чрезвычайно плохое поведение интеграции;
  • 6 Если ввод недействителен.

Кстати, точное решение составляет 1-1/(2*log (2)), что составляет приблизительно 0,27865.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top