关于勒让德函数计算之matlab实现

%*********************************************
% 主函数 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-t
t)^(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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容