用C语言中,如何用调用函数编写求一元二次方程的根
int GetRoot(float a, float b, float c ,double* root){ double delta, deltasqrt ; delta = b* b - 4*a*c ; if(delta<0) return 0 ; deltasqrt = sqrt(delta) ; if (a!=0.0){ root[0] = (deltasqrt - b)/(2.0*a) ; root[1] = (-deltasqrt - b)/(2.0*a) ; } if (root[0] == root[1]) return 1; else return 2 ; } int main(void){ //计算方程的根 float a = 2.0,b =6.0,c=3.0 ;//a,b,c s是参数 double root[2] ;//root是得到的两个根 int n = GetRoot(a,b,c,root) ; if (n<1){ printf("方程无根") ; }else{ printf("方程的解为:%f,%f",root[0],root[1]) ; } }
一元二次方程验根公式
1、x=(-b±√(b^2-4ac))/2a。只含有一个未知数(一元),并且未知数项的最高次数是2(二次)的整式方程叫做一元二次方程。标准形式为:ax2+bx+c=0(a≠0)。
2、公元前2000年左右,古巴比伦的数学家就能解一元二次方程了。他们是这样描述的:已知一个数与它的倒数之和等于一个已给数,求出这个数。他们使x1+x2=b,x1x2=1,x2-bx+1=0,再做出解答。可见,古巴比伦人已知道一元二次方程的解法,但他们当时并不接受负数,所以负根是略而不提的。
用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 还能够自动调用数值计算系统给出一个数值解。

