rtbis.cpp
来自「工程算法 这是一个很有用的工程数值算法集锦」· C++ 代码 · 共 37 行
CPP
37 行
double rtbis(double x1,double x2,double xacc)
{
int jmax,j;
double fmid,f,xmid,dx,t;
jmax = 40;
fmid = func(x2);
f = func(x1);
if ((f * fmid) >= 0.0)
{
cout<< "root must be bracketed for bisection."<<endl;
}
if (f < 0.0)
{
t = x1;
dx = x2 - x1;
}
else
{
t = x2;
dx = x1 - x2;
}
for (j = 1; j<=jmax; j++)
{
dx = dx * 0.5;
xmid = t + dx;
fmid = func(xmid);
if (fmid <= 0)
{
t= xmid;
}
if ((fabs(dx) < xacc) || (fmid == 0)) break;
}
return t;
cout<< "too many bisections"<<endl;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?