首页 > 试题广场 >

已知函数poly是用递归方法计算x的 n阶勒让德多项式的值。

[问答题]
已知函数poly是用递归方法计算x的 n阶勒让德多项式的值。数学函数如下:
请写出C++函数,其参数为x和n。并求当x为1.2, n为8时,其poly函数的值。

推荐
//-----------------------------------
//EX0501_1.cpp
//勒让德多项式 递归版
//-----------------------------------
#include<iostream>
using namespace std;
//-----------------------------------
double poly(int n, double x){
  if(n==0) return 1;
  if(n==1) return x;
  return ((2*n-1)*x*poly(n-1,x)-(n-1)*poly(n-2,x))/n;
}//----------------------------------
int main(){
  cout<<poly(8, 1.2)<<"\n|;
}//----------------------------------
//-----------------------------------
//EX0501_2.cpp
//勒让德多项式 非递归版
//-----------------------------------
#include<iostream>
using namespace std;
//----------------------------------- double poly(int n, double x){
  if(n==0) return 1.0;
  if(n==1) return x;
  double au;
  double as =1.0;
  double at =x;
  for(int n=2; n<=8; ++n, as =at, at=au)
    au = ((z*n-1)*x*at-(n-1)*as)/n;
  return au;
}//----------------------------------
int main(){
  cout<<poly(8, 1.2)<<"\n";
}//----------------------------------
运行结果为34.3151
发表于 2018-05-07 20:36:00 回复(0)