以下是一个计算勒让德多项式的 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;
}

该程序通过递推计算勒让德多项式,其中 p0p1 分别表示前两个多项式,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$ 个多项式,并输出结果。

C++ 勒让德多项式计算程序 | 代码示例与解析

原文地址: https://www.cveoy.top/t/topic/nCVl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录