4.1 Интерполяция кубическими сплайнами

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

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

  • @ul_gru
    @ul_gru Год назад +32

    как же вы шикарно объясняете. надо продвинуть это видео в топы🌸

  • @lubitel3495
    @lubitel3495 24 дня назад

    я вас люблю вы лучший!

  • @user-nw2eb6lx1k
    @user-nw2eb6lx1k Год назад +13

    Спасибо большое за понятное и доступное объяснение!

  • @user-bx9bc8hw2c
    @user-bx9bc8hw2c 6 месяцев назад +2

    Дякую, дуже добре пояснюєте.

  • @daniilpatrushev202
    @daniilpatrushev202 8 месяцев назад +3

    От динозавриков ИжГТУ передаю привет. Очень приятно видеть свой вуз в данном месте)

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

    Спасибо за Ваш труд!

  • @wiseplat
    @wiseplat 4 месяца назад +1

    Отличное видео! Спасибо!

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

    Спасибо большое за видео. Учусь за границей и вы мне помог с понятием => Spline Interpolation . В этом видео всё чётко объяснено. Лайк и + подписка

  • @sasory-san
    @sasory-san Год назад +2

    Спасибо! Очень понятно объяснили. В книге по ВМ было все коротко и скупо про преобразование формул. Вы очень помогли 🤗

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

      Благодарю за хороший отзыв о моей работе!

  • @tepatepskei7910
    @tepatepskei7910 2 года назад +5

    Очень доступно.

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

    спасибо! очень наглядно!

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

    мегахарош

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

    Очень круто, поймёт даже школьник. А как быть если сплайн меняет направление, т.е. если установить точку 4 в (3,4)? я пытаюсь прочесть dxf и понять что же там за форма, и думаю что такие ситуации меня ждут сплошь и рядом.

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

      Если я вас правильно понял, то вы говорите о параметрических сплайнах, где Х и Y зависят от третьего параметра t. В этом случае сплайн может иметь петли, как угодно проходить на плоскости.

  • @user-xl8cc1sl6i
    @user-xl8cc1sl6i Месяц назад

    Добрый день!
    Огромное спасибо за видео, действительно все понятно разъяснено.
    Подскажите пожалуйста, а как изменить методику сплайнирования, если мне нужно получить не проходящий через все точки кривой сплайн, а сглаживающий эту кривую сплайн?

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

      Здравствуйте. Спасибо! Как вариант, отметить на кривой точки и через них построить сплайны. Чем больше точек, тем точнее интерполяция

  • @user-fd4yn2uw2k
    @user-fd4yn2uw2k Год назад +3

    выручил перед зачетом, хоть где-то нашел понятные итоговые системы

  • @drealxd
    @drealxd 9 месяцев назад +1

    Спасибо, всё очень понятно!
    Вопрос - а как проявляет себя этот способ при большом объеме данных? Когда у нас сотня, или тысяча исходных точек

    • @learningmeansdoing
      @learningmeansdoing  9 месяцев назад +1

      Спасибо за отзыв! С добавлением одной новой точки появляется один новый сплайн, то есть 4 новых параметра. СЛАУ будет иметь 4*(n-1) уравнений, где n-это число точек, то есть О(n) уравнений. Сложность по памяти составит в худшем случае О(n^2), так как нужно хранить матрицу коэффициентов СЛАУ. Если СЛАУ решать например, методом Гаусса, то вычислительная сложность составит O(n^3). Получается, по памяти O(n^2), по вычислениям O(n^3). Так будет этот метод реагировать на учеличение количества точек. Надеюсь, не слишком сложно объяснил.

    • @user-pe2ky5el2i
      @user-pe2ky5el2i 5 месяцев назад

      @@learningmeansdoing "увеличение"

    • @user-pe2ky5el2i
      @user-pe2ky5el2i 5 месяцев назад

      @@learningmeansdoing Нажмите на три точки справа от комментария и исправьте.

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

    Спасибо. А как промежуточные игреки считаются? По синусу? Я нуб

    • @learningmeansdoing
      @learningmeansdoing  Год назад +3

      Промежуточные точки считаются по формулам кубических сплайнов. Эти формулы показаны в начале видео и для них определяются коэффициенты a,b,c,d.

  • @Anthology_VHS
    @Anthology_VHS 8 месяцев назад +1

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

    • @learningmeansdoing
      @learningmeansdoing  8 месяцев назад

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

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

    Могут ли в обратной матрице получится нулевые значения?

    • @learningmeansdoing
      @learningmeansdoing  Месяц назад +1

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

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

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

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

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

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

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

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

      Бикубическую интерполяцию не очень хорошо знаю, но кажется это не тоже самое, что сплайн-интерполяция. Там вроде бы берутся для заданной точки 4 ближайших соседа по одной оси и 4 соседа по другой оси. Итого задействуется 16 точек для определения яркости данного пикселя. Сначала интерполируется вдоль одной оси по методу Ньютона, затем по другой оси тем же методом. У меня есть видео про билинейную интерполяцию. Там проще конечно, но этот принцип расширяется на биквадратичную и бикубическую интерполяцию.

    • @Ihor_Semenenko
      @Ihor_Semenenko 7 месяцев назад +1

      ЕЕ и применяют, только для случай пространственной задачи - бикубическая интерполяция. Тут выбор спопоба зависит от типа изображения - насколько оно "гладкое" и однородное + завист от выбора цветовой модели. Если вас плавнуе градиенты, то можно споконо применять, если же есть рекие границы - возможны артефакты (на 17:30 на графике на интервале (4;5) видно что сплайн становится ниже заданной точки, что в случае изображение при наличии кострастных границ може тпривести к искажению цветопередачи ипоявлению артефактов - в виде ареолов).
      Под конкретное изображение стоит оычно свой метод нужно подбирать - если вас интеересует качество.

  • @user-rr7yi3ru2p
    @user-rr7yi3ru2p 2 месяца назад

    Добрый день! У меня есть растущая функция выглядит как ступенька, т.е. немного порастёт, потом горизонтальная и опять рост и т.д., чем такую функцию лучше аппроксимировать? и Как более точно рассчитывать смену направления у такой функции?

    • @learningmeansdoing
      @learningmeansdoing  2 месяца назад +1

      Здравствуйте. Может как вариант использовать кусочно-линейную функцию. Она вроде подходит под то, что вы описали.

    • @user-rr7yi3ru2p
      @user-rr7yi3ru2p 2 месяца назад

      @@learningmeansdoing Спасибо, а как определять разворот такой функции?

    • @learningmeansdoing
      @learningmeansdoing  2 месяца назад

      @@user-rr7yi3ru2p Я бы сравнил значения Y в трех соседних точках и по их изменению сделал вывод, что кривая переламывается. Я надеюсь, я правильно понял ваш вопрос.

    • @user-rr7yi3ru2p
      @user-rr7yi3ru2p 2 месяца назад

      @@learningmeansdoing А Вы где-нибудь встречали полный сборник функций в Excel: линейные, ступенчатые, экспоненциальные, регрессии и ещё бог знает какие? Чтобы выглядело как Add on

    • @user-rr7yi3ru2p
      @user-rr7yi3ru2p 2 месяца назад

      @@learningmeansdoing А ничего страшного не будет, если кусочно-линейную функцию просто заменить на линейную, не сильные погрешности будут при аппроксимации?

  • @og6739
    @og6739 2 месяца назад

    спасибо ! а если прогонкой сделать?

    • @learningmeansdoing
      @learningmeansdoing  2 месяца назад +1

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

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

    Можно ссылку на данный exel файл

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

    в матрице коэффициентов СЛАУ перепутанные 5 и 6 строчки

    • @learningmeansdoing
      @learningmeansdoing  2 года назад +7

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

    • @getawayunclejohn7107
      @getawayunclejohn7107 10 месяцев назад

      💀💀

  • @axborottexnologiyalarikafe5421
    @axborottexnologiyalarikafe5421 4 месяца назад

    Спасибо за ролик! Можете отправить мне excel файл

  • @sersalikov
    @sersalikov 5 месяцев назад

    Скажите, а как решить задачу построения сплайна, если последовательность точек, через которые мы хотим провести интерполяционную линию, содержит такие пары близлежащих точек, у которых координата x равна? Ведь соединить две точки, имеющие одинаковую x-координату, отрезком кубической кривой невозможно

    • @learningmeansdoing
      @learningmeansdoing  5 месяцев назад

      В этом случае я бы ввел параметрическую зависимость x(t), y(t), где t например номер точки или номер момента времени, если это задача о траектории движения точки

    • @sersalikov
      @sersalikov 5 месяцев назад

      @@learningmeansdoing Я уже думал об этом. Сделать два сплайна отдельно для оси x и оси y. Но тогда нам понадобится вводить переменную t, соответствующую длине кривой. Но как мне эту t узнать и определить? И, кроме того, точки могут быть расположены не с равными интервалами вдоль t.

    • @learningmeansdoing
      @learningmeansdoing  5 месяцев назад

      По сути если переменная t не известна, то любой наш выбор будет взят с потолка, это верно. Но с другой стороны сами сплайны допускают свободу выбора. И выбор значений t можно рассматривать как ещё один параметр. В самом простом случае t=1,2,3... Скорее всего есть лучшие варианты, просто я с такими задачами не сталкивался особо.

    • @sersalikov
      @sersalikov 5 месяцев назад

      @@learningmeansdoing Если я правильно понял, то построение кубического сплайна на плоскости x,y для замкнутого контура невозможно. Применяя технику, описанную вами в этом видео, мы не сможем решить систему уравнений. Однако если мы набросаем точек на плоскость в одном из многочисленных CAD-редакторов, программа без труда нарисует произвольную замкнутую кривую по этим точкам, даже если это будет спираль или самопересекающаяся линия.
      Как же эту задачу решают эти программы?

    • @learningmeansdoing
      @learningmeansdoing  5 месяцев назад

      Хороший вопрос. На данный момент не могу на него ответить. Очевидно одно - эта задача решена. Надо как-нибудь будет разобраться с этим вопросом.

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

    Кайф вообще. Только ничего не понятно.

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

      1. Радостно. 2. Грустно.
      Может расскажете, что именно осталось непонятным?

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

      @@learningmeansdoing Здравствуйте! У меня есть набор точек x и y. Нарисую график с этими значениями. Получается неявная функция. Мне надо найти точки, которые dy/dх = 0.
      А решить СЛАУ не так легко, так как значения х и у не целые.

  • @user-nu2fn3ld6o
    @user-nu2fn3ld6o 5 месяцев назад

    Все это, конечно, хорошо, но если график состоит не из четырех точек, а из пары тысяч? Будем решать систему из 6 тысяч уравнений? Короче нужно было бы еще объяснить общий случай, когда точек не 4, а N

    • @learningmeansdoing
      @learningmeansdoing  5 месяцев назад

      По возможности рассмотрю такой вариант. Спасибо за подсказку!

  • @Anthology_VHS
    @Anthology_VHS 8 месяцев назад

    ОШИБКУ выдает в формуле (время: 10:10).
    Формула: b0+2c0(2-1)+3d0(2-1)^2-b1=0
    Согласно значениям, которые находятся в дальнейшем, данная формула не равна нулю (0).
    Выдает результат: -3,053113318Е-16 = 0

    • @learningmeansdoing
      @learningmeansdoing  8 месяцев назад +1

      Вот это число, что вы написали, это -3 умножить на 10 в степени -16. То есть очень маленькое число, почти равное нулю. Появляются такие числа из-за того, что программа считает не с абсолютной точностью.

    • @Anthology_VHS
      @Anthology_VHS 8 месяцев назад

      @@learningmeansdoing существует команда для сплайн в экселе последней версии? Как эта команда может из себя выглядеть?

    • @learningmeansdoing
      @learningmeansdoing  8 месяцев назад

      Не слышал про такую команду, не могу сказать.

    • @user-dx1jo5ed7g
      @user-dx1jo5ed7g 8 месяцев назад

      @@learningmeansdoing А если мне потребуется построить через большее кол-во точек сплайн, насколько изменяться уравнения? Или только появятся новые переменные, скажем b4, d5 и т.д.?

    • @learningmeansdoing
      @learningmeansdoing  8 месяцев назад

      Когда добавляется ещё одна точка, то добавляется ещё один сплайн со своими коэффициентами a,b,c,d.

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

    Аргх, какая еще палка! Стержень!
    Дананую линию можно полочить руками: нужно взять тонкую и гибкую (желательно стльную) линейку и на бумаге руками изогнуть ее так, чтоб она прошла через все нужнгые точки, потом аккурантно провести вдель нее линию. Такая линейка называется архитектурным сплайном, и их скорее всего уже не изготавливают, за ненадобностью.
    А сами сплайны в курсе сопромата ка раз и испрользуются, при расчете деформаций стержня (!) при изгибе - метод начальных параметров. Очень интересна его форма и реализация, она немного отличается, от классического сплайна.

  • @x_sraytracings_x
    @x_sraytracings_x 2 месяца назад

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

    • @learningmeansdoing
      @learningmeansdoing  2 месяца назад

      Может что-то конкретное осталось неясным? По уравнениям? По условиям?

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

    чувак слабо курит тему. это всё мусор

  • @kolas2482
    @kolas2482 5 месяцев назад

    когда вы задаёте два дополнительных уравнения, там разве не s3" Должно быть?

    • @learningmeansdoing
      @learningmeansdoing  5 месяцев назад

      Сплайны обозначаются S0, S1, S2. Индекс соответствует номеру начальной точки сплайна. Поэтому в крайней правой точке S2"=0.

  • @sikvllz8928
    @sikvllz8928 5 месяцев назад

    Можно ссылку на данный exel файл