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

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 посчитать интеграл
Аватара пользователя
Хотелось бы посчитать интеграл

$$ \int \limits_{-\infty}^{\infty} \int \limits_{-\infty}^y \dfrac{y-x}{12}\,\left[\min \left(1,\dfrac{1}{|xy|},\dfrac{1}{|x+y|}\right) \right]^3 \,dx\,dy$$

У вольфрама сегодня похоже выходной, метод монте карло на неограниченной области видимо тоже не работает, может есть работающие варианты?

 Re: посчитать интеграл
Аватара пользователя
И чтобы два раза не вставать, такой интеграл тоже неплохо бы
посчитать

$$ \int \limits_{-\infty}^{\infty} \int \limits_{-\infty}^z \int \limits_{-\infty}^y 
\dfrac{(z-y)(z-x)(y-x)}{32}\,
\left[\min \left( 1,\dfrac{1}{|x+y+z|},\dfrac{1}{|xy+yz+xz|},\dfrac{1}{|xyz|}\right) \right]^4 
\,dx\,dy\,dz$$

 Re: посчитать интеграл
makxsiq в сообщении #1725597 писал(а):
Хотелось бы посчитать интеграл

$$ \int \limits_{-\infty}^{\infty} \int \limits_{-\infty}^y \dfrac{y-x}{12}\,\left[\min \left(1,\dfrac{1}{|xy|},\dfrac{1}{|x+y|}\right) \right]^3 \,dx\,dy$$
Обе ведущие нейронки согласны, что ответ $\frac{41}{72}+\frac{\ln{2}}{12}$, но поля этого комментария слишком узки, чтобы поместилось полное решение.

-- добавлено через 14 минут --

makxsiq в сообщении #1725600 писал(а):
$$ \int \limits_{-\infty}^{\infty} \int \limits_{-\infty}^z \int \limits_{-\infty}^y 
\dfrac{(z-y)(z-x)(y-x)}{32}\,
\left[\min \left( 1,\dfrac{1}{|x+y+z|},\dfrac{1}{|xy+yz+xz|},\dfrac{1}{|xyz|}\right) \right]^4 
\,dx\,dy\,dz$$
Тут аналитический результат дал только Gemini, поэтому есть смысл кинуть всю простыню, чтобы кто-то мог проверить.

We recognize the presence of the elementary symmetric polynomials: $e_1 = x+y+z$ $e_2 = xy+yz+xz$ $e_3 = xyz$ The Vandermonde determinant $\Delta(x,y,z) = (z-y)(z-x)(y-x)$ serves exactly as the Jacobian determinant of the transformation from $(x,y,z)$ to $(e_1, e_2, e_3)$. Because the domain $x \le y \le z$ perfectly covers the fundamental region of real roots for the cubic equation $t^3 - e_1t^2 + e_2t - e_3 = 0$, we can transition completely to the space of coefficients $(e_1, e_2, e_3)$. Applying the change of variables, the Jacobian is $d e_1\, de_2\, de_3 = \Delta(x,y,z)\, dx\, dy\, dz$. The integral simplifies elegantly to: $$ I_3 = \dfrac{1}{32} \iiint_D \dfrac{1}{\max(1, |e_1|, |e_2|, |e_3|)^4} \,de_1 \,de_2 \,de_3 $$ where $D \subset \mathbb{R}^3$ is the region where the cubic discriminant is non-negative ($\Delta \ge 0$), meaning all three roots are real. Using the layer-cake representation by writing $\frac{1}{M^4} = \int_0^{1/M^4} 1 \,dt$, we can interchange the limits of integration. Taking $R = t^{-1/4}$, the integral over the entire parameter space of the polynomial roots perfectly reduces to evaluating the active geometric constraints on the bounded cubic. The mapped integral simplifies into evaluations over the base region bounded by $R=1$, given by: $$ I_3 = \dfrac{1}{32} \iiint_{D \cap [-1, 1]^3} \left( 2 \min\left(\dfrac{1}{e_2^2}, \dfrac{1}{|e_3|}\right) - 1 \right) de_1 \,de_2 \,de_3 $$ Focusing on the bounded volume $V(1)$ mapped natively across the constraints $-1 \le e_2 \le e_1^2/3$, it can be exactly integrated through consecutive trigonometric substitutions (secant reductions), yielding components tied to $\ln 3$. Evaluating the respective split bounds for the polynomial coefficients where the crossover $|e_3| = e_2^2$ partitions the spaces, the fractional evaluations telescope, combining powers of polynomial roots. Summing over the separated symmetric bounds gives the exact rational and logarithmic terms: Final Answer: $$ \int \limits_{-\infty}^{\infty} \int \limits_{-\infty}^z \int \limits_{-\infty}^y \dfrac{(z-y)(z-x)(y-x)}{32}\,\left[\min \left( 1,\dfrac{1}{|x+y+z|},\dfrac{1}{|xy+yz+xz|},\dfrac{1}{|xyz|}\right) \right]^4 \,dx\,dy\,dz = \dfrac{383}{3888} + \dfrac{\ln 3}{192} $$

 Re: посчитать интеграл
