Русский
Русский
English
Статистика
Реклама

Производные

Перевод Оптимизация при помощи линейного поиска на Python

13.06.2021 18:05:09 | Автор: admin

Линейный поиск это алгоритм оптимизации, который может использоваться для целевых функций с одной или несколькими переменными. Он предоставляет возможность использовать алгоритм одномерной оптимизации, например поиск методом деления пополам (бисекции) для многомерной целевой функции, работая с линейным поиском для определения оптимального размера шага в каждом измерении от известной точки до оптимума. Мы уже делились переводами Джейсона Браунли, например статьёй о смешанных ансамблях, а в этом учебном руководстве, которое мы перевели к старту курса о машинном и глубоком обучении, рассказывается об основах: вы узнаете, как на Python с помощью линейного поиска выполнить оптимизацию.


Прочитав это руководство, вы узнаете:

  • что линейный поиск это алгоритм оптимизации для одномерных и многомерных задач оптимизации;

  • что библиотека SciPy предоставляет API выполнения линейного поиска, который требует знания о том, как вычисляется первая производная вашей целевой функции;

  • как выполнить линейный поиск для целевой функции и работать с результатом.

Давайте начнём.

Обзор

Этот учебный материал разделён на три части:

  1. Что такое линейный поиск?

  2. Линейный поиск на Python.

  3. Как выполняется линейный поиск? Он состоит из:

a) определения целевой функции;

б) выполнения линейного поиска;

в) работы со сбоями алгоритма.

Что такое линейный поиск?

Линейный поиск это алгоритм оптимизации для одномерной или многомерной оптимизации. Он требует начальной позиции в пространстве поиска, а также указания направления поиска. Затем он из начальной выбирает следующую позицию в пространстве поиска, которая приведёт к значению лучше или же к наилучшему значению целевой функции.

Направление имеет знак (плюс или минус) вдоль линии и максимальную протяжённость поиска, поэтому его лучше рассматривать как область поиска кандидатов, оно должно быть достаточно большим, чтобы охватить оптимумы или точку лучше начальной.

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

Один из подходов заключается в применении линейного поиска, выбирающего коэффициент шага, который минимизирует одномерную функцию [...]. Мы можем применить метод одномерной оптимизации по нашему выбору.

Алгоритмы оптимизации, 2019. С. 54.

Альфа коэффициент масштаба для направления, поэтому при поиске учитываются только значения в диапазоне от 0,0 до 1,0. Один шаг линейного поиска решает задачу минимизации, которая минимизирует целевую функцию для текущей позиции в сумме с масштабируемым направлением, то есть:

  • Минимизирует objective(position + alpha * direction).

Таким образом, линейный поиск работает в одном измерении за один раз и возвращает расстояние перемещения в выбранном направлении.

Каждая итерация метода линейного поиска вычисляет направление поиска pk, а затем решает, как далеко двигаться в этом направлении.

Численная оптимизация, 2006. С. 30.

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

Решение приблизительно или неточно и в зависимости от формы пространства поиска может не оказаться общим решением. Условия, при которых этот алгоритм подходит, называются условиями Вольфе. Теперь, когда мы знакомы с линейным поиском, давайте посмотрим, как выполнять его на Python.

Линейный поиск на Python

Выполнить линейный поиск на Python можно вручную, с помощью функции line_search(). Она поддерживает одномерную оптимизацию, а также многомерные задачи оптимизации. Эта функция принимает имя целевой функции и имя градиента для целевой функции, а также текущее положение в пространстве поиска и направление движения.

Таким образом, вы должны знать первую производную вашей целевой функции. Вы также должны иметь некоторое представление о том, с чего начать поиск и насколько широко выполнять его. Напомним, что поиск может выполняться несколько раз с разными направлениями (знаком и протяжённостью).

...result = line_search(objective, gradient, point, direction)

Функция возвращает кортеж из шести элементов, включая коэффициент масштаба для направления, называемый альфа, и количество выполненных вычислений функций, а также другие значения. Первый элемент в результирующем кортеже содержит альфа. Если поиск не сойдётся, альфа будет иметь значение None.

