c++用递归法求n阶勒让德多项式的值!式子是这个 1 (n=0) Pn(x)= x (n=1) ((2n-1)·x - Pn-1 (x)-(n-1)·Pn- 2(x))/n (n>=1)我编的程序如下#include using namespace std;double pn(int n,int x){double z; if(n==0)z=1;if(n==1)z=x;if(n>1)z
来源:学生作业帮助网 编辑:作业帮 时间:2024/12/01 18:14:40
c++用递归法求n阶勒让德多项式的值!式子是这个 1 (n=0) Pn(x)= x (n=1) ((2n-1)·x - Pn-1 (x)-(n-1)·Pn- 2(x))/n (n>=1)我编的程序如下#include using namespace std;double pn(int n,int x){double z; if(n==0)z=1;if(n==1)z=x;if(n>1)z
c++用递归法求n阶勒让德多项式的值!
式子是这个
1 (n=0)
Pn(x)= x (n=1)
((2n-1)·x - Pn-1 (x)-(n-1)·Pn- 2(x))/n (n>=1)
我编的程序如下
#include
using namespace std;
double pn(int n,int x)
{double z;
if(n==0)
z=1;
if(n==1)
z=x;
if(n>1)
z=((2*n-1)*x-pn(n-1,x)-(n-1)*pn(n-2,x))/n;
return z;}
int main()
{int a,b;
couta>>b;
cout
c++用递归法求n阶勒让德多项式的值!式子是这个 1 (n=0) Pn(x)= x (n=1) ((2n-1)·x - Pn-1 (x)-(n-1)·Pn- 2(x))/n (n>=1)我编的程序如下#include using namespace std;double pn(int n,int x){double z; if(n==0)z=1;if(n==1)z=x;if(n>1)z
// 很简单,应该是答案印错了
// 不过这样才是正确的递归方式
double legendre(int n, double x)
{
if (n == 0) return 1;
else if (n == 1) return x;
else return ( (2*n-1)*x - legendre(n-1,x) - (n-1)*legendre(n-2,x) ) / n;
}