C语言计算一元二次方程ax2+bx+c=0的根?
include"stdio.h"对一元二次方程ax2+bx+c=0,要考虑其系数a、b、c各种可能的取值情况。
若a为0,则原方程蜕化为一元一次方程bx+c=0,所以当b不为0时,x= - c/b;
当a不为0时,有两个根(实根或复根):
若b*b-4*a*c≥0,有两个实根:
x1,x2 = (-b±sqrt(b2-4*a*c) / (2*a)
若b*b-4*a*c<0,有两个共扼复根:
x1,x2 = -b/(2*a) ± sqrt(b2-4*a*c)i / (2*a)
#include 'stdio.h'
#include 'math.h'
main ( )
{ float a,b,c,d,a2,x1,x2;
printf( ' Input a,b,c');
scanf('%f,%f,%f',&a,&b,&c);
if (a==0) /* 解一元一次方程 */
x1=-c/b;
else /* 解一元二次方程 */
{ d = b*b - 4*a*c;
a2=2*a;
x1=-b/a2;
解题步骤,第一步,方程两边都除以a,得x的平方+(b/a)x+c/a=0,第二步,配方,得,x的平方+(b/a)x+(b/2a)的平方=-c+(b/2a)的平方,即(x+b/2a)的平方=b的平方-4ac,第三步,开方得,x+b/2a=±✔b的平方-4ac,第四步,移项,x=-b±✔b的平方-4ac/2a,得到一元二次方程的两个根
用matlab求一元二次方程的根?
1、首先打开matlab2017版软件,新建一个空白的文件:
2、然后在软件中输入代码,首先定义一元二次方程的3个参数,然后定义方程的判别式,接着计算方程的两个根,最后用disp函数输出即可:
3、最后运行程序,输入方程的3个系数,即可得到根的结果:
程序解释:要求解方程x+y=1和x-11y=5,首先要用syms申明符号变量x,y,再列出等式eq1和eq2,在利用solve函数进行求解
solve 的常见调用形式:
sol = solve(eq)
sol = solve(eq,var)
sol = solve(eq1,eq2,…,eqn)
sol = solve(eq1,eq2,…,eqn,var1,var2,…,varn)
其中eq 为符号表达式,var 为指定的要求解的变量
solve 的使用条件:通常在不确定方程是否有符号解的时候,推荐先使用 solve 进行尝试,因为 solve 相比于数值求解来说,它不需要提供初值,并且一般情况下能够得到方程的所有解。对于一些简单的超越方程,solve 还能够自动调用数值计算系统给出一个数值解。
一元二次方程有两个不相等的根为什么a×c< 0?
答案错误。一元二次方程(aX^2十bX十c二0,其中a≠0)有两个不相等后实数根axc不一定非要小于0,也可以大于或等于0,只要根的判别式厶≥0即可(厶=b^2-4ac),例如:2X^2一4X=0,Ⅹ=0和Ⅹ=2为两不相等根,ac=0,显然ac>0能举很多例子。当然题目的逆命题是正确的即当一元二次方程ac<0,其方程一定有二不相等实根,因为ac<0,则厶=b^2一4ac>0(任何实数平方都是非负数)。

