Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Elvinochka
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 6
#1

Найти корни кубического уравнения - C++

18.12.2014, 08:52. Просмотров 1035. Ответов 14
Метки нет (Все метки)

(x+a)(x^2-bx)+c(x+a)=0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2014, 08:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти корни кубического уравнения (C++):

Найти целые корни кубического уравнения - C++
Найти первые ненулевые корни уравнения k^3-n^2+m=0 через while. Первым решением будут числа k=1. b=2. c=3

Найти все целые корни кубического уравнения - C++
Найти все целые корни уравнения ах3 + bх2 + сх + d = 0, где а, b, с и d — заданные целые числа, причем a не равно 0 и d не равно 0....

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

Найти действительный корень кубического уравнения - C++
Найти действительный корень кубического уравнения, заданного своими коэффициентами Перечитайте правила форума. Название темы должно...

Отделить корни уравнения графически. Уточнить корни уравнения методом половинного деления - C++
Здравствуйте, господа программисты, помогите пожалуйста код написать, очень нужна ваша помощь) Вот задание: " Отделить корни уравнения...

Найти корни уравнения - C++
f(x)=6x4+19x3-7x2-26x+12=0

14
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
18.12.2014, 09:29 #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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <conio.h>
#include <math.h>
 
 
using std::cout;
using std::cin;
using std::endl;
using namespace std;
 
 
int main()
{
    setlocale(0, "Russian");
 
    int a, b, c, d;
    double x1, x2, x;
    cout << "Поиск корней квадратного уровнения" << endl;
    cout << " ax^2 + bx + c = 0" << endl;
    cout << "Введите a:" << endl;
    cin >> a;
    cout << "Введите b:" << endl;
    cin >> b;
    cout << "Введите c:" << endl;
    cin >> c;
 
 
    d = (b * b) - (4 * a * c);
 
    x1 = ((-b) - (sqrt(d))) / (2 * a);
    x2 = ((-b) + (sqrt(d))) / (2 * a);
    x = (-b) / (2 * a);
 
 
    cout << "Дескриминант =  " << d << endl;
    cout << "Корень из дескрименанта =  " << sqrt(d) << endl;
 
 
    if (sqrt(d) < 0)
    {
        cout << "Корней нет!  " << endl;
    }
    else if (sqrt(d) == 0)
    {
        cout << "Дескрименант = 0. Корень один : " << x << endl;
    }
    else 
    {
        cout << "Корней двое :  " << x1 <<"  ,  "<< x2 << endl;
    }
    
    _getch();
    return 0;
}
это ведь игрушка написать такую прогу))

ты напиши название своего уравнения я смогу потом его написать
0
MDLee
15 / 4 / 1
Регистрация: 17.12.2014
Сообщений: 60
18.12.2014, 09:42 #3
Здесь квадратного уравнения никак не поможет. Исходное является кубическим после преобразования. Я щас пытаюсь один случай для дискрименанта меньше расписать, там 3 действительных корня. в остальных случаях нужно играться с комплексными числами, на что желания пока нет
0
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
18.12.2014, 09:49 #4
MDLee, хоть ты напиши что за уравнение.Мб смогу решить но впервые вижу такое))
0
Тамика
Котовчанин
917 / 460 / 145
Регистрация: 16.02.2010
Сообщений: 3,196
Записей в блоге: 27
18.12.2014, 09:56 #5
MIRAMIX,
Исходное является кубическим
Добавлено через 3 минуты
Elvinochka, думаю, тут надо системой уравнений. Юзая теорему Виета. Может есть и легче пути. Но я помню такой.
0
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
18.12.2014, 10:00 #6
MDLee, Тамика, Elvinochka, почитал о кубических ну ничего общего не нашел.
Элвиночка мб условие поменяешь?Исходное кубическое легче кажется чем это)

а так хоть напишите в отличие от квадратного что тут может ввести пользователь а что искать прога?
0
Тамика
Котовчанин
917 / 460 / 145
Регистрация: 16.02.2010
Сообщений: 3,196
Записей в блоге: 27
18.12.2014, 10:08 #7
MIRAMIX, ты уверен, что правильно читал? Попробуй пооткрывай скобки, поприводы общие члены и увидишь магию в виде кубического уравнения.
C++
1
x^3 - x^2(b - a) -x(ab - c) + ca = 0;
Видишь что-то общее, а?
0
MDLee
15 / 4 / 1
Регистрация: 17.12.2014
Сообщений: 60
18.12.2014, 10:10 #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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include "stdafx.h"
#include "cmath"
#include "iostream"
 
