用二分法求方程0.8x方-1=Inx在区间(0,1)内的近似值
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/03 01:23:04
用二分法求方程0.8x方-1=Inx在区间(0,1)内的近似值
用二分法求方程0.8x方-1=Inx在区间(0,1)内的近似值
用二分法求方程0.8x方-1=Inx在区间(0,1)内的近似值
因为当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^3-x-1≈0.224609>0
所以在区间[1.25,1.375]内必存在一点使x^3-x-1=0
当x=1.3125时,x^3-x-1≈-0.051514<0
所以在区间[1.3125,1.375]内必存在一点使x^3-x-1=0
当x=1.34375时,x^3-x-1≈0.082611>0
所以在区间[1.3125,1.34375]内必存在一点使x^3-x-1=0
当x=1.328125时,x^3-x-1≈0.014576>0
所以在区间[1.3125,1.328125]内必存在一点使x^3-x-1=0
当x=1.3203125时,x^3-x-1≈-0.018711<0
所以在区间[1.3203125,1.328125]内必存在一点使x^3-x-1=0
当x=1.32421875时,x^3-x-1≈-0.002128<0
所以在区间[1.32421875,1.328125]内必存在一点使x^3-x-1=0
当x=1.326171875时,x^3-x-1≈0.006209>0
所以在区间[1.32421875,1.326171875]内必存在一点使x^3-x-1=0
当x=1.325195313时,x^3-x-1≈0.002037>0
所以在区间[1.32421875,1.325195313]内必存在一点使x^3-x-1=0
当x=1.324707031时,x^3-x-1≈-0.000047<0
所以在区间[1.324707031,1.325195313]内必存在一点使x^3-x-1=0
所以方程x^3-x-1=0在区间[1,1.5]内实根的近似值是
x≈1.325(精确到0.001)
如果精确到0.1很容易的,精确到0.001就麻烦多了,好在有电脑帮助,否则无法计算.
图形在百度是个难点,上面的解答应该很详细了,就不画了.
#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("请...
全部展开
#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)<0) //二分法判断函数值包含0的X取值区间
{
xa=xc;
}
else
{
xb=xc;
}
}
while(fx(xc)>pow(10.0,-5)||fx(xc)<-1*pow(10.0,-5));//判断x根是否在接近函数值0的精确范围内
printf("\n 得数为:%f",xc);
}
double fx(double x)
{
return(0.8*pow(x,2)-1-ln(x));//f(x)
}
收起
设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)<0
所以取x=(0.4+0.5)/2=0.45,f3(x)=-0.04,这时f3(x)*f(1)<0
所以再取x=(0.4+0.45)/2=0.425,f4(x)=1.66*10^-4,已经趋近于0
所以近似值约为0.425