求解二次函数

Posted bboykaku

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求解二次函数相关的知识,希望对你有一定的参考价值。

代码如下:

 1 //二次函数求解
 2 # include<stdio.h>
 3 # include<math.h>
 4 float a,b,c;
 5 struct d{
 6     double x1;
 7     double x2;
 8 };
 9 d R;
10 d func1(float,float,float);
11 double func2(float,float);
12 d func3(float,float,float);
13 int main()
14 {
15     scanf("%f%f%f",&a,&b,&c);
16     if(fabs(a)<1e-6)
17     {
18         printf("非二次函数
");
19         return 0;
20     }
21     if(pow(b,2)-4*a*c>0)
22     {
23         printf("x1=%7.2f
x2=%7.2f
",func1(a,b,c).x1,func1(a,b,c).x2);
24     }
25     else if(fabs(pow(b,2)-4*a*c)<1e-6)
26     {
27         printf("x1=x2=%7.2f
",func2(a,b));
28     }
29     else
30     {
31         printf("x1=%7.2f+%7.2fi
x2=%7.2f-%7.2fi
",func3(a,b,c).x1,func3(a,b,c).x2,func3(a,b,c).x1,func3(a,b,c).x2);
32     }
33 
34     return 0;
35 }
36 
37 d func1(float a,float b,float c)
38 {
39     d r;
40     double p1=-b/(2.0*a);
41     double p2=sqrt(pow(b,2)-4*a*c)/(2.0*a);
42     r.x1=p1+p2;
43     r.x2=p1-p2;
44     return r;
45 }
46 
47 double func2(float a,float b)
48 {
49     return -b/(2.0*a);
50 }
51 
52 d func3(float a,float b,float c)
53 {
54     d r;
55     double p1=-b/(2.0*a);
56     double p2=sqrt(-(pow(b,2)-4*a*c))/(2.0*a);
57     r.x1=p1;
58     r.x2=p2;
59     return r;
60 }

运行结果:

技术图片

 

以上是关于求解二次函数的主要内容,如果未能解决你的问题,请参考以下文章

线性共轭梯度法求解正定二次函数极小点以及线性方程组的解--MATLAB源程序

MPC的终结——二次规划求解约束极值问题

[数值计算-5]:一元二次非线性方程求解 - 解析法直接求解

农村高中生源转型期提升学生二次函数建模能力的课堂探究

第二次在对话框中膨胀片段时出错

Qt编程遇到的问题,我在qt中直接使用C语言的程序片段,有问题 ,求解