legendp2.c

来自「《数据结构》教材源程序,可以让你轻松的根据教材学习数据结构」· C语言 代码 · 共 33 行

C
33
字号
float p(int n, float x)
 {/*求勒让德多项式值的非递归算法*/ 
   float pre1,pre2,a,b,valuep;
   int i;
   if (n==0) return(1.0);        /*n=0时直接输出勒让德多项式的值*/
    else if (n==1) return(x);    /*n=1时直接输出勒让德多项式的值*/
         else {                  /*使用递推技术求第n阶勒让德多项式的值*/
                pre1=1.0;        /*pre1用于记录第i-2阶勒让德多项式的值*/
                pre2=x;          /*pre2用于记录第i-1阶勒让德多项式的值*/
                for (i=2;i<=n;++i)
                  { 
                    a=2*i-1;    
                    b=i-1;
                    valuep=(a*pre2*x-b*pre1)/i; /*求第i阶勒让德多项式的值*/
                    pre1=pre2;   /*用pre1跟踪pre2当前的值*/
                    pre2=valuep;  /*用pre2跟踪valuep当前的值*/
                   }
                 return(valuep);
                 }
   }
                    
main()
 {
   int i,n;
   float x,y;
   printf("input n and x:");
   scanf("%d",&n);
   scanf("%f",&x);
   for (i=0;i<=n;++i)
     { y=p(i,x);
       printf("n=%d,p=%10.5f\n",i,y);
      }
  }

⌨️ 快捷键说明

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