求解一元二次方程的根
凢曐 2024-10-16 17:01:01 阅读 89
通用表达式:ax^2 + bx + c = 0 (a != 0)
概念
一元:这个词表示方程中只有一个未知数,在通用表达式中唯一的未知数是 x ,其公式称为一元方程。
二次:这个词表示方程中未知数的最高次幂是二次,即 x^2,其公式称为二次方程
一元二次方程:指形如(ax^2 + bx + c = 0)的方程,其中 a为二次项系数,b为一次项系数,c是常数项。
一元二次方程的根:指使方程等式两边成立的未知数x的值。
一元二次方程求根公式
实数求根:
复数求根:-b/2a是实数部分,简称实部,另外部分称为虚数部分,简称虚部,复数 = 实部+虚部;
求解一元二次方程的根需要了解根的情况。
人们根据公式,找到方程规律,△ = b^2 - 4ac;该表达式称为判别式(discriminant)
当 △ > 0,一元二次方程存在两个不同的实根;
当 △ = 0,一元二次方程存在两个相同的实根(重(chong)根);
当 △ < 0,一元二次方程不存在实根,而是存在两个共轭复根;
重根:
当一元二次方程 ( ax^2 + bx + c = 0 ) 的判别式 ( b^2 - 4ac = 0 ) 时,方程有一个重复的实根。这个根被称为“重根”或“单根”。例如,方程 ( (x - 2)^2 = 0 ) 的根是 ( x = 2 ),这个根的重数是2,因为方程可以看作是 ( (x - 2) ) 的平方。
实根:
实根是指使方程成立的实数值。如果判别式 ( b^2 - 4ac ) 大于零,方程会有两个不同的实根。如果判别式等于零,方程会有一个重根(也是实根)。实根是与复数相对的概念。例如,方程 ( x^2 - 5x + 6 = 0 ) 的根 ( x = 2 ) 和 ( x = 3 ) 都是实数,所以它们是实根。
共轭复根:
当方程的判别式 ( b^2 - 4ac ) 小于零时,方程没有实根,而有两个复根。这两个复根是复共轭对,即它们的虚部符号相反。例如,方程 ( x^2 + x + 1 = 0 ) 的判别式是 ( 1^2 - 4*1*1 = - 3 ),小于零,因此有两个复根。具体解是 ( x1 = (-1/2 + i * (√3 / 2))),(x2 = (-1/2 - i * (√3 / 2) ))。这两个根是复共轭对。
c++求解一元二次方程根
discriminant.cpp
#include <cmath>
using namespace std;
int main() {
double a, b, c, x1, x2, discriminant, realPart, imaginaryPart;
while (true) {
cout << "请输入一元二次方程的系数:a, b 和 c: ";
if (!(cin >> a >> b >> c)) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "输入无效,请确保输入的是三个实数" << endl;
continue;
}
if (a == 0) {
cout << "二次项系数a不能为零" << endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
continue;
}
break;
}
discriminant = b*b - 4*a*c;
if (discriminant > 0) {
x1 = (-b + sqrt(discriminant)) / (2*a);
x2 = (-b - sqrt(discriminant)) / (2*a);
cout << "\n判别式大于零,存在两个不相同的实数" << endl;
cout << "x1 = " << x1 << endl;
cout << "x2 = " << x2 << endl;
}
else if (discriminant == 0) {
cout << "\n判别式等于零,存在两个相同的实数" << endl;
x1 = (-b + sqrt(discriminant)) / (2*a);
cout << "x1 = x2 =" << x1 << endl;
}
else {
realPart = -b/(2*a);
imaginaryPart =sqrt(-discriminant)/(2*a);
cout << "\n判别式小于零,实数不存在,存在两个共轭复数" << endl;
cout << "x1 = " << realPart << "+" << imaginaryPart << "i" << endl;
cout << "x2 = " << realPart << "-" << imaginaryPart << "i" << endl;
}
return 0;
}
运行效果
额外收获
什么是实数、复数?
复数和实数是数学中两个重要的数系,它们之间有几个关键的区别:
实数
定义:
实数是所有可以在数轴上表示的数,包括正数、负数、零、整数、分数和无理数(如 (\sqrt{2}))。
形式:
实数的标准形式就是通常我们所见的普通数字,如 (1)、(-2)、(0.5) 等。
表示:
实数可以用单一的数值表示,没有虚部。例如,实数 ( x ) 可以写成 ( x + 0i ),其中虚部为零。
运算:
实数可以进行加法、减法、乘法、除法等基本运算,其结果仍然是实数。
复数
定义:
复数是由实数和虚数组成的数。形式上,复数可以表示为 ( a + bi ),其中 ( a ) 和 ( b ) 都是实数,( i ) 是虚数单位,满足 ( i^2 = -1 )。
形式:
复数包括两个部分:实部 ( a ) 和虚部 ( b )。例如,复数 ( 3 + 4i ) 的实部是 3,虚部是 4。
表示:
复数的标准形式为 ( a + bi ),其中 ( a ) 是实部,( b ) 是虚部。如果 ( b = 0 ),复数就是实数;如果 ( a = 0 ),复数就是纯虚数。
运算:
复数的加法、减法、乘法和除法规则与实数类似,但涉及到虚部的运算。例如,复数乘法要用到分配律和虚数单位的性质。
关键区别
虚部:
实数:虚部为零。复数:虚部可以是非零的实数。
数轴与复平面:
实数:可以在一维的数轴上表示。复数:需要在二维的复平面上表示,实部在横轴上,虚部在纵轴上。
解方程:
实数:有时不能解决所有方程,例如方程 ( x^2 + 1 = 0 ) 在实数范围内没有解。复数:可以解决所有二次方程,例如 ( x^2 + 1 = 0 ) 在复数范围内的解是 ( i ) 和 ( -i )。
集合:
实数:是复数的一个子集,所有实数都是复数,但并不是所有复数都是实数。
复数包含了实数,在实数的基础上扩展了虚数部分。
小结
一元二次方程的图像直观求根
找规律,解决问题,编写的程序通过求判别式 △ = b^2 - 4ac的值是否等于和小于或大于零结合求根公式得到一元二次方程的根,其中使用了头文件cmatch的数学函数sqrt(),该函数接受一个参数,用来计算参数的平方根;另需要注意二次项系数不可以为零,换位思考,二次项系数a==0,那么一元二次方程还能叫一元二次方程吗?当a=0,就成了一元一次方程。a、b等于0,就剩下常数了┗|`O′|┛ 嗷~~。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。