24小时热门版块排行榜    

查看: 253  |  回复: 0

冉冉升起93

新虫 (初入文坛)

[求助] 不能求出解析解的方程求数值解,新手求指导

#include<stdio.h>
#include<math.h>
#define step 0.01

void fm();
double fs(double);
double ki;

FILE *fp1;

main()
{
  
   fp1=fopen("fig2a.txt","w";
  ki=0.0;
        fm();
   fclose(fp1);

   fp1=fopen("fig2b.txt","w";
   ki=1000.0;
        fm();
   fclose(fp1);

    fp1=fopen("fig2c.txt","w";
   ki=3000.0;
        fm();
   fclose(fp1);
   
    fp1=fopen("fig2d.txt","w";
  ki=6000.0;
        fm();
   fclose(fp1);
  
}

////////////////////////////////////////////////////////////////////

  void fm()
   {
    float a;
          double t=0.0;
        double a0=0.01;
        long int i;
       
         fprintf(fp1,"t\t a\n",t,a);
                                   
        for(i=0;i<=150;i++)//对时间t的循环
   {          
        //a=a0+fs(a0)*step;
        double result;
   double ks=0.000001, n0=1000,i0=3000,k=200;
   double A,B,C,res1,res2,res3,res4,res,m,mn,a;
  
   //for(i=0;i<1000;i++)//a
   {
            A=(k/ki)*((ki+i0)/k*(1+k*n0)-i0/(1+k*ki+k*n0));
            B=(1+i0/ki)/(1+k*n0);
            C=-i0/(ki*(1+k*ki+k*n0));
                res1=pow((1+k*a),(-A/k));
                res2=pow((n0-a),B);
                res3=pow((n0-a+ki),C);
                res4=exp(-ks*t-m);
                res=res1*res2*res3;
                mn=res-res4;
                if(mn<0.00001)
                {
                fprintf(fp1,"%f\t %f\n",t,a);         
                }
                a=a+0.01;
        }
        t=t+step;
        
        a0=a;
回复此楼

» 猜你喜欢

生物物理
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 冉冉升起93 的主题更新
信息提示
请填处理意见