Практика языка C (МФТИ, 2023-2024). Семинар 8.2. Решение уравнений и вычисление функций.

Поділитися
Вставка
  • Опубліковано 22 тра 2024
  • Практические занятия по языку C на первом курсе МФТИ. Кафедра информатики.
    Вторая часть восьмого семинара посвящена решению уравнений. Мы начнём с того, что рассмотрим разнообразные сложности и ловушки плавающих чисел. Далее мы займёмся нахождением корней уравнений: сначала рассмотрим методы в которых надо сохранять брекетинг корня, потом уйдём от них в неизвестность. Ну и в конце нас ждёт применение метода Ньютона для вычисления функций, разгадка магического инверсного корня, правила работы с комплексными числами и немного красоты в виде всяких фракталов.
    Семинарист: Константин Владимиров.
    Дата: 29 апреля 2024 года.
    Съёмка: Владислав Белов.
    Звук: Юлий Тарасов.
    Предыдущий семинар: • Практика языка C (МФТИ...
    Следующий семинар: • Практика языка C (МФТИ...
    Слайды к занятиям: cs.mipt.ru/wp/?page_id=7775
    Примеры кода: github.com/tilir/c-graduate
    Задачник: olymp1.vdi.mipt.ru/
    Timeline
    00:00 Правила работы c плавающими числами
    10:20 Аккуратнее с ошибками сложения
    16:04 Помните о конечности диапазона
    23:18 Дихотомия
    30:00 Целочисленный квадратный корень
    40:23 Бенчмаркинг целочисленного корня
    45:11 Regula falsi
    49:08 Нарушим брекетинг? И время для задач
    54:50 Метод Ньютона
    01:00:32 Вычисление функций
    01:14:30 Быстрые приближения и магический инверсный корень
    01:20:15 Комплексные числа и фрактал Ньютона
    01:26:20 Голоморфная динамика и множество Жюлиа
    01:31:58 Генератор фракталов и завершение
    Errata
    * Тут пока пусто

КОМЕНТАРІ • 23

  • @user-kk7xt3uo7x
    @user-kk7xt3uo7x 12 днів тому +15

    Преподаватель самый лучший!!! Все его видео пересмотрел (а мне уже почти 40 лет). Видно сразу, что любит свою профессию. Смотреть очень интересно.

  • @fedorbabkin
    @fedorbabkin 12 днів тому +6

    Вспомнился ФОПФовый анекдот. Студент на экзамене по электродинамике все время подглядывает на ладонь руки. Преп ловит его, говорит: показывай шпаргалку. Тот показывает левую ладонь, там буква Л. Преп: зачем тебе это? Студент: правило левой руки помню, а какая из них левая, всё время забываю...

  • @wumi2419
    @wumi2419 12 днів тому +6

    Семинары для себя это да) Сам на 4 курсе в другом ВУЗе, но смотреть интересно и местами есть новая информация.

  • @sibedir
    @sibedir 12 днів тому +1

    Добрый день, добрые люди. Ну что ж, приступим
    🧘‍♂️🙄🤯

  • @alexanderspeshilov839
    @alexanderspeshilov839 8 днів тому

    "Подсмотриваю" ваши семинары (хоть и в 2 раза старше студентов).
    Про бенчмаркинг sqrt. На X64 и мощных ARM понятно что итеративно (даже Ньютоном) вариант dsqrt обогнать если и можно, то не просто. Но вот на каком-нибудь Cortex-
    M0 или RISC-V без нужных расширений dsqrt может оказаться совсем небыстрым. При этом для целых есть хорошее начальное приближение что-нибудь типа x >> ((32 - clz(x)) >> 1), где clz - количество нулей впереди. Впрочем, у m0 clz тоже, если я правильно помню не одной командой считается.

  • @akulijbe
    @akulijbe 11 днів тому

    1:13:10 - видимо запись решила скрыть, что мы увидим в реализации синуса) но я дополню, что почти всегда мы увидим ряды Тейлора (к примеру, как в musl и glibc)
    P.S.: видео как всегда супер! Спасибо)

  • @allallall2321
    @allallall2321 12 днів тому

  • @sibedir
    @sibedir 12 днів тому +1

    34:35 Числа с плавающей точкой на столько отличаются от вещественных чисел, что там даже левое и правое не такие 😂

  • @hohlovin
    @hohlovin 11 днів тому

    Давали бы мне такие знания году так в 95-м...

  • @evseee
    @evseee 12 днів тому

    да, одно дело когда говорят "для икс меньше дельта", а другое когда ты на, ещё зелёном, но уже графическом, мониторе видишь как колбасит ряд маклорена для синуса при удалении от нуля :)

  • @2_x_2_4
    @2_x_2_4 11 днів тому

    ua-cam.com/video/Yp-rN_AZVSI/v-deo.html Эту формулу (1/2(xn+a/xn)) ещё называют фомулой Герона. А т.к. одну формулу Герона студенты знают, то, полагаю, у вас, Константин, интересно получилось бы обыграть такую ситуацию в лекции. :-)

  • @lwind4884
    @lwind4884 10 днів тому

    При проверке на равенство чисел с плавающей точкой рекомендую руководствоваться следующей методикой. Если, например, нужна точность до 5го знака после десятичной точки, берите допуск равный 0,5*0,00001 (т.е. 0,000005). Так Вы нивелируете погрешность математического округления.

    • @user-hh2qp6ez4d
      @user-hh2qp6ez4d 4 дні тому

      Нас на вычислительной математике учили считать на разряд выше требуемой точности.

    • @lwind4884
      @lwind4884 4 дні тому

      @@user-hh2qp6ez4d Я имел ввиду следующее. Нужно сравнить два числа так, как если бы Вы перевели эти числа в строку с одинаковыми настройками форматирования, а потом проверили на равенство. Например, сравните числа 1.5551 и 1.5552 с точностью до третьего знака после десятичной точки. Если считать на разряд выше, то с точностью до четвёртого знака эти два числа не равны. Но с точностью до третьего знака они не различимы, т.е. равны.
      Впрочем. Вообще выбор метода сравнений чисел с плавающей точкой зависит от конкретной задачи.

    • @user-hh2qp6ez4d
      @user-hh2qp6ez4d 4 дні тому

      @@lwind4884 я не про количество знаков после запятой. Я про количество разрядов. Например, 123456.789(9 разрядов)*1.234(4 рязряда) - так считаль нельзя, потому что результат умножения будет достоверным только на 4 разряда. Нужно сохранять количество разрядов, а именно 123456.789*1.23456789 - так правильно, если нужна точность 8 разрядов. Как тут сравнивать? В каждом конкретном случае свое количество знаков после запятой.

    • @lwind4884
      @lwind4884 3 дні тому

      @@user-hh2qp6ez4d Благодарю за комментарий по поводу точности вычислений. Однако, прошу обратить внимание, что я писал о методе сравнения.

  • @narzaru
    @narzaru 11 днів тому

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

    • @tilir
      @tilir  11 днів тому

      У вас проблемы с браузером, он подменяет вам http на https.

    • @narzaru
      @narzaru 11 днів тому

      @@tilirтак и не смог победить, пробовал Edge, Google Chrome, Firefox. Потыкал настройки, не помогло. Код последней ошибки 4e816500.