重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include "math.h"
为建平等地区用户提供了全套网页设计制作服务,及建平网站建设行业解决方案。主营业务为成都做网站、网站设计、建平网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
typedef struct {
double* coef;
int n;
}poly;
double dfx(poly* p, double v) {
double t = v;
double r = 0;
double* coef = p-coef;
int i;
r += coef[1];
for (i = 2; i p-n ; i++) {
r += coef[i]*i*t;
t *= v;
}
return r;
}
double fx(poly* p, double v) {
double t = v;
double r = 0;
double* coef = p-coef;
int i;
r += coef[0];
for (i = 1; i p-n ; i++) {
r += coef[i]*t;
t *= v;
}
return r;
}
double polyroot(poly* p, double x0) {
double x = x0 - 1;
int n = 0;
while (fabs(x-x0) 1e-12 n++ 100) {
double dx0 = dfx(p, x0);
x = x0;
if (dx0)
x0 -= fx(p, x0)/dx0;
else
x0 -= 0.1;
printf("inter:%d f(%lf) = %lf\n", n, x0, fx(p,x0));
}
return x0;
}
int main()
{
double c[4] = {-6, 3, -4, 2};
poly d = {c, 4};
polyroot(d, 1.5);
return 0;
}
#include "stdio.h"
#include "math.h"
/*求一元二次方程ax*x+bx+c=0的解*/
main()
{
float a,b,c,x1,x2,d;
printf("请输入a:");
scanf("%f",a);
printf("请输入b:");
scanf("%f",b);
printf("请输入c:");
scanf("%f",c);
d=b*b-4*a*c;
if(d 0)
printf("方程没有实数解。\n");
if (d==0)
{
x1=(-b)/(2*a);
printf("x1=%f\n",x1);
}
if (d0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);}
}
请输入a:12
请输入b:34
请输入c:4
x1=-0.122985,x2=-2.710348
Press any key to continue
采用C语言编程解方程,有两种情况:
1 简单的方程,比如一元一次方程,或者多元一次方程,以及一元二次方程等,这类数学上有固定的解题方法的,可以在程序中输入参数,并按照数学方法,进行求解。
2 复杂的方程,比如高次方程,或者积分方程等,对于这类问题,在数学上有着自己的解法,但是移植到计算机中操作会比较繁琐,不易于编程实现。所以这类方程在计算机领域中,专门开发了更高效的算法,不适于笔算,但更符合计算机的工作方式。这时需要查找或学习对应算法并实现。