勒让德多项式怎么编程

时间:2025-01-28 13:36:41 网络游戏

JavaScript

```javascript

function polynomial(number, x) {

if (number === 0) {

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;

}

}

function main() {

const num = parseInt(prompt("输入num:"));

const temp = parseInt(prompt("输入temp:"));

const num_Polynomial = polynomial(num, temp);

alert(`Polynomial=${num_Polynomial.toFixed(2)}`);

}

main();

```

C语言

示例1

```c

include

float p(float x, int n) {

if (n == 0) {

return 1;

} else if (n == 1) {

return x;

} else {

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

}

}

int main() {

int n;

float x;

printf("input n:");

scanf("%d", &n);

printf("input x:");

scanf("%f", &x);

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

return 0;

}

```

示例2

```c

include

double Pn(double x, int n) {

if (n == 0) {

return 1.0;

} else if (n == 1) {

return x;

} else {

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

}

}

int main() {

double x;

int n;

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

printf("%.2lf\n", Pn(x, n));

return 0;

}

```

Python

示例1

```python

def LegendrePolynomials(N, x):

if N == 0:

return 1

elif N == 1:

return x

else:

p0 = LegendrePolynomials(0, x)

p1 = LegendrePolynomials(1, x)

for i in range(1, N):

p = (2 * i + 1) / (i + 1) * x * p1 - i / (i + 1) * p0

p0 = p1

p1 = p

return p1

N = int(input("输入n:"))

x = float(input("输入x:"))

print(LegendrePolynomials(N, x))

```

示例2

```python

import sympy as sp

x = sp.symbols('x')

N = int(input("输入n:"))

Pn = sp.Legendre(N)

print(Pn.subs(x, float(input("输入x:"))))

```

这些代码示例展示了如何使用递归方法或迭代方法计算勒让德多项式。你可以根据自己的需求和编程环境选择合适的代码进行尝试。