Алгоритмы. Интерполяционный полином Лагранжа.

Поделиться
HTML-код
  • Опубликовано: 8 янв 2025

Комментарии • 44

  • @ryzh6544
    @ryzh6544 Год назад +4

    Отлично преподнесли теорию, показали как реализовать на практике. Идеальная лекция. Спасибо!

  • @AlisaLisa-sx2te
    @AlisaLisa-sx2te 10 месяцев назад

    Посмотрел с удовольствием. Благодарю!

  • @Посестрамстопы
    @Посестрамстопы 2 года назад

    Спасибо Вам огромное за Ваши видео! Это просто кладязь полезной и актуальной информации! :)

  • @jonnash1683
    @jonnash1683 Год назад +2

    Я в восторге! Спасибо огромную вам за работу!

  • @rimas9266
    @rimas9266 Год назад +1

    Спасибо огромное, очень хорошо всё объяснили

  • @nna_kolhan
    @nna_kolhan 11 месяцев назад

    i != j Напевне ще й тому що у знаменику дроба базового поліному буде нуль. А на нуль ділити не можна)). Дякую за гарну лекцію і гарний контент. Цікаво було б також почути про фільтрацію даних у вашому виконанні.(середньоарифмитичний фільтр, ковзний фільтр, медіаний фільтр, фільтр Калмана, фільтр Віннера та інші)

  • @user-o0h
    @user-o0h Год назад

    здравствуйте, не подскажите на 13:18 на 21 строчке что это за конструкция basic_polynomials[i](x), каким образом тут вычисляется значение икса

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  Год назад +1

      basic_polynomials[i] - это список функций которые представляют собой полиномы. basic_polynomials[i](x) - это означает что мы извлекаем из этого списка функцию (полином) и подставляем ей в качестве параметра значение x. x - мы не вычисляем, это входящий параметр

    • @user-o0h
      @user-o0h Год назад

      @@oleksandrtsymbaliuk На 21 строке создается список basic_polynomials, который заполняется с помощью функции create_basic_polynomial - это понятно. Дальше тоже понятно, что мы извлекаем из списка basic_polynomials функцию-полином и подставляем ей в качестве параметра x, но синтаксис подстановки непонятен. Неясно, как работает конструкция basic_polynomials[i](x). Вероятно, не понимаю базовых вещей, может это как-то называется и об этом можно почитать?

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  Год назад +1

      Ну смотрите это список функций (в Python функции это тоже объекты). Когда мы обращаемся в i - му элементу списка, мы обращаемся к функции которая там стоит, и к ней мы применяем оператор вызова функции (круглые скобки). Если действительно интересует литература, так это классическая книга Лутца.

    • @user-o0h
      @user-o0h Год назад

      @@oleksandrtsymbaliukспасибо, попробую разобраться

  • @Dreig
    @Dreig 2 года назад

    Шикарно объяснено, спасибо большое

  • @vukavuka7519
    @vukavuka7519 3 года назад +2

    Дай Бог вам здоровья!
    А в первом предложении на первой слайде разве не опечатка?
    Задачи интерполяции предполагают задание функции, проходящей через точки данных *.
    Ведь так?

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  3 года назад

      Добрый день. Спасибо за пожелание. А по поводу вопроса - так узлы интерполяции и точки данных это же одно и тоже (если рассматривать обе координаты). Хотя да, наверное стоило это указать.

    • @vukavuka7519
      @vukavuka7519 3 года назад

      @@oleksandrtsymbaliuk Спасибо, уяснил. Просто изначально такое определение в Вики увидел:
      Интерполяцией называют такую разновидность аппроксимации, при которой кривая построенной функции проходит точно через имеющиеся точки данных.
      Из-за этого немного смутился и не подумал)))

  • @МаксимФунк-п1ъ
    @МаксимФунк-п1ъ 7 месяцев назад

    Добрый день! Не могли бы, пожалуйста, подсказать, как интегрировать в коде на Python порядок полинома? Спасибо!

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  7 месяцев назад

      Добрый день. А что вы имеете в виду под интегрированием порядка полинома? Степень полинома определяется количеством рассматриваемых точек. Если нужно управлять степенью полинома, то просто рассматривайте не все точки, а только нужное количество.

  • @МихаилГатилов
    @МихаилГатилов 2 года назад +2

    Подскажите пожалуйста, что я делаю не так у меня есть условие x=[-1,0,1,2], y=[4,2,0,1] - построить полином Лагранжа, найти значение в точке x=1.5 Когда я подставляю массивы x и y в ваш код на python, то он мне выдает другие совершенно значения Y....

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  2 года назад

      А что значит другие значения Y ? Т.е. с каким y вы сравниваете?

    • @МихаилГатилов
      @МихаилГатилов 2 года назад

      С значениями, которые по условию.. Т. Е. когда я запускаю код с своими массивами 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
      @oleksandrtsymbaliuk  2 года назад

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

    • @МихаилГатилов
      @МихаилГатилов 2 года назад

      @@oleksandrtsymbaliuk подскажите пожалуйста, можно как-то с Вами связяться, в каком-то мессенджере или соц.сети, чтобы можно было показать код? Очень нужно разобраться в этом моменте. Я frontend разработчик, работаю с картами и мне для моей задачи важно сделать зависимость именно с помощью интерполяции. Был бы очень благодарен, если бы Вы нашли немного времени - помочь...

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  2 года назад

      Так у меня в профиле почта указанна на нее и пишите.

  • @curiematsiev3708
    @curiematsiev3708 Год назад

    Добрый день, а что это за язык программирования?

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  Год назад

      Реализация этого алгоритма показана на трех языках программирования - Java, Python, Fortran

  • @alexbear9778
    @alexbear9778 2 года назад +1

    підкажіть який метод найкраще підходить для інтерполяції дробних чисел ?

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  2 года назад

      Так любой метод интерполяции прекрасно работает как с целыми так с вещественными числами. Целые числа в примере использовались только для простоты.

    • @alexbear9778
      @alexbear9778 2 года назад

      @@oleksandrtsymbaliuk тобто метод лагранжа працює так само надійно і з дробними числами ? Бо десь чув що він тільки для цілих

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  2 года назад

      Безусловно он работает с вещественными числами. С точки зрения алгоритма между ними вообще нет никакой разницы.

  • @saidjonasrorov1721
    @saidjonasrorov1721 2 года назад

    Годный контент

  • @serorus
    @serorus Месяц назад

    опечатка на 5.33 сек, l3(x) -> (x-3) / (5-3)

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  Месяц назад

      А можете более точно указать где опечатка? А то на 5.33 вроде все норм

    • @serorus
      @serorus Месяц назад

      @@oleksandrtsymbaliuk Пересчитайте l3(x), там в числителе должно быть (x-0)(x-2)(x-3)

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  Месяц назад

      @@serorus А точно опечатка в промежуточном результате. В конечном результате ее нет. Спасибо.

  • @jerardfox3036
    @jerardfox3036 Год назад

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

    • @jerardfox3036
      @jerardfox3036 Год назад

      да и выводит она теже значения. что и вводятся. я один это заметил из 12тыс просмотревших?

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  Год назад +2

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

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  Год назад +1

      @@jerardfox3036 Ну так это же ИНТЕРПОЛЯЦИОННЫЙ полином взятый в узлах интерполяции, какие же он тогда должен точки то выводить? Если бы он возвращал другие значения в узлах интерполяции, то он не был бы интерполяционным полиномом :)

    • @jerardfox3036
      @jerardfox3036 Год назад

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

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  Год назад +2

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