永发信息网

用递归法求勒让德多项式的值的算法?帮忙修改

答案:1  悬赏:30  手机版
解决时间 2021-05-04 17:21
  • 提问者网友:杀生予夺
  • 2021-05-04 01:52

书上有这样一个题,让用递归法求勒让德多项式的值,要求用函数调用做,我做了·,但是不知道对不对·,主要是在递归那不懂,希望高手指教额!

#include<stdio.h>
void main()
{
int L_R(int x);
int a,b;
scanf("%d",&a);
printf("\n");
b=L_R(a);
printf("a=%d,Le Rang De duo xiang shi de zhi is:%d\n",a,b);
}


int L_R(int x)
{
int z;
if(x==0)
z=1;
else if(x==1)
z=x;
else if(x>=1)
z=((2*x-1)*x-L_R(x-1)-(x-1)*L_R(x-2))/x;
return(z);
}希望能够尽量详细点额!谢谢哈!

最佳答案
  • 五星知识达人网友:老鼠爱大米
  • 2021-05-04 02:05
首先要知道勒让德多项式递推关系为:根据这个关系即可编程。你那样编的话就是默认让阶数和X的值相同,我还是认为你最好把函数编成int L_R(int n,double x)会比较好点。我的答案是:#include<stdio.h>void main() { double pn(double ,double ) ;double n,x; scanf("%lf%lf",&n,&x); printf("%lf",pn(n,x));
} double pn(double n,double x) { if(n==0)return(1); else if(n==1) return(x); else return(((2*n-1)*x-pn(n-1,x)-(n-1)*pn(n-2,x))/n); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