c语言二分法求函数零点,用二分法求函数零点

用二分法求函数零点的条件

一般地,对于函数f(x),如果存在实数c,当x=c是f(c)=0,那么把x=c叫做函数f(x)的零点。

创新互联专注于广宗企业网站建设,响应式网站,购物商城网站建设。广宗网站建设公司,为广宗等地区提供建站服务。全流程按需策划,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

解方程即要求f(x)的所有零点。

先找到a、b,使f(a),f(b)异号,说明在区间(a,b)内一定有零点,然后求f【(a+b)/2】,

现在假设f(a)0,f(b)0,a

0,同上

通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,这种方法叫做二分法。

由于计算过程的具体运算复杂,但每一步的方式相同,所以可通过编写程序来运算。

例:(c语言)

方程式为:f(x)

=

0,示例中f(x)

=

1+x-x^3

用C语言,运用二分法,求函数零点。

#includestdio.h

#includemath.h

typedef double(*fun)(double xx);//函数指针

#define e 0.000001 //误差

void eff(double a,double b,fun hs)//二分法

{int i=0;

while(fabs(hs(a)-hs(b))efabs(a-b)e){i++;

if(hs(a)*hs((b+a)/2)0){

a=(a+b)/2;

printf("迭代第%d次:\t%f\n",i,a);

}

else {

b=(a+b)/2;

printf("迭代第%d次:\t%f\n",i,b);

}

}

}

double hs1(double xx)//函数f(x)=x^3+x^2-3x-3

{return xx*xx*xx+xx*xx-3*xx-3;}

double hs2(double xx)//函数f(x)=lnx+x

{return log(xx)+xx;}

void main()

{

printf("用二分法求方程x^3+x^2-3x-3=0在1.5附近的根\n");

eff(1.0,2.0,hs1);

printf("用二分法求方程lnx+x在0.5附近的根\n");

eff(0.0,1.0,hs2);

}

求助C语言二分法求函数零点

#include stdio.h

#include math.h

double fun_math(double);

int main(void)

{

/*  根据函数可知Y是关于x的一个递增函数 */

/*  先判断输入Y时,X在(0,1)时是否有解 */

double Y;

double X=0 ,big_x=1.0,small_x=0,tmp_X=1;

unsigned int tmp=0;

printf("Please enter Y:");

scanf("%lf",Y);

if(fun_math(1) = Y fun_math(0) = Y)

{

while(tmp_X != X)

{

X =(big_x + small_x)/2;

if(fun_math(X)==Y) break;

if(fun_math(X)Y) big_x = X;

else small_x = X;

tmp_X = X ;

X =(big_x + small_x)/2;

}

printf("X = %.6lf",X);

}

else printf("while Y=%lf, X(0,1) on results\n",Y);

return 0;

}


网站标题:c语言二分法求函数零点,用二分法求函数零点
当前链接:http://cdiso.cn/article/hdhgji.html

其他资讯