Să se determine rădăcinile ecuaţiei a*x4 +b*x2+c=0. Coeficienţii ecuației se citesc de la tastatură. 3
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int a, b, c;
cout << „Introduceti coeficientii ecuatiei (a*x^4 + b*x^2 + c = 0): „;
cin >> a >> b >> c;
if (a == 0) {
// Ecuatia devine de gradul 2: b*x^2 + c = 0
if (b == 0) {
if (c == 0) {
cout << „Ecuatia are o infinitate de solutii.” << endl;
} else {
cout << „Ecuatia nu are solutii.” << endl;
}
} else {
double x1 = -c / b;
cout << „Ecuatia are solutiile: x1 = x2 = ” << x1 << endl;
}
} else {
int D = b * b – 4 * a * c;
if (D < 0) {
cout << „Ecuatia nu are solutii reale.” << endl;
} else if (D == 0) {
double x1 = 0, x2 = 0, x3 = -b / (2 * a), x4 = -b / (2 * a);
cout << „Ecuatia are doua solutii egale: x1 = x2 = ” << x1 << „, x3 = x4 = ” << x3 << endl;
} else {
double r1 = sqrt((-b + sqrt(D)) / (2 * a));
double r2 = sqrt((-b – sqrt(D)) / (2 * a));
double x1 = r1, x2 = -r1, x3 = r2, x4 = -r2;
cout << „Ecuatia are patru solutii distincte: x1 = ” << x1 << „, x2 = ” << x2 << „, x3 = ” << x3 <<„, x4 = ” << x4 <<endl;
}
}
return 0;
}
- Se calculează discriminantul D = b^2 – 4ac.
- Dacă D < 0, ecuația nu are soluții reale.
- Dacă D = 0, există două soluții reale egale: x1 = x2 = 0 și x3 = x4 = -b / (2*a).
- Dacă D > 0, există patru soluții reale distincte, calculate astfel: a. Se calculează r1 = sqrt((-b + sqrt(D)) / (2a)) și r2 = sqrt((-b – sqrt(D)) / (2a)). b. Se calculează soluțiile x1 = r1, x2 = -r1, x3 = r2 și x4 = -r2.
În cazul în care coeficientul a este zero, ecuația nu mai este de gradul 4, ci de gradul 2. În acest caz, putem folosi formula clasică pentru calcularea rădăcinilor unei ecuații de gradul 2.