C++题“已知计算x的n阶勒让德多项式的公式如下:”

来源:百度知道 编辑:UC知道 时间:2024/05/27 11:43:26
已知计算x的n阶勒让德多项式的公式如下:

Pn(x)={
1 (n=0)

X (n=1)

(x(2n-1) Pn-1(x)-(n-1)Pn-2(x))/n (n>1)

请编写递归程序实现

#include<iostream>
using namespace std;
double p(int n,float x);//函数声明
void main()
{
/************************勒让德多项式*************************************/
cout<<p(3,0.2)<<endl;

}
double p(int n,float x))//函数体

{
if(n==0) return 1;
else if(n==1) return x;
else return ((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x))/n;
}

#include<stdio.h>
void main()
{
int x,n;
float p(int,int);
printf("\ninput n& x:");
scanf("%d,%d",&n,&x);
printf("n=%d,x=%d\n",n,x);
printf("P%d(%d)=%6.2f\n",n,x,p(n,x));
}

float p(int n,int x)
{
if(n==0)
return 1;
else if(n==1)
return x;
else
return((2*n-1)*x*p((n-1),x)-(n-1)*p((n-2),x))/n;
}