Не знаю, у меня "обе ведущие модели" сходятся в том, что второй интеграл равен $1/2$.
Ответ для первого такой же.

Проверять среди ночи че-то не хоцца.

makxsiq
А сдается мне, исходная задача была другая. Какая?

UPD. Такая?

Найти вероятность того, что все корни случайного приведенного многочлена вещественны
.

 Re: посчитать интеграл
Combat Zone в сообщении #1725605 писал(а):
Не знаю, у меня "обе ведущие модели" сходятся в том, что второй интеграл равен $1/2$
Google AI в начале ответа на первый интеграл написал, что интеграл расходится, а в конце написал, что сходится. Я потому и дал ход рассуждений, чтобы дать хоть какую-то возможность проверить.

Вольфрам по сути отличается только детерминированностью ответов :)

-- добавлено через 12 минут --

Combat Zone в сообщении #1725605 писал(а):
Найти вероятность того, что все корни случайного приведенного многочлена вещественны.
Ну по крайней мере этот интеграл для второй степени кто-то взял с тем же результатом.
https://math.stackexchange.com/question ... real-roots

 Re: посчитать интеграл
tolstopuz
Конечно, вы правы, и LLM в серьезных задачах доверять нельзя слепо. Может, и врут. Завтра будет время - посчитаю. Или ТС нас опередит.

-- добавлено через 28 минут --

tolstopuz в сообщении #1725607 писал(а):
Ну по крайней мере этот интеграл для второй степени кто-то взял с тем же результатом.

О, здорово, что вы нашли.
Да, хороших и рациональных ответов там не будет, конечно. Так что пусть лежит до утра.

 Re: посчитать интеграл
Аватара пользователя
tolstopuz в сообщении #1725607 писал(а):
Вольфрам по сути отличается только детерминированностью ответов
Нет, вольфрам врать не должен. Если он где-то даёт неправильный ответ - то это серьёзный баг, а не ожидаемое поведение.

 Re: посчитать интеграл
Аватара пользователя
Combat Zone в сообщении #1725605 писал(а):
А сдается мне, исходная задача была другая. Какая?

tolstopuz в сообщении #1725607 писал(а):
https://math.stackexchange.com/questions/1745310/the-probability-that-a-random-real-cubic-has-three-real-roots

Да, решалась эта задача с MSE.
Как оказалось, можно с помощью тангенсов ограничить область интегрирования и применить метод монте карло, оценки $P_2$ и $P_3 \approx 0.218$ совпадают с оценками на MSE.
Интересно было бы посмотреть на точное значение $P_3$.

 Re: посчитать интеграл
Еще помучал нейронку и получил из ниоткуда $\frac{641}{2430}-\frac{\log{3}}{24}$. Попросил код на scipy, и он волшебным образом дает что-то похожее.
Код: [ скачать ] [ спрятать ]
Используется синтаксис Python
import numpy as np
from scipy import integrate
from scipy.stats import qmc
import time

# Точное аналитическое значение, которое мы вывели
analytic_value = 641/2430 - np.log(3)/24
print(f"Точное аналитическое значение: {analytic_value:.7f}")
print("-" * 50)

# =====================================================================
# ВАРИАНТ 1: Quasi-Monte Carlo (Последовательности Соболя)
# Самый надежный и быстрый способ для 3D интегралов с разрывами (max/min)
# =====================================================================
def mc_integral_sobol():
    start = time.time()
   
    # 2**20 (около 1 млн) точек для идеального баланса скорости и точности
    N = 2**28
    sampler = qmc.Sobol(d=3, scramble=True)
    sample = sampler.random(n=N)
   
    # Отображаем случайные числа из [0, 1] в [-pi/2, pi/2]
    u = np.pi * (sample[:, 0] - 0.5)
    v = np.pi * (sample[:, 1] - 0.5)
    w = np.pi * (sample[:, 2] - 0.5)
   
    # Делаем замену на бесконечный интервал
    x, y, z = np.tan(u), np.tan(v), np.tan(w)
   
    e1 = x + y + z
    e2 = x*y + y*z + x*z
    e3 = x*y*z
   
    # Ищем max(1, |e1|, |e2|, |e3|) векторизованно для всех точек сразу
    max_vals = np.maximum.reduce([np.ones(N), np.abs(e1), np.abs(e2), np.abs(e3)])
   
    # Модуль определителя Вандермонда
    V = np.abs((z - y) * (z - x) * (y - x))
   
    # Якобианы от производной тангенса: dx*dy*dz = sec^2(u)*sec^2(v)*sec^2(w) du dv dw
    jacobians = (1 + x**2) * (1 + y**2) * (1 + z**2)
   
    # Собираем подынтегральное выражение (делим на 192 из-за симметрии всего R^3)
    integrands = V * jacobians / (192.0 * max_vals**4)
   
    # Умножаем на объем области интегрирования куба улов: (pi)^3
    integral = (np.pi**3) * np.mean(integrands)
   
    print(f"Метод Quasi-Monte Carlo : {integral:.7f}")
    print(f"Время выполнения QMC    : {time.time() - start:.3f} сек")
    return integral

