Вычислительные люди науки:
Первоначально я разместил этот вопрос на Math Stack Exchange, и кто-то сказал, что я мог бы получить «гораздо лучшие» ответы здесь:
Я новичок в численных методах и Matlab. Я пытаюсь оценить следующую сумму двух тройных интегралов (она, очевидно, может быть записана более просто, но вы все еще не можете оценить ее символически (?)). У меня возникают проблемы с тем, чтобы работал здесь, поэтому я неохотно разбил его на куски: я хочу найти сумму
и
где
и
РЕДАКТИРОВАТЬ (2 марта 2013 г.): Кто-то ответил, что они заставили Mathematica сделать интегралы символически. Я только попытался сделать это (с упрощенными версиями интегралов), и Mathematica могла сделать только два внешних из первого, и остановилась на втором. Буду признателен за помощь. Вот что я сделал.
Я пытался оценить
Интегрировать [r1 ^ 3 / r2 ^ 3 * t ^ 2 * Exp (-t ^ 2), {t, 0, r2 - r1}, {r1, 1, r2}, {r2, 1, 2}]
и Mathematica возвращается (у меня были проблемы с здесь, потому что результат длинный. Я разбил его на два уравнения. Если кто-нибудь знает хороший способ показать это, пожалуйста, сообщите мне):
Тогда я попытался оценить
с помощью
Интегрировать [(r1 + r2 - t) ^ 4 * (t ^ 2 + 2 * t * (r1 + r2) - 3 * (r2 - r1) ^ 2) ^ 2 * Exp [-t ^ 2] / r1 ^ 3 / r2 ^ 3, {r2, 1, 2}, {r1, 1, r2}, {t, r2-r1, r2 + r1}]
только сейчас, и Mathematica не вернула ответ примерно через полчаса (но у меня сейчас проблемы с компьютерной сетью, и они могут быть виноваты).
[Конец редактирования 2 марта]
Я использовал команду "triplequad" от Matlab без дополнительных опций. Я управлял переменными пределами интеграции с помощью тяжелых функций, потому что я не знал другого способа сделать это. Матлаб дал мне .
Я знаю, что Matlab - хорошее программное обеспечение, но я слышал, что числовые тройные интегралы трудно сделать точно, и математики должны быть настроены скептически, поэтому я хочу как-то проверить точность этого ответа. Интегралы дают ожидаемую ценность определенного эксперимента (если кто-то хочет, я могу отредактировать этот вопрос, чтобы описать эксперимент): я реализовал эксперимент в Matlab, используя соответственно случайно сгенерированные числа, миллион раз, и усреднил результаты. Я повторил этот процесс четыре раза. Вот результаты (я прошу прощения, если я неправильно использовал слово «испытание»):
Пробная версия 1:
Пробная версия 2:
Пробная версия 3:
Пробная версия 4:
Пробная версия 5:
Хотя в каждом испытании использовался миллион образцов, значения моделирования совпадают только в первой значащей цифре. Они не достаточно близки друг к другу, чтобы я мог определить, является ли числовой тройной интеграл точным.
Так может ли кто-нибудь сказать мне, могу ли я доверять результату «тройной четверки» здесь, и при каких обстоятельствах можно доверять ему вообще?
Одним из предложений, которое я получил на Math Stack Exchange, было попробовать другое программное обеспечение, такое как Mathematica, Octave, Maple и SciPy. Это хороший совет? Люди действительно выполняют числовую работу в Mathematica и Maple? Octave - это своего рода клон Matlab, поэтому можно ли предположить, что он использует те же алгоритмы интеграции? Я даже не слышал о SciPy раньше и был бы признателен за любые мнения по этому поводу.
ОБНОВЛЕНИЕ: Кто-то из Math Stack Exchange сделал это в Maple и получил . Это согласие с тремя значительными цифрами. Это хороший знак.
Кроме того, я был бы признателен за предложения о том, как ввести длинное многострочное выражение в в Stack Exchange. Можете ли вы использовать "выровненную" среду здесь? Я пытался, и я не мог заставить его работать.