c語言用遞迴方法求n階勒讓德多項式的值

時間 2021-08-31 08:17:48

1樓:莫道無情

#define _crt_secure_no_warnings#include

#include

double legendre(int n, int x) {if (n == 0) {

return 1;

if (n == 1) {

return x;

return ((2 * n - 1)*x - legendre(n - 1, x) - (n - 1)*legendre(n - 2, x)) / n;

void main() {

int n;

int x;

printf("請輸入n的值和x的值\n");

scanf("%d %d", &n, &x);

printf("p%d(%d) = %f\n", n, x, legendre(n, x));

system("pause");

擴充套件資料:勒讓德多項式

勒讓德多項式是下列勒讓德微分方程的多項式解:

其中n 為正整數。

生成函式

勒讓德多項式的生產函式為

前幾個勒讓德多項式:

正交關係

勒讓德多項式在(-1,1)取決滿足如下的正交關係式:

2樓:

剛剛做了下,比較簡單,注意幾個容易錯誤的地方,一是函式返回值注意是浮點型的,所以函式定義應該是float型或者double型的,不要定義成int型了,第二就是注意遞迴公式中最後那個除以n,是多項式的和整體除以n,不要只看成最後一個因式除以n就可以了(貌似老哥給出的遞迴公式給錯了+…+)。最後一點就是輸出值的時候,因為是浮點型的值輸出應該用%f型,不要用錯了就ok啦。

3樓:金魚

#include

#include

float myfunction(int n,int x)else if (1 == n)

else

}int main()

4樓:匿名使用者

根據上面的表示式,我們知道了n = 0,n = 1的表示式的值。讓n >= 1是,它會產生遞迴呼叫,因此我們能很快的寫出程式,**如下:

#include

float myfunction(int,int);

int main(int argc, char *argv)float myfunction(int n,int x)else if (1 == n)

else}

程式設計,求n階勒讓德多項式(遞迴)

5樓:願之守護者

#include

#include

float myfunction(int n,int x)else if (1 == n)

else

}int main()

c語言:用遞迴方法編寫程式,求n階勒讓德多項式的值

6樓:莫道無情

#define _crt_secure_no_warnings#include

#include

double legendre(int n, int x) {if (n == 0) {

return 1;

if (n == 1) {

return x;

return ((2 * n - 1)*x - legendre(n - 1, x) - (n - 1)*legendre(n - 2, x)) / n;

void main() {

int n;

int x;

printf("請輸入n的值和x的值\n");

scanf("%d %d", &n, &x);

printf("p%d(%d) = %f\n", n, x, legendre(n, x));

system("pause");

擴充套件資料:勒讓德多項式

勒讓德多項式是下列勒讓德微分方程的多項式解:

其中n 為正整數。

生成函式

勒讓德多項式的生產函式為

前幾個勒讓德多項式:

正交關係

勒讓德多項式在(-1,1)取決滿足如下的正交關係式:

7樓:

double pn(double n,double x)main()

這個比較簡單

但是當n,x過大就不行了

不知道是不是超出範圍

望樓主採納

8樓:匿名使用者

#include

#include

float myfunction(int n,int x)else if (1 == n)

else

}int main(int argc, char *argv)

c語言 用遞迴法求n階勒讓德多項式的值

9樓:來自桃花江助人為樂的銀柳

#include

float p (int n,int x)else if(n==0)

else if (n==1)

else if (n>1)

return f;

}void main ()

10樓:

#include

float p (int n,int x)void main ()

程式已經可以執行了,但不知道這是幹嘛的。。。

用遞迴方法編寫程式 求n階勒讓德多項式的值

11樓:風若遠去何人留

遞迴公式

1 (n=0)

pn(x)=x (n=1)

((2n-1)xpn-1(x)-(n-1)pn-2(x))/n (n>1)

**:#include

float myfunction(int n,int x)else if (1 == n)

else

}int main()

.用遞迴方法求n階勒讓德多項式的值,遞迴公式為

12樓:聽不清啊

#include "stdio.h"

double fun(int n,double x){if(n==0)return 1;

else if(n==1)return x;

else return ((2*n-1)*x*fun(n-1,x)-(n-1)*fun(n-2,x))/n;

int main()

{int n;

double x;

printf("input n&x:");

scanf("%d,%lf",&n,&x);

printf("p%d(%g)=%.2lf\n",n,x,fun(n,x));

return 0;

13樓:雲彩飛揚舞

legendre多項式有三項遞推關係(n+1)p_(x)=(2n+1)xp_n(x)-np_(x)p_0(x)=1,p_1(x)=x按這個遞推關係算就行了

c語言 用遞迴法求n階勒讓德多項式的值

保冬萱 如下 include define x 2 float p int n main float p int n 沒有執行果,改了點語法錯誤,你試試,不行追問就行 具體 如下 include main float p int n 1主函式在後 2定義常量在主函式前面 3if的條件我看有點暈,把題...

c語言,用遞迴方法求一個整數a的n次方

long long p int a,int n 這就是那個遞迴的函式,主函式自己寫一下吧。c語言 用遞迴方法求x的n次方 兩個錯誤 1.按演算法n小於0時,62616964757a686964616fe59b9ee7ad9431333365656633y 1 fun x,n 1 x 2.第二個條件應...

c語言遞迴求階乘,c語言怎麼用遞迴呼叫函式的方法求n的階乘?

問明 舉例 用遞迴方法求n include int main int n int y printf input a integer number scanf d n y fac n printf d d n n,y return 0 int fac int n int f if n 0 printf...