plgndr.txt

来自「1.г函数、贝塔函数、阶乘及二项式系数 2.不完全г函数、误差函数 3.不完」· 文本 代码 · 共 38 行

TXT
38
字号
Function PLGNDR(L, M:integer; X:real):real;
var
    PMM,SOMX2,FACT,PMMP1,PLL:real;
    I,LL:integer;
begin
    If (M < 0) Or (M > L) Or (Abs(X) > 1) Then
        ShowMessage('bad arguments');
    PMM:=1;
    If M > 0 Then
    begin
        SOMX2:=Sqrt((1 - X) * (1 + X));
        FACT:=1;
        For I:=1 To M do
        begin
            PMM:=-PMM * FACT * SOMX2;
            FACT:=FACT + 2;
        end;
    end;
    If L = M Then
        PLGNDR:=PMM
    Else
    begin
        PMMP1:=X * (2 * M + 1) * PMM;
        If L = M + 1 Then
            PLGNDR:=PMMP1
        Else
        begin
            For LL:= M + 2 To L do
            begin
                PLL:=X * (2 * LL - 1) * PMMP1 - (LL + M - 1) * PMM;
                PLL:=PLL / (LL - M);
                PMM:=PMMP1;
                PMMP1:=PLL;
            end;
            PLGNDR:=PLL;
        end;
    end;
end;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?