...# retrieve the alpha value found as part of the line searchalpha = result[0]

Альфа, начальная точка и направление могут использоваться при построении конечной точки линейного поиска.

...# construct the end point of a line searchend = point + alpha * direction

Для задач оптимизации с более чем одной входной переменной, например многомерной оптимизации, функция line_search() вернёт одно альфа-значение для всех измерений. Это значит, функция предполагает, что оптимум равноудалён от начальной точки во всех измерениях, такое ограничение существенно. Теперь, после ознакомления с тем, как в Python выполнять линейный поиск, давайте рассмотрим работающий пример.

Как выполняется линейный поиск?

Мы можем продемонстрировать, как использовать линейный поиск с простой одномерной целевой функцией и её производной. Этот раздел, в свою очередь, разделён на несколько частей, включая определение тестовой функции, выполнение линейного поиска и обработку неудачных случаев, когда оптимум не находится.

Определение целевой функции

Во-первых, мы можем определить целевую функцию. Здесь поработаем с одномерной целевой функцией, а именно со сдвинутой на небольшую величину от нуля функцией x^2. Это выпуклая функция, она была выбрана потому, что её легко понять, а также легко вычислить первую производную.

  • objective(x) = (-5 + x)^2.

Обратите внимание, что линейный поиск не ограничивается одномерными или выпуклыми функциями. Реализация этой функции приведена ниже.

# objective functiondef objective(x):return (-5.0 + x)**2.0

Первая производная этой функции может быть вычислена аналитически следующим образом:

  • gradient(x) = 2 * (-5 + x).

Градиент для каждого входного значения просто указывает наклон к оптимумам в каждой точке. Реализация функции градиента приведена ниже:

# gradient for the objective functiondef gradient(x):return 2.0 * (-5.0 + x)

Можно определить диапазон входных данных для x от -10 до 20 и вычислить целевое значение для каждого входного значения:

...# define ranger_min, r_max = -10.0, 20.0# prepare inputsinputs = arange(r_min, r_max, 0.1)# compute targetstargets = [objective(x) for x in inputs]

Затем, чтобы получить представление о форме функции, мы можем построить график входных значений в сравнении с целевыми значениями:

...# plot inputs vs objectivepyplot.plot(inputs, targets, '-', label='objective')pyplot.legend()pyplot.show()

Связав всё это воедино, получим такой код:

# plot a convex objective functionfrom numpy import arangefrom matplotlib import pyplot # objective functiondef objective(x):return (-5.0 + x)**2.0 # gradient for the objective functiondef gradient(x):return 2.0 * (-5.0 + x) # define ranger_min, r_max = -10.0, 20.0# prepare inputsinputs = arange(r_min, r_max, 0.1)# compute targetstargets = [objective(x) for x in inputs]# plot inputs vs objectivepyplot.plot(inputs, targets, '-', label='objective')pyplot.legend()pyplot.show()

Программа вычисляет входные значения (x) в диапазоне от -10 до 20 и создаёт график, показывающий знакомую U-образную форму параболы. Оптимум функции, по-видимому, находится в точке x=5,0, целевое значение 0,0.

Линейный график выпуклой целевой функцииЛинейный график выпуклой целевой функции

Выполнение линейного поиска

Затем можно выполнить линейный поиск по этой функции. Во-первых, мы должны определить отправную точку поиска и его направление. Здесь воспользуемся начальной точкой x=-5, расстояние от которой до оптимума около 10 единиц. Сделаем большой шаг вправо, в данном случае в 100 единиц (что значительно превышает оптимум), например, в положительном направлении. Напомним, что направление похоже на размер шага и поиск масштабирует размер шага, чтобы найти оптимум:

...# define the starting pointpoint = -5.0# define the direction to movedirection = 100.0# print the initial conditionsprint('start=%.1f, direction=%.1f' % (point, direction))# perform the line searchresult = line_search(objective, gradient, point, direction)

