%*********************************************
% 主函数 main.m
close all;
clear all;
syms x;
disp('Pn的表达式为:')
fun1=legendre(x,2)
disp('Pn的数值为:')
result1 = subs( fun1, 0.5)
disp('Pnm的表达式为:')
fun2=co_legendre(x,3,1)
disp('Pnm的数值为:')
result2 = subs( fun2, 0.5)
%*********************************************
% 子函数一 legendre.m
%求主勒让德多项式的函数
function Pn = legendre(t,n)
%计算勒让德多项式中的x^2-1
f = ( t * t - 1)^n;
%对f多项式进行n阶求导
y = diff( f , n);
%求n得阶乘
str = prod(1 : n);
%勒让德多项式的一般表示式
F= (1 / (2^n * str))y;
%对求出的勒让德多项式进行合并同类项
Pn = collect(F);
end
%*********************************************
% 子函数二 co_legendre.m
%求连带勒让德多项式的函数
function Pnm = co_legendre(t,n,m)
Pn = legendre(t,n);
Pnm =(1-tt)^(1/2)* diff( Pn ,m);
end
%*********************************************
%*****运行结果
Pn的数值为:
result1 =
-1/8
Pnm的表达式为:
fun2 =
(1 - x2)(1/2)((15x^2)/2 - 3/2)
Pnm的数值为:
result2 =
(3*3^(1/2))/16