Как посчитать интеграл в программе mathematica

REDMOND

Иллюстрированный самоучитель по Mathematica 5

Интегрирование в системе Mathematica (как и в жизни) сложнее дифференцирования. Впрочем, формально все просто: неопределенный интеграл вычисляют посредством команды Integrate:

Заметьте, что здесь не учтен случай n = -1. Конечно же, неберущиеся интегралы не берутся.

А вот более сложный пример.

Для человека это уже не совсем просто. Впрочем, в ранних версиях система Mathematica взять этот интеграл не могла.

Определенные интегралы

Команда Integrate умеет вычислять и определенные интегралы, а для тех, которые с ее помощью не берутся, имеется команда NIntegrate, позволяющая вычислять определенные интегралы приближенно. Рассмотрим пример.

В необходимых случаях выполняются проверки.

Как видите, система Mathematica рассмотрела даже случаи комплексного n. Но есть ведь неберущиеся интегралы… Система не отступает даже перед ними.

В данном случае система Mathematica выразила значение интеграла через константу и значение специальной функции. Но можно, конечно, вычислить и приближенное значение интеграла.

Научный форум dxdy

Пытаюсь заставить MATHEMATICA вычислить интеграл
$ \int_0^\infty \frac<x><(x^2-y^2)(1+x^2)>d\,y. $
Она видимо не умеет без дополнительной помощи аккуратно считать несобственные, даёт похожий на правильный, но неточный ответ в виде комплексного выражения. Правильный ответ $\frac<x><1+x^2>$.
Можно ей помочь дополнительными условиями, например, $x>0$, и уговорами , чтобы правильно вычислить этот интеграл? Спасибо.

Последний раз редактировалось nnosipov 29.04.2020, 11:31, всего редактировалось 1 раз.

Так интеграл даже не несобственный, а существует в смысле главного значения (value principal). Вот и надо это mathematica намекнуть.

Хотя здесь вроде и без всяких CAS все ясно.

— Ср апр 29, 2020 15:31:17 —

вычислить интеграл
$ \int_0^\infty \frac<x><(x^2-y^2)(1+x^2)>d\,y. $

Такое ощущение, что она там не одна.

Он и без пакетов равен нулю (v.p.), если $x$— вещественное, конечно. Если нет, то это и надо оговаривать. Но и тогда не получится анонсированное.

если $x$— вещественное, конечно
А, вот про это я не подумал: ведь если считать $x$комплексным (невещественным), то интеграл обычный несобственный.

Последний раз редактировалось novichok2018 29.04.2020, 12:33, всего редактировалось 2 раз(а).

Опечаток нет. Понятно, что главное значение, но как намекнуть, не расписывая пределы, есть способ? Икс действительный и даже положительный. На самом деле, есть такой факт, что композиция синус и косинус преобразований Фурье на положительной полупрямой при их стандартном определении есть пара преобразований Гильберта на полупрямой. Это одно из них, применённое к функции $\frac<1><1+x^2>$. Эти преобразования унитарны в эль два на полуоси (точнее, с нужными множителями спереди, здесь это несущественно), вот взяли функцию из эль два. Композицию синус/косинус преобразований Фурье МАТЕМАТИКА считает хоть сразу, хоть по шагам, отсюда ответ. А вот с Гильбертом пока не получается то же самое.

Да в интеграле была опечатка, простите. Нужно так:
$ \int_0^\infty \frac<x><(x^2-y^2)(1+y^2)>d\,y. $

МАТЕМАТИКА даёт ответ с условием ConditionalExpression, он близок к правильному но содержит ненужное комплексное выражение.

Последний раз редактировалось arseniiv 29.04.2020, 12:39, всего редактировалось 2 раз(а).

Assuming[x > 0, интегрирование тут] уже пробовали?

UPD:
Хм, да, на Assuming[x > 0, Integrate[x/&#40;&#40;x^2 — y^2&#41; &#40;1 + y^2&#41;&#41;, ]] она отвечает, что не сходится.

REDMOND

UPD2:
Assuming[x > 0, Integrate[x/&#40;&#40;x^2 — y^2&#41; &#40;1 + y^2&#41;&#41;, , PrincipalValue -> True]] даёт $\dfrac<\pi>2\dfrac x<1 + x^2>$.

Численное интегрирование в Mathematica 5.1/5.2

Для вычисления численных значений определенных интегралов используется функция:

NIntegrate[f, <х, xmin, xmax>] — возвращает численное приближение интеграла от функции f по переменной х на интервале от xmin до xmax.

Она имеет ряд опций, вывести которые можно с помощью команды Options [NIntegrate]. Поскольку численное интегрирование широко используется на практике, отметим назначение данных опций:

AccurateGoal — задает число цифр, задающих точность промежуточных результатов;

Compiled — задает возможность компиляции функции;

DoubleExponential — является вариантом для опции Method функции NIntegrate.

GaussPoints — устанавливает количество точек в гауссовой части квадратуры Г аусса- Кроирода.

MaxPoint — задает максимальное число точек при интегрировании.

MaxRecursion — задает максимальную глубину рекурсии.

Method -> DoubleExponential — назначает для исполнения алгоритм двойной экспоненциальной сходимости.

Method -> Multi Dimensional — назначает для исполнения многомерный алгоритм. Имеет смысл только для интегрирования кратных интегралов.

Method -> GaussKronrod — выбирает для исполнения адаптивную квадратуру Гаусса-Кронрода.При многомерном интегрировании GaussKronrod обращается к декартову произведению одномерных квадратурных формул Гаусса-Кронрода.

Method -> Trapezoidal назначает для решения рекурсивный метод трапеции.

MinRecursion — задает минимальную глубину рекурсии.

PrecisionGoal — задает погрешность вычислений.

SingularityDepth — указывает, насколько допустима глубокая рекурсия перед тем, как начинается изменение переменной на границах интервала интегрирования.

Приведем примеры на использование функции NIntegrate без опций:

NIntegrate[1/Sqrt[1-х л 6],<х,0,1>] 1.21433

NIntegrate[BesselJ[1,х] л З,<х,0,1>] 0.0243409

Эти примеры показывают, что функция NIntegrate с успехом может применяться как для вычисления однократных, так и многократных определенных интегралов — в том числе с переменными пределами.

В большинстве случаев функция вычисляет определенные интегралы с опциями, установленными по умолчанию. Более того, несогласованная установка опций может вызвать сообщение об ошибке:

NIntegrate::tmap: NIntegrate is unable to achieve the tolerances specified by the PrecisionGoal and AccuracyGoal options because the working precision is insufficient. Try increasing the setting of the WorkingPrecision option.

Вообще говоря, умелое владение численным интегрированием невозможно без понимания особенностей определенных интегралов и знания методов их вычислений. Это особенно важно, когда небходима не просто обычная, а высокая точность вычислений.

REDMOND

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *