Matlab 数值分析求n+1次勒让德多项式的零点
function [Result1,Result2]=LZ(n)
%---------------------------------------------------------------------------------------
%LZ.m为legendreZero的简写,意思是求n+1次勒让德多项式的零点。
%输入勒让德多项式次数
%输出对应勒让德多项式零点(也可以叫高斯点)Result1和高斯点对应的高斯系数Result2
%输出结果为两个数组
%---------------------------------------------------------------------------------------
syms x
p=sym2poly((x^2-1)^(n+1)); %多项式的n+1次幂转化为矩阵方便计算
for i=1:n+1
p=polyder(p);%用循环来实现n+1次导
end
pn=p./(factorial(n+1)*2^(n+1)); %完全构建好的勒让德多项式
Result1=sort(roots(pn))'; %求根并按从小到大排好序
Result2=[]; %预先开好一个空集
N=n+1; %方便循环
a(1:N)=1; %预先开好一个空集
for i=1:1:N %循环计算每个高斯系数Ak
b(x)=0*x+1;
switch i
case i==1
for j=[2:N]
a(i)=(Result1(i)-Result1(j))*a(i); %a(i)是分母上的,且总体上看是常数
b(x)=(x-Result1(j))*b(x);end %b(x)是分子上的,且总体上看是x的多项式
case i==N
for j=[1:i-1]
a(i)=(Result1(i)-Result1(j))*a(i);
b(x)=(x-Result1(j))*b(x);end
otherwise
for j=[1:(i-1),(i+1):N]
a(i)=(Result1(i)-Result1(j))*a(i);
b(x)=(x-Result1(j))*b(x);
end
end
Result2(i)=int(b(x),x,-1,1)/a(i); %高斯系数公式
end
end
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...