基本递归(1)勒让德多项式

简单概括递归的用法:

**找到通顶式,在主函数内调用**

/*
* Copyright (c) 2016, 北京市QY小学
* All rights reserved.
* 作 者: 刘君翼
* 完成日期:2016 年 10 月 11 日
* 版 本 号:v1.0
* 输入描述:
* 问题描述: 用递归方法求n阶勒让德多项式的值
* 程序输出:
* 问题分析:略
* 算法设计:略
*/

#include<iostream>

using namespace std;

int main()
{
  double p(double n,double x);
  double s,n,x;
  cout<<"请输入n与x的值:";
  cin>>n>>x;
  s=p(n,x);
  cout<<"则多项式的值为:"<<s<<endl;
  return 0;
}

double p(double n,double x)
{
  double s; //函数名与变量名不能相同
  if(n==0)
    s=1;
  else if(n==1)
    s=x;
  else
    s=((2*n-1)*x-p((n-1),x)-(n-1)*p((n-2),x))/n;//递归
return s;
}

时间: 2024-11-05 12:10:14

基本递归(1)勒让德多项式的相关文章

C语言之函数调用13—递归法求N阶勒让德多项式的值

//递归法! /* ======================================================= n阶勒让德多项式,n=1时,Pn(x)=x;n>=1时, Pn(x)=((2n-1)x-Pn-1(x)-(n-1)Pn-2(x))/2. ======================================================= */ #include <stdio.h> #include <math.h> double p(

C语言之函数调用14—递归法打印勒让德多项式前N项

//递归法 /* ================================================================== 题目:勒让德多项式 ================================================================== */ #include <stdio.h> double p(int n,double x) { if(n==0)return 1.0; else if(n==1)return x; else

OJ刷题之《求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)的值. 样例输入 2 2 样例输出 5.50 提示 主函数已给定如下,提交时不需要包含下述主函数 /* C代码 */ int main() { int x,n; scanf("%d%d",&

4.18n阶勒让德多项式求解

Q:编写程序,输入正整数n和任意数x,求出勒让德多项式的值Pn(x) #include <iostream> #include<cstdio> using namespace std; float Rand(int n,float x) { if(n==0) return 1; else if(n==1) return x; else return ((2*n-1)*x-Rand(n-1,x)-(n-1)*Rand(n-2,x))/n; } int main() { int n;

8.13 用递归方法求n阶勒让德多项式的值

#include <stdio.h> int main(){ double n,x,y; double p(double n,double x); printf("input n,x(n>=0):\n"); scanf("%lf,%lf",&n,&x); //方程pn(x) y=p(n,x); printf("the result is %lf\n",y); } double p(double n,double

P219 用递归方法求n阶勒让德多项式

#include<stdio.h>int main() { int N; float x; float P(int N,float x); scanf("%d%f",&N,&x); printf("%f\n",P(N,x)); return 0;} float P(int N,float x){ if(N==0) return 1; else if(N==1) return x; else return ((2*N-1)*x-P(N-1,

c语言-勒让德多项式求解+时间测定

#include<iostream>#include<ctime>#include<cstdlib>using namespace std; float LRD(int n,double x){ double s; if(n==0) s=1.0; else if(n==1) s=x; else s=((2*n-1)*x*LRD(n-1,x)-(n-1)*LRD(n-2,x))/n; return s;} int main(){ int n; double sum,x;

【C++】递归 课后习题3-13、3-14

// // main.cpp // 3-13递归Fibonacci级数 // // Created by T.P on 2018/3/21. // Copyright ? 2018年 T.P. All rights reserved. // //课本习题3-13.用递归的方法编写函数求Fibonacci级数, //公式为:Fn=Fn-1 + Fn-2 (n>2),F1=F2=1 #include <iostream> using namespace std; int fibon(int

多项式多点求值和插值

本文以存板子为主= = 对于比较一般的情况,n次多项式在n个点求值和用n个点插值可以做到,并且这也是下界. 多项式多点求值 给一个多项式F和一堆值,求出. 设,. 那么对于,,对于,.递归即可. 多项式多点插值 给一堆值.,要求求出一个n-1次多项式满足. 考虑拉格朗日插值:. 我们先考虑对于每个i,如何求出.设,那么我们就是要求. 取的时候这个式子分子分母都为0,那么我们可以用洛必达法则,这个式子就等于.那么我们可以用多点求值求出每个. 设为,现在我们就是要求,显然可以分治FFT. 具体地,还