Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
Alexandri
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
#1

Как найти рациональные корни полинома? - C++

15.10.2012, 09:35. Просмотров 2150. Ответов 10
Метки нет (Все метки)

Ломаю голову уже пару дней, не могу понять теорему к решению этой задачи.
Найти все рациональные корни полинома n-й степени с целыми коэффициентами f(x)=2*x^2+7*x^3-12*x^2-38*x+21.


Теорема. Для того чтобы несократимая дробь p/q была корнем уравнения an (q!=0) xn + an-1 xn-1 + ... + a0 = 0 с целыми коэффициентами, необходимо, чтобы число р было делителем свободного члена а0, а число q – делителем старшего коэффициента an (причем q¹0 и an¹0).
Если уравнение имеет целые коэффициенты, а старший коэффициент равен единице (т.е. аn=1), то рациональными корнями этого уравнения могут быть только целые числа, которые являются делителями свободного члена а0.
сам код программы я понимаю, пример предоставлен в задании, но с теоремой до конца разобраться не могу(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2012, 09:35     Как найти рациональные корни полинома?
Посмотрите здесь:
C++ Найти рациональные корни полинома!
C++ Задана функция x^3 (частный случай кубического полинома). Найти корни.
C++ Как найти все корни уравнения?
Найти корни уравнений ax^3+bx^2+cx=0 и y^3-ay^2-b=0, используя процедуру. Есть ли у этих уравнений совпадающие корни? C++
Найти корни уравнения C++
Найти корни уравнения C++
Найти комплексные корни C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
doctor_lecter
280 / 153 / 8
Регистрация: 22.09.2012
Сообщений: 283
15.10.2012, 09:54     Как найти рациональные корни полинома? #2
a0 - свободный коэффициент. Его делители: p0=1, p1, p2, ... , pk=a0
an - коэффициент при степени n. Его делители: q0=1, q1, q2, ... , qm=an
Корни искать среди чисел: http://www.cyberforum.ru/cgi-bin/latex.cgi?\pm \frac{{p}_{i}}{{q}_{j}}, i\in [0, k], j\in [0, m]
Но так можно найти только корни среди рациональных чисел, если есть действительные корни, так их найти не получится.
Alexandri
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
15.10.2012, 09:58  [ТС]     Как найти рациональные корни полинома? #3
Примитивный вопрос, но все же, если действительные корни есть, то как найти?
doctor_lecter
280 / 153 / 8
Регистрация: 22.09.2012
Сообщений: 283
15.10.2012, 10:02     Как найти рациональные корни полинома? #4
Самый тупой способ - найти корень на интервале [a, b] проверить все значения x с шагом dx, и сравнить |y(x)| < eps
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
15.10.2012, 10:05     Как найти рациональные корни полинома? #5
doctor_lecter, зачем? Теорема же не просто так дана. Надо найти все делители старшего и младшего коэффициентов и попробовать каждую из комбинаций числитель/знаменатель на то, является ли она корнем.
doctor_lecter
280 / 153 / 8
Регистрация: 22.09.2012
Сообщений: 283
15.10.2012, 10:18     Как найти рациональные корни полинома? #6
silent_1991, это подходит только для рациональных корней, для действительных этот способ не работает. Пример x^2+2x-2. тут корни -1+-sqrt(3), среди чисел +-1, +-2 корней нет.
silent_1991
15.10.2012, 10:41
  #7

Не по теме:

doctor_lecter, да, не заметил, что вопрос про действительные...

Байт
Эксперт C
15835 / 10162 / 1522
Регистрация: 24.12.2010
Сообщений: 19,160
15.10.2012, 10:47     Как найти рациональные корни полинома? #8
Не понял о чем разговор
Цитата Сообщение от Alexandri Посмотреть сообщение
Найти все рациональные корни
Alexandri, а по поводу теоремы обращайтесь в подфорум "Математика - Алгебра"
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
15.10.2012, 10:50     Как найти рациональные корни полинома? #9
Байт,
Цитата Сообщение от Alexandri Посмотреть сообщение
Примитивный вопрос, но все же, если действительные корни есть, то как найти?
Либо ТС опечатался, либо дополнительно интересуется про действительные.
Байт
Эксперт C
15835 / 10162 / 1522
Регистрация: 24.12.2010
Сообщений: 19,160
15.10.2012, 11:04     Как найти рациональные корни полинома? #10
Цитата Сообщение от silent_1991 Посмотреть сообщение
дополнительно интересуется про действительные.
Но это уже совсем другой вопрос, другая тема.
Впрочем, если и впрямь интересно, то в данном случае я бы посоветовал воспользоваться формулой Кардано. Для степени 4 тоже есть формула. А вот дальше, как показал тов.Галуа, общего решения в квадратурах нету. Но можно применить способ, предложенный в посте #4 doctor_lecter для приблизительного нахождения корней. Впрочем, ни одна из существующих ЭВМ точного значения иррационального корня вычислить не в состоянии ни по какой формуле, и в ближайшем будущем появление таких ЭВМ не предвидится
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2012, 11:39     Как найти рациональные корни полинома?
Еще ссылки по теме:
C++ Найти корни уравнения
Найти корни уравнений C++
Найти корни уравнения C++
Найти корни уравнения C++
C++ Найти корни уровнения

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

Или воспользуйтесь поиском по форуму:
Alexandri
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
15.10.2012, 11:39  [ТС]     Как найти рациональные корни полинома? #11
спасибо, учту на будущее куда обращаться)
и за помощь тоже спасибо)
разобралась)
Yandex
Объявления
15.10.2012, 11:39     Как найти рациональные корни полинома?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru