exTail
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте! Есть вопрос по передаче переменных в функцию, используемую в подинтегральном выражении NIntegrate, по которым не ведется интегрирование... Собственно, вот тестовый код: f[a_, b_] := NIntegrate[a*x + b, {x, 0, 1}]; g[a_] := NIntegrate[f[a, y]/(1 + f[a, y]), {y, -1, 1}]; При попытке счета, получаем: In[23]:= g[2] From In[23]:= NIntegrate::inum: Integrand 2 x + y is not numerical at {x} = {0.5`}. Out[23]= 0.901388 Т.е. судя по в функцию f передается не кокретное значение b, а y, как параметр... Что делать? По советам, найденным в сети вставил проверку переменных в определние функции f: f[(a_)?NumericQ, (b_)?NumericQ] := NIntegrate[a*x + b, {x, 0, 1}] Результат тот же... Я бы, может, и плюнул на это предупреждение - счет оно не останавливает и тестовые результаты похожи на правду. НО "настоящая" функция гораздо сложнее и вложенных интегралов тоже больше, поэтому неочевидно, как эти предупреждения скажутся на "реальных" результатах Спасибо за ответы! |