用二分法求方程0.8x方-1=Inx在区间(0,1)内的近似值

问题描述:

用二分法求方程0.8x方-1=Inx在区间(0,1)内的近似值

设f(x)=0.8x^2-1-lnx,x∈(0,1)
取x=0.4时,f1(x)=0.0443;x=0.5时,f2(x)=-0.107;f1(x)*f2(x)所以取x=(0.4+0.5)/2=0.45,f3(x)=-0.04,这时f3(x)*f(1)所以再取x=(0.4+0.45)/2=0.425,f4(x)=1.66*10^-4,已经趋近于0
所以近似值约为0.425

#include"iostream"
#include"stdio.h"
#include"math.h"
#define null 0
double fx(double); //f(x)函数
void main()
{
double xa(null),xb(null),xc(null);
do
{
printf("请输入一个范围x0 x1:");
std::cin>>xa>>xb; //输入xa xb的值
printf("%f %f",xa,xb);
}
while(fx(xa)*fx(xb)>=0); //判断输入范围内是否包含函数值0
do
{
if(fx((xc=(xa+xb)/2))*fx(xb){
xa=xc;
}
else
{
xb=xc;
}
}
while(fx(xc)>pow(10.0,-5)||fx(xc)printf("\n 得数为:%f",xc);
}
double fx(double x)
{
return(0.8*pow(x,2)-1-ln(x));//f(x)
}

因为当x=1时,x^3-x-1=-1<0当x=1.5时,x^3-x-1=0.875>0所以在区间[1,1.5]内必存在一点使x^3-x-1=0当x=1.25时,x^3-x-1=-0.296875<0所以在区间[1.25,1.5]内必存在一点使x^3-x-1=0当x=1.375时,x^...