num_diff.cpp

来自「Numerical Differentiation Algorithm.」· C++ 代码 · 共 52 行

CPP
52
字号


//Numerical Differentiation using Newton's forward formula

#include<stdio.h>
#include<conio.h>
main()
{
 int n,i,j,f,k;
 float y[20],x[20][20],d,u,h,x1,v,w;
 printf("How many values do u want:");
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
   printf("Enter x[%d],y[%d]",i+1,i+1);
 	scanf("%f%f",&y[i],&x[i][0]);
 }
 do{
 printf("\nEnter the value of x");
 scanf("%f",&x1);
 h=y[1]-y[0];
 u=(x1-y[0])/h;
 for(i=1;i<n;i++)
 {
 	for(j=0;j<n-i;j++)
   {
   	x[j][i]=x[j+1][i-1]-x[j][i-1];
   }
 }
 d=x[0][1];
 f=1;
 for(i=2;i<n;i++)
 {
   f=f*i;
   w=0;
   for(k=0;k<i;k++)
   {
      v=1.0;
      for(j=0;j<i;j++)
   	{
         if(j!=k)
       	v=v*(u-j);
      }
      w=w+v;
   }
 	d=d+((w*x[0][i])/f);
 }
 printf("The reqd value is:%f",d/h);
 printf("\n\nDo you want to continue(y/n)");
 }while(getch()=='y');
}

⌨️ 快捷键说明

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