用c语言编写递归函数 R_Legendre ( n, x),计算 n 阶勒让德多项式的值
时间: 2024-05-06 09:17:44 浏览: 103
C语言简单实现求n阶勒让德多项式的方法
5星 · 资源好评率100%
以下是用C语言编写的递归函数 R_Legendre(n, x) 计算 n 阶勒让德多项式的值:
```c
#include <stdio.h>
double R_Legendre(int n, double x) {
if (n == 0) {
return 1;
} else if (n == 1) {
return x;
}
double P_n_minus_2 = 1;
double P_n_minus_1 = x;
double P_n;
for (int i = 2; i <= n; i++) {
P_n = ((2 * i - 1) * x * P_n_minus_1 - (i - 1) * P_n_minus_2) / i;
P_n_minus_2 = P_n_minus_1;
P_n_minus_1 = P_n;
}
return P_n;
}
int main(void) {
int n = 3;
double x = 0.5;
double result = R_Legendre(n, x);
printf("P_%d(%.2f) = %f\n", n, x, result);
return 0;
}
```
该函数中使用了递推公式求解勒让德多项式的值,避免了不必要的递归调用。结果与调用 math.h 中的函数求解结果相同。
阅读全文