Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Elvinochka
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 6
#1

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

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

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

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

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

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

Найти действительный корень кубического уравнения
Найти действительный корень кубического уравнения, заданного своими...

Отделить корни уравнения графически. Уточнить корни уравнения методом половинного деления
Здравствуйте, господа программисты, помогите пожалуйста код написать, очень...

14
MIRAMIX
2 / 2 / 3
Регистрация: 22.02.2013
Сообщений: 313
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 / 3
Регистрация: 22.02.2013
Сообщений: 313
18.12.2014, 09:49 #4
MDLee, хоть ты напиши что за уравнение.Мб смогу решить но впервые вижу такое))
0
Тамика
Котовчанин
918 / 462 / 195
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
18.12.2014, 09:56 #5
MIRAMIX,
Исходное является кубическим
Добавлено через 3 минуты
Elvinochka, думаю, тут надо системой уравнений. Юзая теорему Виета. Может есть и легче пути. Но я помню такой.
0
MIRAMIX
2 / 2 / 3
Регистрация: 22.02.2013
Сообщений: 313
18.12.2014, 10:00 #6
MDLee, Тамика, Elvinochka, почитал о кубических ну ничего общего не нашел.
Элвиночка мб условие поменяешь?Исходное кубическое легче кажется чем это)

а так хоть напишите в отличие от квадратного что тут может ввести пользователь а что искать прога?
0
Тамика
Котовчанин
918 / 462 / 195
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
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 / 3
Регистрация: 22.02.2013
Сообщений: 313
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
Привет! Вот еще темы с решениями:

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

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

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

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


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

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

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