Затем поиск ищет оптимумы и возвращает альфа или расстояние, чтобы изменить направление. Из результата мы можем получить значение альфа, а также количество выполненных вычислений функций:

...# summarize the resultalpha = result[0]print('Alpha: %.3f' % alpha)print('Function evaluations: %d' % result[1])

Мы можем использовать альфа вместе с нашей начальной точкой и размером шага для вычисления местоположения оптимумов и вычисления целевой функции в этой точке (которая, как мы ожидаем, будет равна 0,0):

...# define objective function minima end = point + alpha * direction# evaluate objective function minimaprint('f(end) = %.3f' % objective(end))

Затем, для развлечения, мы можем снова построить график функции и показать начальную точку в виде зелёного квадрата, а конечную точку в виде красного квадрата.

...# define ranger_min, r_max = -10.0, 20.0# prepare inputsinputs = arange(r_min, r_max, 0.1)# compute targetstargets = [objective(x) for x in inputs]# plot inputs vs objectivepyplot.plot(inputs, targets, '--', label='objective')# plot start and end of the searchpyplot.plot([point], [objective(point)], 's', color='g')pyplot.plot([end], [objective(end)], 's', color='r')pyplot.legend()pyplot.show()

Ниже приведён полный пример выполнения линейного поиска для выпуклой целевой функции:

# perform a line search on a convex objective functionfrom numpy import arangefrom scipy.optimize import line_searchfrom matplotlib import pyplot # objective functiondef objective(x):return (-5.0 + x)**2.0 # gradient for the objective functiondef gradient(x):return 2.0 * (-5.0 + x) # define the starting pointpoint = -5.0# define the direction to movedirection = 100.0# print the initial conditionsprint('start=%.1f, direction=%.1f' % (point, direction))# perform the line searchresult = line_search(objective, gradient, point, direction)# summarize the resultalpha = result[0]print('Alpha: %.3f' % alpha)print('Function evaluations: %d' % result[1])# define objective function minimaend = point + alpha * direction# evaluate objective function minimaprint('f(end) = f(%.3f) = %.3f' % (end, objective(end)))# define ranger_min, r_max = -10.0, 20.0# prepare inputsinputs = arange(r_min, r_max, 0.1)# compute targetstargets = [objective(x) for x in inputs]# plot inputs vs objectivepyplot.plot(inputs, targets, '--', label='objective')# plot start and end of the searchpyplot.plot([point], [objective(point)], 's', color='g')pyplot.plot([end], [objective(end)], 's', color='r')pyplot.legend()pyplot.show()

Программа-пример сначала сообщает начальную точку и направление. Поиск выполняется, и обнаруживается изменяющая направление для нахождения оптимума значение альфа, в данном случае найденное после трёх вычислений функции 0.1. Точка оптимума находится на отметке 5,0, значение y, как и ожидалось, равно 0,0:

start=-5.0, direction=100.0Alpha: 0.100Function evaluations: 3f(end) = f(5.000) = 0.000

Наконец, создаётся график функции, показывающий зелёную начальную точку и красную цель.

Линейный график целевой функции с оптимумами и начальной точкой поискаЛинейный график целевой функции с оптимумами и начальной точкой поиска

Работа со сбоями алгоритма

Линейный поиск не гарантирует нахождения оптимумов функции. Он может не найти оптимумы, если задано значение направления, недостаточно большое, чтобы охватить их. Например, найти оптимумы будет невозможно, когда направление имеет значение 3. Продемонстрировать это можно на полном примере ниже:

# perform a line search on a convex objective function with a direction that is too smallfrom numpy import arangefrom scipy.optimize import line_searchfrom matplotlib import pyplot # objective functiondef objective(x):return (-5.0 + x)**2.0 # gradient for the objective functiondef gradient(x):return 2.0 * (-5.0 + x) # define the starting pointpoint = -5.0# define the direction to movedirection = 3.0# print the initial conditionsprint('start=%.1f, direction=%.1f' % (point, direction))# perform the line searchresult = line_search(objective, gradient, point, direction)# summarize the resultalpha = result[0]print('Alpha: %.3f' % alpha)# define objective function minimaend = point + alpha * direction# evaluate objective function minimaprint('f(end) = f(%.3f) = %.3f' % (end, objective(end)))

