教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

函数递归之求n阶勒让德多项式

来源:网络收集 时间:2026-08-31
导读: C++,有答案 问题 H: C语言习题 求n阶勒让德多项式 题目描述 用递归方法求n阶勒让德多项式的值,递归公式为 n=0 pn(x) =1 n=1 pn(x) =x n1 pn(x) =((2n-1)*x* pn-1(x) -(n-1)* pn-2(x))/n 结果保留2位小数。 输入 n和x的值。 输出 pn(x)的值。 #include iostr

C++,有答案

问题 H: C语言习题 求n阶勒让德多项式 题目描述 用递归方法求n阶勒让德多项式的值,递归公式为

n=0 pn(x) =1

n=1 pn(x) =x

n>1 pn(x) =((2n-1)*x* pn-1(x) -(n-1)* pn-2(x))/n

结果保留2位小数。

输入

n和x的值。

输出

pn(x)的值。

#include <iostream>

#include <cmath>

#include <iomanip>

using namespace std;

double polya(int n,int x)

{

double a;

if(n==0) a=1;

if(n==1) a=x;

if(n>1) a=((2*n-1)*x*polya(n-1,x)-(n-1)*polya(n-2,x))/n;

return a;

}

int main()

C++,有答案

{

int x,n;

cin>>n>>x;

cout<<setiosflags(ios::fixed)<<setprecision(2);

cout<<polya(n,x)<<endl;

return 0;

}

递归的原理就是先给出第一项或前两项的结果,然后其余的项要通过第一项或前两项来推算出;

所以自定义函数时,要给出第一项或前两项的值(if(n==0) a=1; if(n==1) a=x;);

利用递归的原理,根据其余项的公式给出计算方法(if(n>1) a=((2*n-1)*x*polya(n-1,x)-(n-1)*polya(n-2,x))/n;);

在主函数中,输入数据(cin>>n>>x;),按照题目要求保留两位小数(cout<<setiosflags(ios::fixed)<<setprecision(2);)输出结果(cout<<polya(n,x)<<endl;)!

函数递归之求n阶勒让德多项式.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1934588.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)