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

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

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

  • @ИринаДавидчук-з5ц
    @ИринаДавидчук-з5ц 3 года назад

    Спасибо большое за все видео! Очень понятно и доступно объясняете. Очень помогли!🥰🤩

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

    спасибо вам огромное!! не хватает visual basic((( пожелайте удачи на сессии! всех благ

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

      Безусловно желаю вам удачи на сессии и не только. Надеюсь все сдадите на отлично :)

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

      @@oleksandrtsymbaliuk ☺спасибо

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

    спасибо, очень помогло!

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

    Всё понял 👍

  • @ИгорьАбрамов-у8н

    Здравствуйте. А в цикле вайл обязательно высчитывать по второму разу F(a) и F(b)?
    Это несет какой-то смысл? Я их закомментировал. Все также работает вроде как.
    public static double findRoot(Function equation, double a, double b, double err) {
    double aValue = equation.apply(a);
    double bValue = equation.apply(b);
    if (aValue * bValue > 0) {
    throw new IllegalArgumentException("Initial approximation error");
    }
    double cValue;
    while (true) {
    double c = (a + b) / 2;
    aValue = equation.apply(a);
    bValue = equation.apply(b);
    cValue = equation.apply(c);
    if (Math.abs(cValue) < err) {
    return c;
    }

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

      Добрый день. Эти значения вычислять обязательно. Полученные значения на концах отрезка позволяют сдвинуть границу к требуемой части отрезка. Вот эта часть сдвигает границы
      if (aValue * cValue < 0) {
      b = c;
      } else {
      a = c;
      }
      Без этой части, в половине случаев решение будет не верное или программа будет зацикливаться.

  • @ИгорьАбрамов-у8н

    а как получилось приблизительно 0.63

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

      Так просто подставили значение -1 в полученную функцию и вычислили.

    • @ИгорьАбрамов-у8н
      @ИгорьАбрамов-у8н Год назад

      @@oleksandrtsymbaliuk Я подставил -1 и получил 1. Наверное мне нужно подтягивать математику с 5 класса. Это же алгебра?

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

      Ну как возводить в отрицательную степень и что такое экспонента это уже где то класс 8. Но да вы вычислили неверно. Если подставить и подсчитать (-1)^2 - exp(-1) = 0.6321...
      Вот доказательство - www.wolframalpha.com/input?i=%28-1%29%5E2+-+exp%28-1%29

    • @ИгорьАбрамов-у8н
      @ИгорьАбрамов-у8н Год назад

      "Е" это Основание натурального логарифма, математическая константа, иррациональное и трансцендентное число. Приблизительно равно 2,71828.. Не благодарите за разъяснение...