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

Написать программу для вычисления точек экстремума полинома третьей степени

25.10.2017, 23:24. Показов 3513. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать программу на С++.
Задание:
Написать программу для вычисления точек экстремума полинома третьей степени.Коэффициенты задающие полином реализовать в виде полей класса.Для вычисления экстремумов использовать методы(или методы) класса
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2017, 23:24
Ответы с готовыми решениями:

Формула Кардано для полинома третьей степени
Добрый вечер! Имеется полином третьей степени, необходимо в Maple использовать формулу Кардано для нахождения корней, кто может сказать или...

Нахождение полинома третьей степени
Для полинома третьей степени найти все корни в указанном диапазоне (результат вывести в таблице или текстовом блоке). Вывести на форму...

Заменить функцию в интервале [-a,b] с помощью полинома третЬей степени
a=10 b=10 c=1 Дана функция f(x)=a*Sin((1/b)*x)+b*Cos((1/c)*x). Заменить эту функцию в интервале с помощью полинома третей степени....

2
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
26.10.2017, 09:00
Addothon, Взять производную и приравнять к нулю. Это будет квадратное уравнение .
0
2 / 2 / 2
Регистрация: 27.10.2017
Сообщений: 3
27.10.2017, 12:28
Лучший ответ Сообщение было отмечено Addothon как решение

Решение

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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <iostream>
#include <utility>
#include <cmath>
using namespace std;
//Класс с результатом работы программы. По сути нужен только для хранения и вывода информации на экран
class ExtremumResult {
private:
    pair<double, double> _extr1;
    pair<double, double> _extr2;
    int _count;
public:
    ExtremumResult(int count,
                   pair<double, double> extr1=make_pair(0.0, 0.0),
                   pair<double, double> extr2=make_pair(0.0, 0.0)): _count(count), _extr1(extr1), _extr2(extr2) {}
    friend ostream& operator<<(ostream&, const ExtremumResult&);
};
//Класс полинома
//f(x) = _a*x^3 + _b*x^2 + _c*x + _d
class Poly3 {
private:
    double _a;
    double _b;
    double _c;
    double _d;
public:
    Poly3(double a, double b, double c, double d):_a(a), _b(b), _c(c), _d(d) {}
    double getF(double x);
    ExtremumResult getExtremums();
    friend ostream& operator<<(ostream&, const Poly3&);
};
//Подсчет значение F(x)
double Poly3::getF(double x) {
    return _a*x*x*x + _b*x*x + _c*x + _d;
}
ExtremumResult Poly3::getExtremums() {
    //Вычисляем коэффициенты для производной(3 * _a * x^2 + 2 * _b * x + _c)
    double a = 3 * _a;
    double b = 2 * _b;
    double c = _c;
    if (a == 0.0) {
        if (b == 0.0) {
            //Полином - это прямая
            return ExtremumResult(0);
        }
        //Полином - это парабола, находим вершину параболы
        double x = - c / b;
        double y = getF(x);
        return ExtremumResult(1, make_pair(x, y));
    }
    //Вычисляем дискриминант
    double discr = b * b - 4 * a * c;
    //Выводим результат решения квадратного уравнения
    //Интересуют только точки, где производная меняет знак, т.е. те точки, где 2 рашения
    if (discr <= 0.0) {
        return ExtremumResult(0);
    }
    double x1 = (-b - sqrt(discr)) / (2 * a);
    double y1 = getF(x1);
    double x2 = (-b + sqrt(discr)) / (2 * a);
    double y2 = getF(x2);
    return ExtremumResult(2, make_pair(x1, y1), make_pair(x2, y2));
}
//Вывод полинома
ostream& operator<<(ostream& out, const Poly3& poly) {
    out << "f(x) = ";
    if (poly._a != 0.0) {
        out << poly._a <<"x^3 + ";
    }
    if (poly._b != 0.0) {
        out << poly._b <<"x^2 + ";
    }
    if (poly._c != 0.0) {
        out << poly._c <<"x + ";
    }
    return out << poly._d;
}
//Вывод результата
ostream& operator<<(ostream& out, const ExtremumResult& result) {
    if (result._count == 0) {
        out << "No extremums";
    } else if (result._count == 1) {
        out << "One result: (" << result._extr1.first << ", " << result._extr1.second << ")" << endl;
    } else if (result._count == 2) {
        out << "Two results:";
        out << " (" << result._extr1.first << ", " << result._extr1.second << ") and";
        out << " (" << result._extr2.first << ", " << result._extr2.second << ")";
    }
    return out;
}
int main()
{
    //Ввод коэффициентов
    double a, b,c, d;
    cout << "Please enter a, b, c, d coeficients of function f(x) = a*x^3 + b*x^2 + c*x + d using space:";
    cin >> a >> b >> c >> d;
    //Создание объекта-полинома и вывод его на экран
    Poly3 poly(a, b, c, d);
    cout << "Input polynom is " << poly << endl;
    //Вычисление результата
    cout << "Calculating extremums... " << poly.getExtremums();
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2017, 12:28
Помогаю со студенческими работами здесь

Реализовать алгоритм вычисления полинома n-й степени
Реализовать алгоритм вычисления полинома n-й степени.

Составить программу для вычисления значения полинома
Составить программу для вычисления значения полинома y= a1x(в степени n)+ a2x(в степени n-1 +....+ anx + an+1x порядок которого n&lt;30.

Составить программу для вычисления значения полинома
Составить программу для вычисления значения polinoma P(x)=a1*x^n+a2*x^n-1+...+an*x+a(n+1) Для x=x1,x2,...,xm по схеме Горнера, т.е...

Написать программу вычисления ближайшего сверху числа степени 2
Написать программу вычисления ближайшего сверху числа степени 2;*Программа должна использовать цикл while. Входные данные*поступают с...

Написать программу вычисления ближайшего снизу числа степени 2
Надо написать программы на C# и если можно пояснить строки кода 1. Написать программу вычисления ближайшего снизу числа степени 2;...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru