/*=============================================================
用递归的方法求n阶勒让德多项式的值
如果n=0 f(x,n)=1;如果n=1,f(x,n)=x;如果n>=1 ,f(x,n)=((2n-1)*x-f(x,n-1)-(n-1)*f(x,n-2))/n
算法分析:1 定义x和n
2 输入x和n
3 用递归进行调用
==============================================================
作者:最后的村长
时间:2009年9月29日
工具:DEV C++
version:1.0
==============================================================*/
#include <stdio.h>
#include <stdlib.h>
double f(int n,double x);
/*=============================================================*/
int main()
{
int n;//定义n和x
double x;
printf("n=");//n和x初始化
scanf("%d",&n);
printf("\nx=");
scanf("%f",&x);
printf("\n%d阶勒让德多项式的值是:%5.2f",n,f(n,x));//输出结果
system("PAUSE");
return 0;
}
double f(int n,double x)//勒让德函数
{
if(n==0)
return 1;
else if (n==1)
return (x);
else if(n>1)
return(((2*n-1)*x-f(n-1,x)-(n-1)*f(n-2,x))/n);
}
评论