Интеграл3 и интеграл2 внутри интеграла

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

Integer3 вызывает интеграл для интегрирования по xmin ≤ x ≤ xmax. Он вызывает Integer2 с методом "плитки" для вычисления двойного интеграла...

Я сделал правильную (я думаю, что это) векторизацию моей функции, поэтому она принимает мозаичный вход от Integer3 и возвращает правильный массив значений. Интеграция проходит без ошибок, но при интегрировании возвращается значение NaN (хотя сама интегрируемая функция всегда возвращает массив комплексных чисел).

Наряду с этим, если я использую интеграл (с методом «ArrayValued») интеграла2 (метод плитки) той же функции, как указано в руководстве, интеграл3, возвращаемые значения являются не NaN, а комплексными числами.

Любая идея, откуда может взяться NaN?


person Mike    schedule 25.11.2014    source источник
comment
Комплексные числа немного сложнее интегрировать. Могу я увидеть вашу функцию и вашу попытку? Если вы считаете, что функция слишком длинная, чтобы писать здесь, не волнуйтесь, это не принесет никакого вреда. Если ваша функция действительно длинная, я бы повторил ту же интеграцию с простой, но все же репрезентативной функцией, чтобы убедиться, что интеграция работает правильно.   -  person patrik    schedule 25.11.2014
comment
Спасибо, но это вряд ли возможно - функция использует кучу других подфункций, но в основном сводится к кратному двум комплексным экспонентам, и в любом случае я преодолел проблему (что снова немного сбивает с толку), перейдя от: integral3(@(x,y,z) F(x,y,z),x1,x2,y1,y2,z1,z2) к integral3(@(z,x,y) F(x,y,z),z1,z2,x1,x2,y1,y2)   -  person Mike    schedule 27.11.2014
comment
Ясно, хорошо, что вы заставили его работать, ничего, если я проголосую за закрытие вопроса? Вы также можете отправить ответ и принять его, просто чтобы показать, что проблема решена.   -  person patrik    schedule 27.11.2014


Ответы (1)


Не уверен, как это сработало, но изменение порядка интеграции с integral3(@(x,y,z) F(x,y,z),x1,x2,y1,y2,z1,z2) на integral3(@(z,x,y) F(x,y,z),z1,z2,x1,x2,y1,y2) решило проблему.

person Mike    schedule 29.11.2014