2017-02-14 17 views
0

Я хочу сделать главный интеграл, используя функцию scipy.integrate.quad в пакете scipy Python. Например, я хочу, чтобы вычислить (извините за латексные коды):Аргумент «точек» в квадратной функции python

\begin{equation} 
\lim_{\epsilon\rightarrow 0} 
\left(\int_{-1}^{-\epsilon}dx\frac{1}{x}+\int_\epsilon^1 dx\frac{1}{x}\right) 
\end{equation} 

или

equation

я нашел из руководства, что есть дополнительный аргумент quad, points, который последовательность точек разрыва в ограниченном интервале интегрирования, где могут возникать локальные трудности подынтегрального выражения. Может ли points использоваться для вычисления выражения выше? Если да, то как именно это реализовать?

+0

_ "... quad function of python." _ - Я не знаком с какой-либо встроенной функцией "quad" в Python. Не могли бы вы рассказать об этом? –

+0

Я имел в виду scipy.integrate.quad –

+0

'scipy.integrate.quad' может обрабатывать интегрируемые особенности. Это случай вашей функции? Предел в выражении не то, что SciPy сам по себе может решить на вашем месте. –

ответ

0

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

In [15]: quad(lambda x: 1, -2, 3, weight='cauchy', wvar=0) 
Out[15]: (0.4054651081081642, 0.0) 

In [16]: log(3./2.) 
Out[16]: 0.4054651081081644 
0

Как отметил here, если ваш подынтегральная имеет вид g(x)=f(x)/(x-x0) вы действительно можете использовать weight='cauchy'. Обязательно передайте f как подынтегральное выражение, а не частное. Очевидно, что если ваш подынтеграл не относится к этой форме, вы можете попробовать его умножить на (x-x0).

quad использует QUADPACK'sQAWCE рутина, которая является специальным решателем для основных значений Коши.

Возможно, вы также можете попытаться интегрировать g(x0+x') + g(x0-x') где x0 - это ваша особенность и отметим x'=0 как непростую ценность. (Если пределы интеграции не симметричны относительно x0, вам необходимо отдельно интегрировать избыток.) ​​Это, вероятно, не лучше, чем специалист QAWCE, но вы никогда не знаете, пока не попробовали.

 Смежные вопросы

  • Нет связанных вопросов^_^