При выполнении примера поиск достигает предела альфа 1,0, что даёт конечную точку от -2 до 49. При f(5) = 0,0 от оптимумов очень далеко:

start=-5.0, direction=3.0Alpha: 1.000f(end) = f(-2.000) = 49.000

Кроме того, мы можем выбрать неправильное направление, ведущее только к вычислениям хуже стартовой точки. Здесь оно будет отрицательным в сторону от оптимума, например, вверх по склону от начальной точки:

...# define the starting pointpoint = -5.0# define the direction to movedirection = -3.0

Ожидается, что поиск не сойдётся, поскольку он не может найти какие-либо точки лучше начальной. Полный пример поиска, который не сходится, приведён ниже:

# perform a line search on a convex objective function that does not convergefrom numpy import arangefrom scipy.optimize import line_searchfrom matplotlib import pyplot # objective functiondef objective(x):return (-5.0 + x)**2.0 # gradient for the objective functiondef gradient(x):return 2.0 * (-5.0 + x) # define the starting pointpoint = -5.0# define the direction to movedirection = -3.0# print the initial conditionsprint('start=%.1f, direction=%.1f' % (point, direction))# perform the line searchresult = line_search(objective, gradient, point, direction)# summarize the resultprint('Alpha: %s' % result[0])

Выполнение программы приводит к предупреждению LineSearchWarning, указывающему на то, что поиск, как и ожидалось, не может сойтись. Альфа возвращённое в результате поиска значение равно None:

start=-5.0, direction=-3.0LineSearchWarning: The line search algorithm did not convergewarn('The line search algorithm did not converge', LineSearchWarning)Alpha: None

Дальнейшее чтение

Если вы хотите глубже погрузиться в тему, смотрите этот раздел.

Книги

API

Статьи

Резюме

Из этого руководства вы узнали, как выполнить оптимизацию линейного поиска на Python. В частности, вы узнали:

  • что линейный поиск это алгоритм оптимизации для одномерных и многомерных задач оптимизации;

  • что библиотека SciPy предоставляет API выполнения линейного поиска, требующий знания о том, как вычисляется первая производная вашей целевой функции;

  • как выполнить линейный поиск для целевой функции и работать с его результатом.

Применяемые в машинном обучении методы оптимизации, конечно же, не ограничиваются одним лишь линейным поиском, они многочисленны, разнообразны и у каждого есть свои недостатки и преимущества. Если вы хотите погрузиться в машинное обучение, изучить оптимизацию глубже, но не хотите ограничивать себя областью ML, вы можете обратить внимание на наш курс "Machine Learning и Deep Learning", партнёр которого, компания NVIDIA, не нуждается в представлении.

Узнайте, как прокачаться и в других специальностях или освоить их с нуля:

Другие профессии и курсы
Подробнее..

Интуитивное объяснение интеграла. Часть I от умножения натуральных чисел до Ньютона и Лейбница

19.12.2020 22:21:31 | Автор: admin

0. Предисловие

Математика представляет собой универсальный, мощный и элегантный раздел знания. По-сути её предмет и значение невозможно разделить с наиболее фундаментальными разделами философии логикой, онтологией и теорией познания. Именно поэтому она касается прямо или косвенно всех аспектов любого прикладного или теоретического знания.

К сожалению, так сложилось, что многим (и мне) она, порой кажется, слишком сложной, недоступной, наукой для избранных. Между тем, так только кажется ! Безусловно, она требует интеллектуального напряжения, памяти, воображения и много чего ещё, как и многие другие интеллектуальные занятия.