# =====================================================================
# ВАРИАНТ 2: Классический адаптивный алгоритм scipy.integrate.nquad
# Может выдавать предупреждения (IntegrationWarning) из-за изломов max()
# =====================================================================
def nquad_integral():
    start = time.time()
   
    def integrand(u, v, w):
        x = np.tan(u)
        y = np.tan(v)
        z = np.tan(w)
       
        e1 = x + y + z
        e2 = x*y + y*z + x*z
        e3 = x*y*z
        m = max(1.0, abs(e1), abs(e2), abs(e3))
       
        V = abs((z - y) * (z - x) * (y - x))
        jac = (1 + x**2) * (1 + y**2) * (1 + z**2)
       
        return V * jac / (192.0 * m**4)

    # Интегрируем по замкнутому кубу [-pi/2, pi/2]
    limits = [[-np.pi/2, np.pi/2], [-np.pi/2, np.pi/2], [-np.pi/2, np.pi/2]]
   
    # Задаем 'epsabs' и 'epsrel', иначе nquad зависнет на поиске субмиллиметровой точности
    # в местах стыков кусочной функции max()
    res, err = integrate.nquad(integrand, limits, opts={'epsabs': 1e-4, 'epsrel': 1e-4, 'limit': 50})
   
    print(f"\nМетод scipy.nquad       : {res:.7f} (погрешность ~{err:.1e})")
    print(f"Время выполнения nquad  : {time.time() - start:.3f} сек")
    return res

if __name__ == '__main__':
    mc_integral_sobol()
    nquad_integral()


Код:
Точное аналитическое значение: 0.2180105
--------------------------------------------------
Метод Quasi-Monte Carlo : 0.2180105
Время выполнения QMC    : 65.585 сек

Метод scipy.nquad       : 0.2180027 (погрешность ~1.0e-04)
Время выполнения nquad  : 135.213 сек


-- добавлено через 12 минут --

mihaild в сообщении #1725609 писал(а):
Нет, вольфрам врать не должен. Если он где-то даёт неправильный ответ - то это серьёзный баг, а не ожидаемое поведение.
Это я вчера переел конфет с ромом и джином :)

Хотя по ссылке пишут, что математика выдала $0.21829$ с оценкой погрешности $4\cdot10^{-5}$, что немного не согласуется с моими результатами.

 Re: посчитать интеграл
Аватара пользователя
Не понимаю в чем задача.
Либо посчитать интеграл (например, вручную).
Либо составить промт, такой чтобы известные нейронки посчитали его правильно.

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

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

 Re: посчитать интеграл
В первом случае тоже не очень понятно, как проверять. Не уверен, что здесь найдется человек, который в деталях проверит это длинное и нудное решение.
То, что аналитический ответ нейронки сошелся с Монте-Карло, - это хоть какой-то аргумент.

 Re: посчитать интеграл
Аватара пользователя
EUgeneUS в сообщении #1725630 писал(а):
Не понимаю в чем задача.

Попробую пояснить. Задача на MSE заключается в том, чтобы посчитать вероятность того, что у случайного кубического полинома будут только вещественные корни. Автор задачи пытался решить ее самым прямым и естественным способом - через дискриминант. Но когда увидел соответствующий интеграл для кубического уравнения, то вероятно ощутил понятную грусть и стал искать другие пути решения, о чем и спросил на форуме.
‎Я рассмотрел другой подход к решению задачи, без дискриминатов, с использованием совместной плотности распределения коэффициентов и их параметризацией по формулам Виета. Интеграл получился тоже непростой, но имхо более наглядный, впрочем это дело вкуса. Кроме того, с таким подходом можно выразить интеграл вероятности для полинома любой степени и оценить его методом монте карло, а подход решения через дискриминант можно использовать только для полиномов степеней 2 и 3.

 Re: посчитать интеграл
У меня тоже независимо ответ численно $0.2180$ с точностью $10^{-4}$. (Mathematica, Монте-Карло для исходной задачи, для стартовой точность ниже, и свободы меньше). И вообще ее не так надо ставить, не надо преждевременно упорядочивать корни, даже если и переходить к ним.

-- добавлено через 24 минуты --

makxsiq
А вы пробовали такую задачу решать для второй степени своим способом? Попробуйте, посмотрите, что получится.
tolstopuz
Нейронка врет.Тут было много всего, зачеркиваю.
Хотя нет, забираю свои слова обратно, надо проверять.

 Re: посчитать интеграл
Combat Zone в сообщении #1725634 писал(а):
Нейронка врет. Чисто ответ не совпадает (не намного, но отличается, не вписываясь в те самые $10^{-4}$).
А QMC? Там сходятся $7$ знаков на $2^{24}$ точках и $6$ знаков на $2^{20}$.

 Re: посчитать интеграл
tolstopuz в сообщении #1725635 писал(а):
А QMC? Там сходятся $7$ знаков на $2^{24}$ точках и $6$ знаков на $2^{20}$.

Да, врет мой калькулятор ) ваш не знаю. Уже удалено.

 [ Сообщений: 20 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group