using namespace std;
 
const int ay = 3;
const int by = 3;
const int cy = 2;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    // (x+a)(x^2-bx)+c(x+a) = x^3 - x^2(b-a) - x(ab-c)+ca = 0
    // [url]http://www.integraloff.net/kub_urav/index.php[/url]
    // canonic view y^3 + p*y + q = 0
    
    double p,q;
 
    double a, b, c, d;
 
    a = 1; 
    b = -(by - ay);
    c = -(ay*by - cy);
    d = cy * ay;
    
    p = -(b*b / (3 * a*a)) + c / a;
 
    q = (2 * b*b) / (27 * a*a*a) - (b*c) / (3 * a*a) + (d / a);
 
    double Q;
 
    Q = (p / 3)*(p / 3)*(p / 3) + (q / 2)*(q / 2);
 
    double A, B;
 
    double x1, x2real, x3real, x2im, x3im;
 
    A = pow((-(q / 2) + sqrt(q)), 1 / 3);
    B = pow((-(q / 2) - sqrt(q)), 1 / 3);
 
    if (Q < 0){
        
        x1 = A + B;
 
        x2real = -((A + B) / 2);
 
        x2im = ((A - B) / 2)*sqrt(3);
 
        x3real = -((A + B) / 2);
 
        x3im = ((A - B) / 2)*sqrt(3);
 
        cout << "X1 = " << x1 << endl;
 
        cout << "X2 = " << x2real << " + " << x2im << "i" << endl;
 
        cout << "X3 = " << x3real << " - " << x3im << "i" << endl;
 
        system("pause");
        return 0;
 
    }
    else {
        cout << "Look for other cases on your own ! " << endl;
 
        system("pause");
        return 0;
    }
 
    system("pause");
    return 0;
}
подставил 2 в уравнение при данных коеффициентах, правильно решает. Мнимые корни не проверял
0
Elvinochka
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 6
18.12.2014, 10:12  [ТС] #9
Мне было просто предоставлено уравнение: (x+a)(x^2-bx)+c(x+a)=0 Программа должна найти корни уравнения, а пользователь должен ввести a,b,c.
0
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
18.12.2014, 10:13 #10
Тамика, уже так для себя а что из этого должен вести пользователь?)
0
MDLee
15 / 4 / 1
Регистрация: 17.12.2014
Сообщений: 60
18.12.2014, 10:23 #11
javascript:insertnick('Elvinochka','-1'); меняете коефы в самом коде или объявляйте 3 переменных и вводите с клавы

(x+a)(x^2-bx)+c(x+a) эквивалентно x^3 - x^2(b-a) - x(ab-c)+ca = 0

Добавлено через 37 секунд
Elvinochka, меняете коефы в самом коде или объявляйте 3 переменных и вводите с клавы

(x+a)(x^2-bx)+c(x+a) эквивалентно x^3 - x^2(b-a) - x(ab-c)+ca = 0

const int ay = 3 = a;
const int by = 3 = b ;
const int cy = 2 = c;
0
Elvinochka
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 6
18.12.2014, 10:24  [ТС] #12
Мне нужна программа в С++
0
IrineK
Заблокирован
18.12.2014, 10:24 #13
Цитата Сообщение от Elvinochka Посмотреть сообщение
(x+a)(x^2-bx)+c(x+a)=0
(x+a) (x^2 - bx + c) = 0

x1 = -a;
x2,3 = (b +/- sqrt(D)) / 2, where D = b^2 - 4*c
0
MDLee
15 / 4 / 1
Регистрация: 17.12.2014
Сообщений: 60
18.12.2014, 10:30 #14
IrineK, жесть)))) но за то я хоть почитал как решать кубические уравнения, спешка иногда тоже приводит к чему то хорошему ))))
0
Elvinochka
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 6
18.12.2014, 10:42  [ТС] #15
Ну напишите, пожалуйста, программу. У меня сейчас контрольная
0
18.12.2014, 10:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2014, 10:42
Привет! Вот еще темы с ответами:

Найти корни уравнения - C++
найти корни уравнения f(x)=2x^3-3x^2-3x+2=0

Найти корни уравнения - C++
Здравствуйте, хотел попросить добрых людей о помощи с написанием совсем простейшей программы, функция которой - возведение числа &quot;x&quot; в...

Найти корни уравнения - C++
Написать программу, которая находит корни уравнения e^x=x+2 с погрешностью 10^-10. Заранее благодарен.

Найти корни уравнения - C++
Тексты надо переписывать в тело сообщения В чем ошибка ? Помогите пожалуйста.


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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