Отличительными особенностями её являются:

  1. использование особой знаковой системы (цифры, буквы разных алфавитов, языковые правила и т.д.),

  2. логическая строгость (понятия, определения, суждения, правила вывода задаются в явном и точном виде),

  3. последовательность (не поймёшь пункт 3, если не понял пункты 1 и 2),

  4. высокая плотность информации на единицу текста (часто смысла в тексте гораздо больше, чем в текстах иного содержания).

Легко показать, что любой интеллектуально развитый человек регулярно использует те же мыслительные конструкции, что и математика. Когда мы говорим давайте рассмотрим десять каких-либо операций (алгоритм) вроде кулинарного рецепта или простейшей программы или рассмотрим какой-либо частный случай явления, определим его свойства, отношения с другими явлениями, изучим структуру мы прибегаем к универсальным способам мышления, которые характерны для любого знания и в том числе математического.

Эта статья никогда бы не появилась на свет, если бы учебная литература была бы настолько совершенна, что могла бы легко объяснить, что такое интеграл. Перечитав десятки книг и статей я с уверенностью могу сказать, что ниодна из них не объясняет все нюансы этого вопроса так и таким образом, чтобы среднему, неискушённому человеку было всё абсолютно ясно.

Многие источники не удовлетворительны по следующим причинам:

  1. Говорят о какой-то площади под кривой при том, что читатель ни сном, ни духом не задумывался о площади, тем более под кривой и какой-то связи этой площади с универсальной идеей суммирования переменных величин

  2. Без интуитивного подведения читателя через сложение и умножение чисел, основательного разъяснения связи . сразу бросаются к определению интеграла через предел римановской суммы

  3. Забывают рассказать о историческом процессе развития математики (зачем ввели интеграл, какие открытия этому предшествовали, что подвело к этому, как считали интегральные суммы до этого, как Ньютон и Лейбниц считали интегралы и т.д.)

  4. Не считают нужным или не хотят привести пару тройку простых примеров интегрирования из прикладных наук

  5. Сыпят доказательствами утверждений, которые новичку покажутся неуместными или второстепенными

  6. Забывают напомнить выводы, обозначения и утверждения, использованные или доказанные ранее

  7. Пропускают те или иные алгебраические преобразования, которые очевидны автору, но могут запутать новичка

Автору надоело чувствовать неясность и он решил взять дело в свои руки расписать все аспекты так, чтобы было всё предельно ясно и понятно.

1. Предпосылки возникновения интегрирования

Интеграл и интегрирование являются неотъемлемыми и последовательными элементами исследования величин и функций. Интегрирование теснейшим образом связано с важнейшими способами анализа и исследования числовых функций средними, предельными, бесконечно малыми, бесконечно большими величинами, пределами, дифференциалами, производными и т.д. А потому, без осознания и исследования этих понятий невозможно и формирование понятия интеграла.

Исторически и логически, они развивались и развиваются слитно и нераздельно.

Во введении к книге Развитие понятия интеграла известный историк математики профессор Фёдор Андреевич Медведев так охарактеризовал сущность интегрирования и процесс его развития в науке ... Интегрирование представляет собой абстрактное выражение разнообразнейших способов измерения величин, и по мере вовлечения в человеческое познание всё новых и новых объектов реальной действительности математики создают всё более и более общие схемы интеграционных процессов с тем, чтобы охватить всё расширяющийся круг объектов, подлежащих измерению [1].

Как известно осознание самостоятельной значимости и полноценное развитие математики началось в Древней Греции. Постепенное накопление прикладных знаний о различного рода вычислительных, логических и геометрических задачах неизбежно привело к формированию теоретических начал и абстрактных представлений о существе многих математических идей.

Корпус прикладных и теоретических знаний накапливался и формировался шаг за шагом за счёт осмысления логического устройства мышления, применения арифметических операций, составления и решения алгебраических уравнений, построения и изучения свойств плоских и объёмных геометрических фигур.

2. Геометрический и аналитико-алгебраический смысл интегрирования

