i != j Напевне ще й тому що у знаменику дроба базового поліному буде нуль. А на нуль ділити не можна)). Дякую за гарну лекцію і гарний контент. Цікаво було б також почути про фільтрацію даних у вашому виконанні.(середньоарифмитичний фільтр, ковзний фільтр, медіаний фільтр, фільтр Калмана, фільтр Віннера та інші)
basic_polynomials[i] - это список функций которые представляют собой полиномы. basic_polynomials[i](x) - это означает что мы извлекаем из этого списка функцию (полином) и подставляем ей в качестве параметра значение x. x - мы не вычисляем, это входящий параметр
@@oleksandrtsymbaliuk На 21 строке создается список basic_polynomials, который заполняется с помощью функции create_basic_polynomial - это понятно. Дальше тоже понятно, что мы извлекаем из списка basic_polynomials функцию-полином и подставляем ей в качестве параметра x, но синтаксис подстановки непонятен. Неясно, как работает конструкция basic_polynomials[i](x). Вероятно, не понимаю базовых вещей, может это как-то называется и об этом можно почитать?
Ну смотрите это список функций (в Python функции это тоже объекты). Когда мы обращаемся в i - му элементу списка, мы обращаемся к функции которая там стоит, и к ней мы применяем оператор вызова функции (круглые скобки). Если действительно интересует литература, так это классическая книга Лутца.
Дай Бог вам здоровья! А в первом предложении на первой слайде разве не опечатка? Задачи интерполяции предполагают задание функции, проходящей через точки данных *. Ведь так?
Добрый день. Спасибо за пожелание. А по поводу вопроса - так узлы интерполяции и точки данных это же одно и тоже (если рассматривать обе координаты). Хотя да, наверное стоило это указать.
@@oleksandrtsymbaliuk Спасибо, уяснил. Просто изначально такое определение в Вики увидел: Интерполяцией называют такую разновидность аппроксимации, при которой кривая построенной функции проходит точно через имеющиеся точки данных. Из-за этого немного смутился и не подумал)))
Добрый день. А что вы имеете в виду под интегрированием порядка полинома? Степень полинома определяется количеством рассматриваемых точек. Если нужно управлять степенью полинома, то просто рассматривайте не все точки, а только нужное количество.
Подскажите пожалуйста, что я делаю не так у меня есть условие x=[-1,0,1,2], y=[4,2,0,1] - построить полином Лагранжа, найти значение в точке x=1.5 Когда я подставляю массивы x и y в ваш код на python, то он мне выдает другие совершенно значения Y....
С значениями, которые по условию.. Т. Е. когда я запускаю код с своими массивами x и y, в консоли я получаю, что значениям x в узлах не соответствуют значения y. Условно, я в консоли со своими значениями вижу следующее: x: -1 y: 4 x: 0 y: 12 x: 1 y: 7 x: 2 y : 10 А должен, судя по вашему примеру и коду: x: -1 y: 4 x: 1 y: 2 x: 2 y: 0 x: 1 y : 1 *(если решить в ручную в тетрадке, найти коэффициенты, то все работает) p.s. очень ресурсоемко и долго))) хотелось бы все-таки программно
Я только что перепроверил и подставил ваши данные и все работает как нужно. Так, что для того что бы понять почему вы получаете неверный результат мне нужно посмотреть на ваш код.
@@oleksandrtsymbaliuk подскажите пожалуйста, можно как-то с Вами связяться, в каком-то мессенджере или соц.сети, чтобы можно было показать код? Очень нужно разобраться в этом моменте. Я frontend разработчик, работаю с картами и мне для моей задачи важно сделать зависимость именно с помощью интерполяции. Был бы очень благодарен, если бы Вы нашли немного времени - помочь...
зачем это вообще нужно? какой смысл считать эти значения li если для построения полинома, проходящего через заданные точки нужно расчитать значения коэффициентов. ваша программа просто что то считает, понятно, что если раскрыть скобки мы и сможем получить коэффициенты, но какой смысл в вашей программе, если она этого не делает? почему никто не поднимает эту тему?
Я даже затрудняюсь ответить на этот комментарий. Моя программа возвращает полином с помощью которого вы можете узнать значение интерполирующей функции в любой точке рассматриваемого диапазона, зачем вам коэффициенты если уже есть готовая для любых вычислений функция?
@@jerardfox3036 Ну так это же ИНТЕРПОЛЯЦИОННЫЙ полином взятый в узлах интерполяции, какие же он тогда должен точки то выводить? Если бы он возвращал другие значения в узлах интерполяции, то он не был бы интерполяционным полиномом :)
я расчитывал, что эта программа выдаст коэффициенты полинома лагранжа, а получаю лишь значения в нужной точке. это конечно может пригодиться для приближенного графического отображения, но не дает никакой информации о самом полиноме @@oleksandrtsymbaliuk
Так эта же тема посвящена именно полиному Лагранжа (т.е. как именно предложил вычислять этот полином сам Лагранж), зайдите на любой ресурс (например на Википедию) и посмотрите в каком там все виде описано. В моей программе есть функции которые вам возвращают значения базисных полиномов (например на Python это create_basic_polynomial ). Какие же коэффициенты для этого полинома еще нужны?
Отлично преподнесли теорию, показали как реализовать на практике. Идеальная лекция. Спасибо!
Посмотрел с удовольствием. Благодарю!
Спасибо Вам огромное за Ваши видео! Это просто кладязь полезной и актуальной информации! :)
Я в восторге! Спасибо огромную вам за работу!
Спасибо огромное, очень хорошо всё объяснили
i != j Напевне ще й тому що у знаменику дроба базового поліному буде нуль. А на нуль ділити не можна)). Дякую за гарну лекцію і гарний контент. Цікаво було б також почути про фільтрацію даних у вашому виконанні.(середньоарифмитичний фільтр, ковзний фільтр, медіаний фільтр, фільтр Калмана, фільтр Віннера та інші)
здравствуйте, не подскажите на 13:18 на 21 строчке что это за конструкция basic_polynomials[i](x), каким образом тут вычисляется значение икса
basic_polynomials[i] - это список функций которые представляют собой полиномы. basic_polynomials[i](x) - это означает что мы извлекаем из этого списка функцию (полином) и подставляем ей в качестве параметра значение x. x - мы не вычисляем, это входящий параметр
@@oleksandrtsymbaliuk На 21 строке создается список basic_polynomials, который заполняется с помощью функции create_basic_polynomial - это понятно. Дальше тоже понятно, что мы извлекаем из списка basic_polynomials функцию-полином и подставляем ей в качестве параметра x, но синтаксис подстановки непонятен. Неясно, как работает конструкция basic_polynomials[i](x). Вероятно, не понимаю базовых вещей, может это как-то называется и об этом можно почитать?
Ну смотрите это список функций (в Python функции это тоже объекты). Когда мы обращаемся в i - му элементу списка, мы обращаемся к функции которая там стоит, и к ней мы применяем оператор вызова функции (круглые скобки). Если действительно интересует литература, так это классическая книга Лутца.
@@oleksandrtsymbaliukспасибо, попробую разобраться
Шикарно объяснено, спасибо большое
Дай Бог вам здоровья!
А в первом предложении на первой слайде разве не опечатка?
Задачи интерполяции предполагают задание функции, проходящей через точки данных *.
Ведь так?
Добрый день. Спасибо за пожелание. А по поводу вопроса - так узлы интерполяции и точки данных это же одно и тоже (если рассматривать обе координаты). Хотя да, наверное стоило это указать.
@@oleksandrtsymbaliuk Спасибо, уяснил. Просто изначально такое определение в Вики увидел:
Интерполяцией называют такую разновидность аппроксимации, при которой кривая построенной функции проходит точно через имеющиеся точки данных.
Из-за этого немного смутился и не подумал)))
Добрый день! Не могли бы, пожалуйста, подсказать, как интегрировать в коде на Python порядок полинома? Спасибо!
Добрый день. А что вы имеете в виду под интегрированием порядка полинома? Степень полинома определяется количеством рассматриваемых точек. Если нужно управлять степенью полинома, то просто рассматривайте не все точки, а только нужное количество.
Подскажите пожалуйста, что я делаю не так у меня есть условие x=[-1,0,1,2], y=[4,2,0,1] - построить полином Лагранжа, найти значение в точке x=1.5 Когда я подставляю массивы x и y в ваш код на python, то он мне выдает другие совершенно значения Y....
А что значит другие значения Y ? Т.е. с каким y вы сравниваете?
С значениями, которые по условию.. Т. Е. когда я запускаю код с своими массивами x и y, в консоли я получаю, что значениям x в узлах не соответствуют значения y.
Условно, я в консоли со своими значениями вижу следующее:
x: -1 y: 4
x: 0 y: 12
x: 1 y: 7
x: 2 y : 10
А должен, судя по вашему примеру и коду:
x: -1 y: 4
x: 1 y: 2
x: 2 y: 0
x: 1 y : 1
*(если решить в ручную в тетрадке, найти коэффициенты, то все работает) p.s. очень ресурсоемко и долго))) хотелось бы все-таки программно
Я только что перепроверил и подставил ваши данные и все работает как нужно. Так, что для того что бы понять почему вы получаете неверный результат мне нужно посмотреть на ваш код.
@@oleksandrtsymbaliuk подскажите пожалуйста, можно как-то с Вами связяться, в каком-то мессенджере или соц.сети, чтобы можно было показать код? Очень нужно разобраться в этом моменте. Я frontend разработчик, работаю с картами и мне для моей задачи важно сделать зависимость именно с помощью интерполяции. Был бы очень благодарен, если бы Вы нашли немного времени - помочь...
Так у меня в профиле почта указанна на нее и пишите.
Добрый день, а что это за язык программирования?
Реализация этого алгоритма показана на трех языках программирования - Java, Python, Fortran
підкажіть який метод найкраще підходить для інтерполяції дробних чисел ?
Так любой метод интерполяции прекрасно работает как с целыми так с вещественными числами. Целые числа в примере использовались только для простоты.
@@oleksandrtsymbaliuk тобто метод лагранжа працює так само надійно і з дробними числами ? Бо десь чув що він тільки для цілих
Безусловно он работает с вещественными числами. С точки зрения алгоритма между ними вообще нет никакой разницы.
Годный контент
опечатка на 5.33 сек, l3(x) -> (x-3) / (5-3)
А можете более точно указать где опечатка? А то на 5.33 вроде все норм
@@oleksandrtsymbaliuk Пересчитайте l3(x), там в числителе должно быть (x-0)(x-2)(x-3)
@@serorus А точно опечатка в промежуточном результате. В конечном результате ее нет. Спасибо.
зачем это вообще нужно? какой смысл считать эти значения li если для построения полинома, проходящего через заданные точки нужно расчитать значения коэффициентов. ваша программа просто что то считает, понятно, что если раскрыть скобки мы и сможем получить коэффициенты, но какой смысл в вашей программе, если она этого не делает? почему никто не поднимает эту тему?
да и выводит она теже значения. что и вводятся. я один это заметил из 12тыс просмотревших?
Я даже затрудняюсь ответить на этот комментарий. Моя программа возвращает полином с помощью которого вы можете узнать значение интерполирующей функции в любой точке рассматриваемого диапазона, зачем вам коэффициенты если уже есть готовая для любых вычислений функция?
@@jerardfox3036 Ну так это же ИНТЕРПОЛЯЦИОННЫЙ полином взятый в узлах интерполяции, какие же он тогда должен точки то выводить? Если бы он возвращал другие значения в узлах интерполяции, то он не был бы интерполяционным полиномом :)
я расчитывал, что эта программа выдаст коэффициенты полинома лагранжа, а получаю лишь значения в нужной точке. это конечно может пригодиться для приближенного графического отображения, но не дает никакой информации о самом полиноме
@@oleksandrtsymbaliuk
Так эта же тема посвящена именно полиному Лагранжа (т.е. как именно предложил вычислять этот полином сам Лагранж), зайдите на любой ресурс (например на Википедию) и посмотрите в каком там все виде описано. В моей программе есть функции которые вам возвращают значения базисных полиномов (например на Python это create_basic_polynomial ). Какие же коэффициенты для этого полинома еще нужны?