C语言 | 用递归求n阶勒让德多项式

举报
C语言入门到精通 发表于 2021/02/12 00:42:20 2021/02/12
【摘要】 例72:C语言编程用递归方法求n阶勒让德多项式。解题思路:勒让德多项式是描述矩形表面和口径的另外一组多项式集合,它的优点是具有正交性。由于存在正交性条件,高阶项系数趋于零,并且增加和删除一个项对其他项没有影响。勒让德方程的解可写成标准的幂级数形式。当方程满足 |x| < 1 时,可得到有界解(即解级数收敛)。并且当n 为非负整数,即n = 0, 1, 2,... 时,在x = ...

例72:C语言编程用递归方法求n阶勒让德多项式。

解题思路:勒让德多项式是描述矩形表面和口径的另外一组多项式集合,它的优点是具有正交性。由于存在正交性条件,高阶项系数趋于零,并且增加和删除一个项对其他项没有影响。

勒让德方程的解可写成标准的幂级数形式。当方程满足 |x| < 1 时,可得到有界解(即解级数收敛)。并且当n 为非负整数,即n = 0, 1, 2,... 时,在x = ± 1 点亦有有界解。这种情况下,随n 值变化方程的解相应变化,构成一组由正交多项式组成的多项式序列,这组多项式称为勒让德多项式

源代码演示:

#include<stdio.h>//头文件 
int main()//主函数 
{
  int temp,num;//定义整型变量 
  float num_Polynomial;//定义浮点型变量 
  float polynomial(int,int);//函数声明 
  printf("输入num & temp:");//提示语句 
  scanf("%d,%d",&num,&temp);//键盘输入 
  num_Polynomial=polynomial(num,temp); //求值 
  printf("Polynomial=%6.2f\n",num_Polynomial);//输出结果 
  return 0;//主函数返回值为0 
}
float polynomial(int number,int x)//自定义函数 
{
  if(number==0)//if语句判断number符合哪一个条件 
  { return(1);
  }
  else if(number==1)
  { return(x);
  }
  else
  { return(2*number-1)*x*polynomial((number-1),x)-(number-1)*polynomial((number-2),x)/number;
  }
}

编译运行结果如下:

输入num & temp:5,5
Polynomial=2924185.75

--------------------------------
Process exited after 4.81 seconds with return value 0
请按任意键继续. . .

以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~

C语言 | 用递归求n阶勒让德多项式 mp.weixin.qq.com

文章来源: zhuanlan.zhihu.com,作者:小林C语言,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuanlan.zhihu.com/p/347865607

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。