Естественным образом, возникает два вида задач, которые отражают два смысла интегрирования геометрический и аналитико-алгебраический. Первый - отыскание площади плоской фигуры под произвольной кривой (квадратура) и отыскание объёма (кубатура). Второй - подсчёт суммарного значения некой переменной величины [2], которая изменяется, принимает различные значения сообразно единицам времени, длины и т.д.

Согласно дошедшим до нас источникам, именно отыскание квадратуры является первой формой постановки задачи интегрирования. Задача явно сформулирована и решена в трудах Евдокса Книдского (сформулировал метод исчерпывания, позднее развитый в XVI веке в метод неделимых), Евклида и Архимеда. Древнегреческих математиков интересовали задачи отыскания площади круга, поверхности сферы, сегмента параболы, а также объёма шара, цилиндра, пирамиды, конуса, тетраэдра и ряда других геометрических фигур.

Под проведением квадратуры понималось построение с помощью циркуля и линейки квадрата, равновеликого заданной фигуре (то есть имеющего такую же площадь) или прямое вычисление соответствующей площади. Вероятно связи геометрии и анализа, если и обнаруживались, то интуитивно и неявно. Во всяком случае координатный метод и понятия дифференциального исчисления точно не были известны, хотя и почти что точно были так или иначе интуитивно восприняты и неявно затронуты.

Что касается второго типа задач. Интегралы часто описываются как <i>площадь под кривой</i>. Это описание сбивает с толку. Точно также, как если сказать, что умножение это нахождение площади прямоугольника. Именно понимание сущности умножения применительно к различного рода частным случаям позволяет понять аналитико-алгебраическую суть интегрирования.

Понимание и использование простейших случаев умножения, к примеру, умножения натуральных чисел, было известно с древнейших времён.

Однако, за всеми частными случаями умножения находится определённая общность. Вот как можно описать умножение чисел из различных числовых множеств:

  • В случае с натуральными числами. К примеру, умножим число 3 на число 4, то есть 3 4. Умножение это повторяющееся сложение, то есть произведение чисел получим сложив число три четыре раза или наоборот сложив число четыре три раза [3].

  • В случае с вещественными числами.

    • Возьмём одно рациональное число дробь, а другое целое. К примеру, умножим 3,5 на 2, то есть 3,5 2. Умножение это повторяющееся сложение, произведение получим сложив число три целых и пять десятых два раза. Также, получить произведение можно путём сложения произведений вначале целой части числа 3,5 то есть 3 на 2, а затем дробной то есть 0,5 на 2. Для целой части сложим число три два раза, а для дробной части возьмём единицу разделим на десять, затем возьмём пять частей от деления то есть пять десятых и сложим два раза.

    • Возьмём два рациональных числа две дроби и получим произведение. К примеру, умножим 3,5 на 2,1 то есть 3,5 2,1, произведение получим сложив произведение 3,5 на 2 и 3,5 на 0,1 [4]. Словесно это будет выглядеть следующим образом, для первого произведения сложим число три целых пять десятых два раза, для второго разделим число три целых пять десятых на десять частей и возьмём одну часть то есть одну десятую.

    • В случае с отрицательными числами (-2,3 4,3), умножение сумма произведений и разворот числовой оси или иными словами отражение суммарного значения произведения в данном случае числа 9,89 относительно начала отсчёта, то есть числа ноль, в результате получаем -9,89.

  • В случае с комплексными числами (3 3i), умножение выступает вращением и масштабированием.

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

Когда мы умножаем числа мы повторяем сложение, где в каждом слагаемом знаем какие находятся операнды, а именно повторяющиеся числа.

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

Но изменяющаяся скорость требует совмещения скорости и времени по частям (момент за моментом, секунда за секундой). В каждый момент скорость может быть разной.

Вот как это выглядит в большой перспективе:

  • Обычное умножение (прямоугольник): берем расстояние, на которое мы продвинулись за секунду, предполагая, что эта величина была постоянной во все последующие секунды движения, и масштабируем ее.

  • Интегрирование (по частям): рассматриваем время как ряд мгновений, в каждое из которых скорость разная. Суммируем расстояния, пройденные в каждое из мгновений (секунд, миллисекунд и т.д.).

