d11r3.cpp
来自「工程算法 这是一个很有用的工程数值算法集锦」· C++ 代码 · 共 62 行
CPP
62 行
#include "iostream.h"
#include "math.h"
double func(double x)
{
return bessj0(x);
}
void main()
{
//program d11r3
//driver for routine brent
double b,ax,bx,cx,fa,fb,fc,tol = 0.000001;
double xmin,eql = 0.0001;
double amin[21];
int iflag,i,nmin = 0;
cout<<endl;
cout<<"minima of the function Bessj0"<<endl;
cout<<endl;
cout<<"min.# x Bessj0(x) Bessj1(x)"<<endl;
cout.setf(ios::fixed|ios::left);
cout.precision(6);
for (i = 1; i<=100; i++)
{
ax = i;
bx = i + 1.0;
mnbrak(ax, bx, cx, fa, fb, fc);
b = brent(ax, bx, cx, tol, xmin);
if (nmin == 0)
{
amin[1] = xmin;
nmin = 1;
cout<<" "<<nmin<<" ";
cout.width(16); cout<<xmin;
cout.width(16); cout<<bessj0(xmin);
cout.width(16); cout<<bessj1(xmin);
cout<<endl;
}
else
{
iflag = 0;
for (int j = 1; j<=nmin; j++)
{
if (fabs(xmin - amin[j]) <= eql * xmin)
{
iflag = 1;
}
}
if (iflag == 0)
{
nmin = nmin + 1;
amin[nmin] = xmin;
cout<<" "<<nmin<<" ";
cout.width(16); cout<<xmin;
cout.width(16); cout<<bessj0(xmin);
cout.width(16); cout<<bessj1(xmin);
cout<<endl;
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?