Плохой интеграл

Интеграл \(\int_0^\infty \frac{sin(x)}{\sqrt{x}}dx\) можно вычислить аналитически и он равен равен \(\sqrt{ \frac{\pi}{2} }\). На сколько точно можно найти подобные интегралы численно?

Задания

  • Напишите функцию вычисляющую определенный интеграл. Предусмотрите входные параметры, изменяющие точность разбиения \(dx\) и верхний предел интегрирования \(b\).
  • Проверьте работу алгоритма интегрирования для нескольких известных функций.
  • Изменяя параметры, определяющие точность, постарайтесь найти интеграла из задания.
  • Какую точность вам удалось получить?
  • Повторяя вычисления для разных параметров и фиксируйте время выполнения программы и точность вычислений.
  • Оцените время, которое потребуется для вычисления требуемого интеграла с точностью \(10^{-6}\).

Подсказки

  • Фрагмент кода может выглядеть так

    def integrate(fun,a=0.,b=1.,N=100,dx=0.):
        """ функция вычисления интеграла от 'fun'
            в пределах от 'a' до 'b' методом Симпсона
            dx - величина шага (если 0, то берем число точек разбиения - 'N')
        """
        if dx > 0:                  #
            N = int((b-a)/dx)       # число интервалов разбиения
        if N%2 <>0:
            N+=1                    # N должно быть четным
        dx = (b-a)/N
        cf = 0
        sum = - fun(a) - fun(b)     # коррекция первого и последнего коэфф.
        for i in xrange(N+1):
            if cf == 2:             # чередование коэффициентов
                cf = 4
            else:
               cf = 2
            sum += fun(a+dx*i)*cf   # суммирование
        sum *= dx/3                 # коэффициент
        return sum
    
  • Выбирите шаг интегрирования \(\pi/(2k)\) (\(k\) - натуральное), и верхний предел пропорциональным \(2\pi\).

  • Проанализируйте зависимость полученного значения от \(1/b\) (постройте график)

  • Проанализируйте зависимость полученного значения от \(dx\) (постройте график)

  • Уточните решение используя результаты проведенного анализа

Прямое решение

Решение с шагом пропорциональным периоду