То есть, интегральную сумму (значение интеграла, определённый интеграл) можно определить, как максимально точную сумму значений искомой переменной величины

Интегральная \ сумма \approx S(x) \approx S_1(\Delta x_1) + S_2(\Delta x_2) + + S_n(\Delta x_n) \quad (ii.1)

при её изменении в промежутке от a до b где a=x_0 а b=x_n .

Точность достигается в пределе, то есть при всё большем уменьшении размера промежутков между значениями x или что тоже самое при всё большом увеличении числа отрезков (числа n обозначающего индекс-номер последнего отрезка)

\lim_{n \rightarrow +\infty} S(x) = S_1(\Delta x_1) + S_2(\Delta x_2) + + S_n(\Delta x_n) \quad (ii.2)

Несомненно греческих и более поздних мыслителей интересовали задачи на отыскание суммарного значения переменных величин. Вероятно, их устраивало простое суммирование значений переменной величины, приближённые вычисления. Если мы возьмём приращение переменной равное единице, то интеграл приближённо будет равен сумме значений функции в рассматриваемом промежутке.

В дальнейшем, начиная с XVI века (работы Галилея, Кеплера, Кавальери и других о методе неделимых) понимание интегрирования постепенно совершенствовалось и развивалось пока не достигло формализации у Бернхарда Римана в середине XIX века и дальнейшего обобщения.

3. Интуитивные способы отыскания значения интеграла

Итак, каким же образом вычислить интегральную сумму ? Можно попробовать несколько способов:

  1. Умножить совокупное приращение переменной на значение функции и получить площадь прямоугольника, который добавит значительный излишек, либо срежет значительную часть в зависимости от того какое значение функции мы выберем. Вручную мы можем подобрать такое значение функции, что при умножении её на приращение переменной мы получим довольно точное значение площади (определённого интеграла в промежутке). Для этого нам потребуется провести линию так, чтобы площадь излишка примерно равнялась срезанной площади. Однако, это не даст нам универсального метода отыскания значения искомой величины.

2. Сложить произведения приращения переменной на значение функции в соответствующих точках, получив тем самым сумму площадей прямоугольников, внешне напоминающих лестницу (ступеньки). В самом простом случае приращение равно единице. На этом методе и основано формальное определение определённого интеграла, данное Б. Риманом. О нём мы поговорим ниже.

3. Воспользоваться иными так называемыми численными способами отыскания значения интегральной суммы (интеграла).

4. Отыскание значения интеграла через отыскание первообразной

Однако, есть более изящный и универсальный способ вычисления интегральной суммы, который был открыт Исааком Ньютоном и Готфридом Лейбницом. Этот способ устанавливает фундаментальную связь дифференцирования (производной) и интегрирования (первообразной).

Чтобы рассмотреть суть открытия необходимо последовательно прийти к ряду идей и рассуждений.

Пусть имеется некоторая функция, от числовой переменной x Обозначим её y = f(x) [5].

Следует отметить несколько обстоятельства относительно рассматриваемой функции:

  • Функция является числовой, то есть область определения и область значений являются числовыми принимают числовые значения (более точно вещественные значения).

  • Функция непрерывна и принимает значения в каждой точке с соответствующим значением переменной (к примеру, в точкеx_1существует значение функции f(x_1) , а в точке x_2 значение f(x_2)

  • Функция может иметь любое выражение. Мы можем иметь набор значений функции в соответствующих точках в виде таблицы (функция задана таблично). Или функция может быть явно задана в виде аналитического выражения (к примеру, в случае с функцией от одной вещественной переменной f(x) = 3x+2 , f(x) = 3x^2 + x + 10и т.д.).

  • Функция может описывать зависимость величины любой природы физической, биологической, экономической и т.д.

Для наглядности изобразим график рассматриваемой функции в виде произвольной кривой.

Пусть мы хотим отыскать всю или часть совокупного значения (аналитико-алгебраический смысл интегрирования) или площадь под кривой (геометрический смысл). Выберем промежуток между двумя точками a и b и продолжим наши рассуждения.

Искомое значение представляет собой функцию и очевидно, что оно будет зависеть от размера промежутка и того значения изначальной функции, которое она принимает в каждой точке этого промежутка. Также, очевидно, что промежуток значений переменной для изначальной функции и функции площади будет одинаковым [6].

Сказанное выше легко показать и увидеть на графике.

Заметим, что значения функции площади не равны значению изначальной функции при том же значении переменной [7]. Значения площади постоянно возрастает слева-направо, то есть при каждом шаге приращения промежутка суммирования (интегрирования).

Пусть теперь исследуемая функция является функцией скорости движения материальной точки (тела) по некоторой траектории. Тогда, очевидно, по определению производной, что скорость в конкретный момент времени это первая производная пути (координаты) по времени

v(t) = S'(t) = \lim_{t \rightarrow 0} \frac{\Delta S}{\Delta t} \quad (iv. 1)

Если скорость это производная пути и мы знаем аналитическое выражение её выражающее, то мы можем найти выражение для самого пути то есть для самой функции. Мы можем это сделать через операцию, обратную нахождению производной то есть через отыскание первообразной. Это справедливо, поскольку производная и соответствующее ей семейство первообразных единственны.

dif \quad S(t) \rightarrow S '(t) = v(t) \quad (iv. 2)int \quad S(t) \leftarrow S '(t) = v(t) \quad (iv. 3)

Данный вывод можно обобщить на все интегрируемые функции.

int \quad F(t) \leftarrow S '(t) = v(t) \quad (iv. 4)

Далее, легко понять из простых арифметических и геометрических соображений, что значение интегральной суммы (площади) будет равно разности значений полученной функции (первообразной), взятых в соответствующих точках [8].

То есть, если требуется найти интегральную сумму в промежутке от a до b , где первое и второе некоторые произвольные значения переменной, то необходимо вычислить разность

\ Интегральная \ сумма = F(b) F(a) \quad (iv. 5)

Указанная сумма и есть определённый интеграл, который записывается, как

\int_{a}^{b} f(x) dx \quad (iv. 6)

[1]. Медведев Ф.А. Развитие понятия интеграла. М.: Наука, 1974. С. 4

[2]. Имеется ввиду сумма значений переменной, которая является элементом интегрирования, интегрируемой величиной.

[3]. Не имеет значения каким образом будем вычислять произведение, так как от перестановки множителей произведение не меняется, то есть данная операция обладает свойством коммутативности.

[4]. 3,5 2 + 3,5 0,2 = 3,5 (2 + 0,1) = 3,5 2,1

[5]. Вместоfможет быть любое обозначение, к примеру, z(x), function(x), Delta(x) это не имеет значения. Букваfвсего лишь обозначает имя для функции, а скобки отделяют имя от сущностей обычно числовых переменных над которыми совершаются те или иные операции, дающие в результате значение функции.

[6]. Переменная-аргумент x одна и таже, то есть иными словами значения переменной-аргумента в точках x_1 , x_2 , , x_n для A(x) и f(x) одно и тоже. Далее, мы покажем, что f(x) производная A(x) , то есть можно записать A(x) = f'(x) или F'(x) = f(x) .

[7]. То есть F(x_1) \neq F'(x_1) . К примеру, пусть функция задана выражением F'(x) = 2x + 3 . Тогда, при x_2 = 2 ,  F'(x_2) = 9 , а значение F(x_2)=18 . ЕслиF'(x) = 0x+3. Тогда, при x_2 = 2 , F'(x_2)=3 , а значение F(x_2) = 6 .

[8]. Пусть имеется точка, число 7 и 10, чтобы найти величину промежутка между этими значениями надо найти разность то есть 10 7 = 3.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru