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

📄 龙贝格算法.c

📁 VC环境下数值算法 大家可以参考实现一些数值算法!!!! 请多多支持呀!
💻 C
字号:
#include<iostream.h>
#include<math.h>
int g(int k)
{
	int i,total;
	total=1;
	for(i=1;i<=k;i++)
	total*=2;
	return total;
}
float f(float x)
{

	if(x!=0)
		return (float)sin(x)/x; 
	else
		return 1;
}
main()
{
	 int k0,k1,k,tag,i;
	 float a,b,err,e1,t[50],s[50],c[50],r[50],sum;
	 cin>>a>>b>>err>>k0>>k1;
	 t[0]=(b-a)*(f(0)+f(1))/2;
	 k=1;
	 tag=0;
   do
   {
	 if(k==1)
     {t[1]=t[0]/2+(b-a)*f(a+(b-a)/2)/2;
      s[0]=(4*t[1]-t[0])/3;
     }
    if(k==2)
     {
	  t[2]=t[1]/2+(b-a)*(f(a+(b-a)/4)+f(a+3*(b-a)/4))/4;
      s[1]=(4*t[2]-t[1])/3;
      c[0]=(16*s[1]-s[0])/15;
     }
    if(k>=3)
     {
	  sum=0;
      for(i=1;i<=g(k-1);i++)
       sum+=f(a+(2*i-1)*(b-a)/g(k));
      t[k]=t[k-1]/2+(b-a)*sum/g(k);
      s[k-1]=(4*t[k]-t[k-1])/3;
      c[k-2]=(16*s[k-1]-s[k-2])/15;
      r[k-3]=(64*c[k-2]-c[k-3])/63;
     }
    if(k>=k1)
     {e1=(float)fabs(r[k-3]-r[k-4]);
      if(e1<e)
       {
	     cout<<"k"<<"    T     "<<"    S      "<<"    C       "<<"      R      \n";
	     cout<<0<<   t[0]<<"\n";
	     cout<<1<<   t[1]<<   s[0]<<"\n";
	     cout<<2<<   t[2]<<   s[1]<<   c[0]<<"\n";
	     cout<<3<<   t[3]<<   s[2]<<   c[1]<<   r[0]<<"\n";
	     tag=1;
       }
     }
    k++;
   }while(tag==0&&k<k0);
   if(tag==0||k>=k0)
   cout<<"error!\n";
}

⌨️ 快捷键说明

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