⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 erfen.cpp

📁 计算方法经典算法(弦截法二分法牛顿迭代法龙贝格算法)
💻 CPP
字号:
//用二分法求一元方程3*x*x*x+6*x*x+3*x+5=0在(x1,x2)区间的根。

                                                               

//若方程3*x*x*x+6*x*x+3*x+5=0在(x1,x2)区间内有实根,则函数
//的曲线应当在根这一点上与x轴有一个交点,在根附近的左右区间
//内,函数的值的符号应当相反。利用这一原理,逐步缩小区间的范
//围,保持在区间的两个端点处的函数值符号相反,就可以逐步逼近
//函数的根(具体过程参考程序注解)。 
#include "iostream.h"
#include "math.h"

double f(double x)
{
	return 3*x*x*x+6*x*x+3*x+5;
}
void erfen(double l=0.000001)
{
	float x0,x1,x2;
	do
	{	cout<<"Please input x1,x2:"<<endl;
		cin>>x1;
		cin>>x2;
	}while(f(x1)*f(x2)>0);     //保证在指定的范围内有根,即fx的符号相反

	do
	{
		x0 = (x1+x2)/2;                     //取出X1和X2的中间点
		if(f(x0)*f(x1)<0)x2 = x0;           //若fx0和fx1符号相反则用x0点代替x2点  
		else
			x1 = x0;                        //否则用x0来代替x1点
	}while(fabs(f(x0))>=l);        //判断x0点的函数与x轴的距离             
	cout<<"x="<<x0<<endl;                  //输出方程的根(x0)
}

void main()
{
	erfen();
}

 

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -