【咀嚼C语言】用递归法求n阶勒让德多项式的值

【要求】

用递归法求n阶勒让德多项式的值,递归公式为:

        1                    (n=0)

Pn(x)=    x                    (n=1)

      ((2n-1)·x-Pn-1(x)-(n-1)·Pn-2(x))/n     (n≥1)

这个挺简单的,就不多说了。直接贴代码。

 1 #include<stdio.h>
2 int main()
3 {
4 int ctu=0;
5 do
6 {
7 float Legendre(int,float);
8 int n;float x;
9 printf("plez input n,x\n");
10 scanf("%d%f",&n,&x);
11 if(n<0)
12 printf("\aerror, n must larger than 0");
13 else
14 printf("Pn(x)=%.2f",Legendre(n,x));
15 printf("\npress 1 to continue, or anykey to quit\n");
16 scanf("%d",&ctu);
17 }while(ctu==1);
18 return 0;
19 }
20
21 float Legendre(int n,float x)
22 {
23 float a;
24 if(n==0)a=1;
25 else
26 if(n==1)a=x;
27 else
28 a=((2*n-1)*x-Legendre(n-1,x)-(n-1)*Legendre(n-2,x))/n;
29 return (a);
30 }

 

 新浪微博,欢迎关注,欢迎各种交流

posted @ 2011-11-13 20:32  风自云  阅读(9084)  评论(0)    收藏  举报