c新手吧 关注:8,558贴子:48,066
  • 2回复贴,共1

求解!!!用c语言编译龙格库塔算法解微分方程组

取消只看楼主收藏回复

来个大神帮帮忙~~


1楼2013-06-14 20:21回复
    附下我自己编的 但是运行结果有错 求改正!


    2楼2013-06-14 20:23
    回复
      2026-03-18 05:15:38
      广告
      不感兴趣
      开通SVIP免广告
      #include<stdio.h>
      #include<math.h>
      #define f(x,y,z) x*(1-0.1*y)
      #define g(x,y,z) y*(-0.5+0.02*x) void main(void)
      {
      double x,y,z,x0,y0,z0,k1,k2,k3,k4,L1,L2,L3,L4,t,h;
      printf("Enter x0,y0,h:");
      scanf("%lf%lf%lf",&x0,&y0,&h);
      x=x0;
      y=y0;
      for(t=0;t<=25;t=t+h){
      k1=f(x,y,z);
      L1=f(x,y,z);
      k2=f(x+h/2,y+k1*h/2,z+L1*h/2);
      L2=f(x+h/2,y+k1*h/2,z+L1*h/2);
      k3=f(x+h/2,y+k2*h/2,z+L2*h/2);
      L3=f(x+h/2,y+k2*h/2,z+L2*h/2);
      k4=f(x+h/2,y+k3*h,z+L3*h);
      L4=f(x+h/2,y+k3*h,z+L3*h);
      printf("%lf\t%lf\t",x,y);
      y=y+h*(k1+2*k2+2*k3+k4)/6;
      x=z+h*(k1+2*k2+2*k3+k4)/6;
      }
      printf("t=%lf\t xn=%lf\t yn=%lf\n",t,x,y);
      }


      3楼2013-06-14 20:24
      回复