24小时热门版块排行榜    

查看: 774  |  回复: 0

muqiuyan

木虫 (小有名气)

[交流] 【求助】type mismatch in redeclaration问题

利用Simpson方法计算定积分,程序如下;


#incude "stdio.h"  
#include "math.h"  

double cal_c(double zz,double D,double x)
{
  double c,k=1.380658e-23,T=273.15;
  double f;
        c=simps(0.0,D,1e-10,f);        /* 用变步长辛卜生求积法积分*/
        c=4.0*3.1415*c/k/T;
     printf(">> simp: c=%.4e\n",c);
        return(c);
}


double f(x) /*要进行计算的被积函数*/  
double x;  
{double seigerma=3.2536e-10,rad=0.300e-10,k=1.380658e-23,ipuseilong=152.68,T=273.15;
double derlta_4,derlta_5,derlta_10,derlta_11,oumiga_0,oumiga_1,oumiga;
double y,D,zz;      
        derlta_4=(pow((1.0-x/D-rad/D),-4)-pow((1.0+x/D-rad/D),-4))/4.0;
        printf("derlta_4=%e\n",derlta_4);
        derlta_5=(pow((1.0-x/D-rad/D),-5)-pow((1.0+x/D-rad/D),-5))/5.0;
        printf("derlta_5=%e\n",derlta_4);
        derlta_10=(pow((1.0-x/D-rad/D),-10)-pow((1.0+x/D-rad/D),-10))/10.0;
        derlta_11=(pow((1.0-x/D-rad/D),-11)-pow((1.0+x/D-rad/D),-11))/11.0;
       
        oumiga_0=pow(seigerma/D,11)*seigerma*(derlta_10+rad/D*derlta_11)/x;
        oumiga_1=pow(seigerma/D,5)*seigerma*(derlta_4+rad/D*derlta_5)/x;
       
        oumiga=2.0*zz*ipuseilong*(oumiga_0-oumiga_1);


   y=exp(-oumiga/T)*x*x;
    return(y);  
}  


double simps(a,b,eps,f) /*辛普森算法*/  
double a,b,eps,(*f)(); /*a为积分下限,b为积分上限,eps是希望达到的精度*/  
{  
    int n,k;  
   double h,t1,t2,s1,s2,ep,p,x;  
    n=1; h=b-a;  
    printf("h=%e\n",h);
  t1=((*f)(a)+(*f)(b))*h/2.0;  /*用梯形公式求出一个大概的估值*/  

        printf("t1=%e\n",t1);
   s1=t1;  
    printf("s1=%e\n",s1);
        ep=eps+1.0;  
    while (ep>=eps)  
{  
p=0.0;  
for (k=0;k<=n-1;k++)  
{  
x=a+(k+0.5)*h;  
p=p+(*f)(x);  
}  
printf("p=%e\n",p);

t2=(t1+h*p)/2.0;  
s2=(4.0*t2-t1)/3.0;  
printf("s2=%e\n",s2);
ep=fabs(s2-s1);  
t1=t2; s1=s2; n=n+n; h=h/2.0;  
}  
    return(s2);  
}  


void main()
{ int i;
  double zz[2]={20.0,24.0},D[2]={3.95e-10,4.33e-10};
  double c[2],x;
for(i=0;i<2;i++)
{
  c=cal_c(zz,D,x);
  printf("c[%d]=%.4e\n",i,c);
}

}
运行提示 type mismatch in redeclaration of "simps"
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 muqiuyan 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见