写一个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/dcvQ 著作权归作者所有。请勿转载和采集!