加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

欧拉公式C语言编程

(2011-09-27 13:10:42)
标签:

欧拉公式

c语言

it

分类: C/Cpp/Asm

#include"stdio.h"
#include"math.h"
#include"conio.h"
#define N  11

double f(double x,double y)

 {
   return y-2*x/y;
   }

 void Euler()
 {
   double x[N],y[N],z[N],e[N];
   int n;
   clrscr();
   printf("\n");
   for(n=0;n<N;n++)
   x[n]=n*0.1;

   for(n=0;n<N;n++)
   z[n]=sqrt(1+2*x[n]);

   y[0]=1;
     for(n=0;n<N-1;n++)
     y[n+1]=y[n]+(x[n+1]-x[n])*f(x[n],y[n]);

     for(n=0;n<N;n++)
     {e[n]=y[n]-z[n];
      printf("y[n]=%5.4f  z[n]=%5.4f   e[n]=%5.4f\n",y[n],z[n],e[n]);
        }

       getch();
      return;
    }


void B_Euler()
 {
   double t=0.0, x[N],y[N],z[N],e[N];
   int n;
   clrscr();
    printf("\n");
   for(n=0;n<N;n++)
   x[n]=n*0.1;

   for(n=0;n<N;n++)
   z[n]=sqrt(1+2*x[n]);

   y[0]=1;
     for(n=0;n<N-1;n++)
   { t=f(x[n+1],y[n]+(x[n+1]-x[n])*f(x[n],y[n]));
     y[n+1]=y[n]+0.5*(x[n+1]-x[n])*(t+f(x[n],y[n]));
    }


     for(n=0;n<N;n++)
     {e[n]=y[n]-z[n];
      printf("y[n]=%5.4f  z[n]=%5.4f   e[n]=%5.4f\n",y[n],z[n],e[n]);
        }

        getch();
      return;
    }

 

void main()
{
  int c;
 while (1)
{ clrscr();
 puts(" 1. Euler:\n");
 puts(" 2. B_Euler\n ");
 puts(" 0. exit.\n");
 puts(" choice: ");
     c=getchar();
  switch(c)
    { case '1': Euler(); break;
      case '2': B_Euler();break;
      case '0':   clrscr(); exit(0);
      default:    break;
    }
  }
}

 

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有