C++ 勒让德多项式计算程序 | 代码示例与解析
以下是一个计算勒让德多项式的 C++ 程序:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n; // 多项式阶数
double x; // 自变量
cout << '请输入多项式阶数n: ';
cin >> n;
cout << '请输入自变量x: ';
cin >> x;
// 初始化前两个多项式
double p0 = 1.0;
double p1 = x;
if (n == 0) {
cout << 'P0(x) = ' << p0 << endl;
return 0;
} else if (n == 1) {
cout << 'P1(x) = ' << p1 << endl;
return 0;
}
// 递推计算多项式
double pn;
for (int i = 2; i <= n; i++) {
pn = ((2.0 * i - 1.0) * x * p1 - (i - 1.0) * p0) / i;
p0 = p1;
p1 = pn;
}
cout << 'P' << n << '(x) = ' << pn << endl;
return 0;
}
该程序通过递推计算勒让德多项式,其中 p0 和 p1 分别表示前两个多项式,pn 表示当前计算的多项式。勒让德多项式的递推公式为:
$$\P_n(x) = \frac{(2n-1)xP_{n-1}(x)-(n-1)P_{n-2}(x)}{n}$$
其中 $P_0(x) = 1$,$P_1(x) = x$。程序先根据用户输入的阶数和自变量初始化前两个多项式,然后通过循环计算出第 $n$ 个多项式,并输出结果。
原文地址: https://www.cveoy.top/t/topic/nCVl 著作权归作者所有。请勿转载和采集!