Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 24.11.2021
Сообщений: 104

Вычислить действительный корень многочлена на заданном интервале скомбинировав методы хорд и касательных

17.05.2022, 18:45. Показов 2267. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
f(x) = x^4+3x^3-x^2-3x+1
eps = 10^-3
(a;b) = (-2;0)
Код выдает не правильный ответ.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from math import log10 
 
def y(x): 
  return x**4 + 3*x**3 - x**2 - 3*x + 1
    
def dy(x):
  return 4*x**3 + 9*x**2 - 2*x - 3 
  
def ddy(x): 
  return 2*(6*x**2 + 9*x-1)
 
def combi(a, b, eps=.001): 
  cnt=0 
  while abs (a - b) > eps: 
      if y(a)*ddy(a) < 0: 
          a -= y(a)*(a-b)/(y(a)-y(b)) 
      else:
          a -= y(a)/dy(a)
        
      if y(b)*ddy(b) < 0:
          b -= y(b)*(b-a)/(y(b)-y(a))
      else:
          b -= y(b)/dy(b)
      cnt -= 1
  x = (a+b)/2
  # Проверка
  k = -int(log10(eps)) 
  print(f'y({round(x, k)}) ={round(y(x), k)}') 
    
  return f'x = {round(x, k)}\nЧисло итераций: {cnt}' 
    
print(combi(-2,0))
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.05.2022, 18:45
Ответы с готовыми решениями:

Найти корень многочлена скомбинировав метод хорд и метод касательных
Пожалуйста помогите с этой задачкой С данной точностью e вычислить действительный корень многочлена на интервале (a:b), скомбинировав...

З данной точностью Е вычислить действительный корень многочлена на интервале
З данной точностью Е вычислить действительный корень многочлена на интервале (a;b), скомбинировав методы хорд и касательных. ...

Найти действительный корень многочлена, расположенный на интервале (-3,0), с точностью e=(10^6)
Дан многочлен третьей степени: P(x)=(x^3)+bx+c. Найти действительный корень многочлена, расположенный на интервале (-3,0), с точностью...

8
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
17.05.2022, 18:59
Darklight_sun,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from math import log10 
 
def y(x): 
    return x**4 + 3*x**3 - x**2 - 3*x + 1
 
def dy(x):
    return 4*x**3 + 9*x**2 - 2*x - 3 
 
def ddy(x): 
    return 2*(6*x**2 + 9*x-1)
 
def combi(a, b, eps=.001): 
    cnt=0 
    while abs (a - b) > eps: 
        if y(a)*ddy(a) < 0: 
            a -= y(a)*(a-b)/(y(a)-y(b)) 
        else:
            a -= y(a)/dy(a)
 
        if y(b)*ddy(b) < 0:
            b -= y(b)*(b-a)/(y(b)-y(a))
        else:
            b -= y(b)/dy(b)
        cnt += 1
        x = (a+b)/2
    # Проверка
    k = -int(log10(eps)) 
    print(f'y({round(x, k)}) ={round(y(x), k)}') 
    
    return f'x = {round(x, k)}\nЧисло итераций: {cnt}\n'
 
 
 
print(combi(-4,-2))
print(combi(-2,-1))
print(combi(-1,2))
В таких задачах интервалы желательно выбирать, в которых производная функции не равна 0 (локальный экстремум)...
0
1 / 1 / 0
Регистрация: 24.11.2021
Сообщений: 104
17.05.2022, 19:07  [ТС]
Даже если изменить значения - то ответ все равно не выходит верным. Я взял (-2;1), число итерации выходит 4, а нужно 9 и + ответ не точный
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
17.05.2022, 19:36
Darklight_sun, Все три корня:
Python
1
2
3
print(combi(-4,-2))
print(combi(-2,-1))
print(combi(-1,4))
Код запускал?
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
17.05.2022, 19:45
Лучший ответ Сообщение было отмечено Darklight_sun как решение

Решение

Тоже ступил
Python
1
2
3
4
print(combi(-4,-2.5))
print(combi(-2.5,-1))
print(combi(-0.5, 0.5))
print(combi(0.5,2))
Положительные корни слишком близки...
Миниатюры
Вычислить действительный корень многочлена на заданном интервале скомбинировав методы хорд и касательных  
1
1 / 1 / 0
Регистрация: 24.11.2021
Сообщений: 104
17.05.2022, 19:45  [ТС]
Да код запускал. с (-2. 0 ) код работает не стабильно
Если я использую (-2 1) код работает замечательно
Можно это как-то обьяснить?
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
17.05.2022, 19:48
Диапазон (-2,1) включает в себя три корня
0
1 / 1 / 0
Регистрация: 24.11.2021
Сообщений: 104
17.05.2022, 19:55  [ТС]
точнее (-2 -1)

Добавлено через 3 минуты
Я разобрался спасибо )
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
17.05.2022, 19:56
Darklight_sun,
Можно это как-то обьяснить?
Эти методы - уточняющие. Писал выше - желательно (не всегда, но всё таки) избегать локальных экстремумов. Иначе решение может "сваливаться обратно" в ранее найденный корень. Ведь при (-2,1) корень верный, но не ожидаемый...
Запусти с данными:
Python
1
2
3
4
5
6
7
print(combi(-4,-2.5))
print(combi(-2.5,-1))
print(combi(-0.5, 0.5))
print(combi(0.5,2))
print('\n=====================\n')
print(combi(-2,1))
print(combi(-2,0))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.05.2022, 19:56
Помогаю со студенческими работами здесь

Действительный корень функции на заданном интервале
Здравствуйте, Помогите, пожалуйста. Дать определение действительного корня функции на заданном интервале методом хорд.

С данной точностью E вычислить действительный корень многочлена
Пожалуйста помогите с этой задачкой :( С данной точностью e вычислить действительный корень многочлена на интервале (a:b), скомбинировав...

Отделить любой действительный корень уравнения и вычислить его методом хорд
Отделить любой действительный корень уравнения f (x) = 0 и вычислить его методом хорд с точностью ε = 10-4 . уравнение: ln2 x - x -1

Первый корень методом деления отрезка пополам, второй корень методом хорд, третий корень методом хорд и касательных
решить уравнение, первый корень методом деления отрезка пополам, второй корень методом хорд, третий корень смешанным методом хорд и...

найти корень уравнения методом хорд и касательных на С
найти корень уравнения (x*x + ln(x)-2) методом хорд и касательных на С. Если не можете, тогда подскажите плз... В этом методе есть f,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru