Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 8
1

Найти рациональные корни полинома!

05.12.2010, 18:18. Показов 6081. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят помогите плс написать код.Ломаю голову уже оч давно((((не выходит.
Условие такое:

Найти все рациональные корни полинома n-й степени с целыми коэффициентами (x) = 4 x4 + 6 x3 - 12 x2 - 7 x + 9 . При решении таких задач используется теорема.

Теорема. Для того чтобы несократимая дробь p/q была корнем уравнения an xn + an-1 xn-1 + ... + a0 = 0 с целыми коэффициентами, необходимо, чтобы число р было делителем свободного члена а0, а число q – делителем старшего коэффициента an (причем q¹0 и an¹0).
Если уравнение имеет целые коэффициенты, а старший коэффициент равен единице (т.е. аn=1), то рациональными корнями этого уравнения могут быть только целые числа, которые являются делителями свободного члена а0.

Вот такая задача.
Спасибо заранее!!!

Добавлено через 43 минуты
Можем договорится пишите в icq 449227042

Добавлено через 1 час 11 минут
КРОме этого имеется еще несколько задач .Нужно решить.Обо всем договариваемся!!!))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2010, 18:18
Ответы с готовыми решениями:

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

Задана функция x^3 (частный случай кубического полинома). Найти корни.
Задана функуия x^3 (частный случай кубического полинома). Найти корни. При условии: 1)...

Найти корни уравнений ax^3+bx^2+cx=0 и y^3-ay^2-b=0, используя процедуру. Есть ли у этих уравнений совпадающие корни?
Помогите пожалуйста решить данную задачу, на тему программирование с использованием процедур....

Найти рациональные корни многочлена
3. Найти рациональные корни многочлена : f(x)= 4x^4 - 8x^3 - 3x^2 + 5x + 2

9
23 / 15 / 7
Регистрация: 02.12.2010
Сообщений: 48
05.12.2010, 18:34 2
Сомневаюсь.

C++
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
#include <iostream.h>
#include <math.h>
 
int main()
{
    // f(x) = 4*x^4 + 6*x^3 - 12*x^2 - 7*x + 9
    // Найдем корни уравнения 4*x^4 + 6*x^3 - 12*x^2 - 7*x + 9 == 0,
    // Корнем может являться дробь p/q , где р - делитель свободного члена ( у нас == 9)
    // а q - делитель старшего коэффицента ( у нас == 4)
    float p [3] = {9.0,3.0,1.0}; // Конкретно для этого случая !!!
    float q [3] = {4.0,2.0,1.0}; // Конкретно для этого случая !!!
    float x = 9.0/4.0;
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            float x = p[i]/q[j];
            cout<<"Checking "<<x<<endl;
            if ( 4*pow(x,4) + 6*pow(x,3) - 12*pow(x,2) - 7*x + 9 == 0)
            {
                cout<<x<<" is root!"<<endl;
            }
        }
    }
    return 0;
}
0
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 8
05.12.2010, 19:01  [ТС] 3
можешь написать поподробнее, а то пишет ошибку на борланде : call to underfined function 'system'
0
23 / 15 / 7
Регистрация: 02.12.2010
Сообщений: 48
05.12.2010, 19:11 4
Погоди, Borland поставлю.
Попробуй на другом компиляторе
0
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 8
05.12.2010, 19:19  [ТС] 5
ок дай свою аську чтоли,там свяжемся чтоли...у меня есть программа для функции f(x) = x4 + 4 x3 - 2 x2 - 12 x + 9 . Он выглядит вот так.
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
clrscr();
int x,f,i,j,p,q,a0,an;
int a[6];
cout<<"\nLab3\n";
cout<<"\nKirillov Yaroslav\n";
cout<<"\nVar 9\n";
cout<<"\nNayti korni polinoma f(x)=x^4+4*x^3-2*x^2-12x+9\n";
a0=9;
i=0;
j=-9;
while (i<6,j<=9)
{
if (a0%j==0)
{
a[i]=j;
i++;
}
j++;
if (j==0)
j++;
}
cout<<"\nKorni polinoma:\n";
for (i=0;i<6;i++)
{
x=a[i];
f=pow(x,4)+4*pow(x,3)-2*pow(x,2)-12*x+9;
if (f==0)
cout<<a[i]<<" ";
}
getch();
}


ВОт я думаю, как его переделать под мою функцию f(x) = 4 x4 + 6 x3 - 12 x2 - 7 x + 9
0
23 / 15 / 7
Регистрация: 02.12.2010
Сообщений: 48
05.12.2010, 19:36 6
Этот код в Борладне у тебя работает? Проверь сразу

ну???
0
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 8
05.12.2010, 19:51  [ТС] 7
этот который я написал работает.но там функция другая,нужно изменить его на мою функцию а как хз
0
23 / 15 / 7
Регистрация: 02.12.2010
Сообщений: 48
05.12.2010, 19:57 8
Попробуй вот так
C++
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
#include <iostream.h>
#include <math.h>
#include <conio.h>
void main()
{
    // f(x) = 4*x^4 + 6*x^3 - 12*x^2 - 7*x + 9
    // Найдем корни уравнения 4*x^4 + 6*x^3 - 12*x^2 - 7*x + 9 == 0,
    // Корнем может являться дробь p/q , где р - делитель свободного члена ( у нас == 9)
    // а q - делитель старшего коэффицента ( у нас == 4)
    cout<<"\nWe need find root of polynomial f(x) = 4*x^4 + 6*x^3 - 12*x^2 - 7*x + 9\n";
    float p [3] = {9.0,3.0,1.0}; // Конкретно для этого случая !!!
    float q [3] = {4.0,2.0,1.0}; // Конкретно для этого случая !!!
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            float x = p[i]/q[j];
            cout<<"Checking "<<x<<"\n"; // Проверка корректности корня
            if ( 4*pow(x,4) + 6*pow(x,3) - 12*pow(x,2) - 7*x + 9 == 0)
            {
                cout<<x<<" is root!"<<"\n"; // Так выводятся корни
            }
        }
    }
    getch();
}
0
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 8
05.12.2010, 20:05  [ТС] 9
да,работает.Правильно я понял,что корень это 1?
Можешь объяснить как программа просто работает.Какой алгоритм плс.
0
23 / 15 / 7
Регистрация: 02.12.2010
Сообщений: 48
05.12.2010, 20:42 10
Более правильный вариант.
C++
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
#include <iostream.h>
#include <math.h>
#include <conio.h>
void main()
{
    // f(x) = 4*x^4 + 6*x^3 - 12*x^2 - 7*x + 9
    // Найдем корни уравнения 4*x^4 + 6*x^3 - 12*x^2 - 7*x + 9 == 0,
    // Корнем может являться дробь p/q , где р - делитель свободного члена ( у нас == 9)
    // а q - делитель старшего коэффицента ( у нас == 4)
    cout<<"\nWe need find root of polynomial f(x) = 4*x^4 + 6*x^3 - 12*x^2 - 7*x + 9\n";
    float p [3] = {9.0,3.0,1.0}; // Конкретно для этого случая !!!
    float q [3] = {4.0,2.0,1.0}; // Конкретно для этого случая !!!
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            float x = p[i]/q[j];
            float y = -x;
            cout<<"Checking "<<x<<"\n"; // Проверка корректности корня
            if ( 4*pow(x,4) + 6*pow(x,3) - 12*pow(x,2) - 7*x + 9 == 0)
            {
                cout<<x<<" is root!"<<"\n"; // Так выводятся корни
            }
            cout<<"Checking "<<y<<"\n"; // Проверка корректности корня
            if ( 4*pow(y,4) + 6*pow(y,3) - 12*pow(y,2) - 7*y + 9 == 0)
            {
                cout<<y<<" is root!"<<"\n"; // Так выводятся корни
            }
        }
    }
    getch();
}
Добавлено через 19 минут
#include <iostream.h>
#include <math.h> -- подключение необходимых заголовочных файлов (модулей)
#include <conio.h>

В строках 12 и 13 объявляются 2 массива p и q. Массив p хранит возможные делители свободного члена
( в нашем случае это 9,3 и 1), а массив q - делители старшего коэффицента (4,2,1). Оба массива хранят значения типа float, чтобы корректно производить деление и получать верные дроби.

В строках 14 и 17 2 цикла for, которые позволяют сделать обход обоих массивов и получить все возможные варианты дроби p/q (которая, согласно теореме, может являться корнем).

Т.о., в процессе выполнения этих циклов переменной "х" присваивается очередное значение p/q,
а переменной "у" - значение "х" с обратным знаком (корни могут быть и отрицательными).
Затем эти значения подсавляются в уравнение 4*x^4 + 6*x^3 - 12*x^2 - 7*x + 9
Если верно равенство 4*x^4 + 6*x^3 - 12*x^2 - 7*x + 9 = 0, то корень найден.

P.S. функция pow(x,n) возвращает результат возведения х в степень n.
0
05.12.2010, 20:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2010, 20:42
Помогаю со студенческими работами здесь

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

Найти рациональные корни многочлена
Найти рациональные корни следующего многочлена: 24x4 - 42x3 - 77x2 + 56x - 60.

Найти рациональные корни многочлена
Разложить многочлен на неприводимые над Q множители. 18x5+48x4+71x3+124x2+65x+10.

Найти корни полинома
Каким методом можно найти корни полинома 10 степени, если интервал не указан? Все методы по...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru