【咀嚼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 }


浙公网安备 33010602011771号