-
大小: 1KB文件類型: .zip金幣: 2下載: 0 次發布日期: 2021-05-16
- 語言: Matlab
- 標簽: matlab??Laguerre??polynomial??
資源簡介
matlab程序,產生廣義拉蓋爾多項式系數,親測可行。如果要生成多項式,需要乘上變量

代碼片段和文件信息
function?y?=?LaguerreGen(varargin)
%LaguerreGen?calculates?the?generalized?Laguerre?polynomial?L{n?alpha}
%
%?This?function?computes?the?generalized?Laguerre?polynomial?L{nalpha}.?
%?If?no?alpha?is?supplied?alpha?is?set?to?zero?and?this?function?
%?calculates?the?“normal“?Laguerre?polynomial.
%
%?Input:
%??-?n?=?nonnegative?integer?as?degree?level
%??-?alpha?>=?-1?real?number?(input?is?optional)
%
%?The?output?is?formated?as?a?polynomial?vector?of?degree?(n+1)?
%?corresponding?to?MatLab?norms?(that?is?the?highest?coefficient?is?the?
%?first?element).
%
%?Possible?usage:
%??-?polyval(LaguerreGen(n?alpha)?x)?evaluates?L{n?alpha}(x)
%??-?roots(LaguerreGen(n?alpha))?calculates?roots?of?L{n?alpha}
%?Calculation?is?done?recursively?using?matrix?operations?for?very?fast
%?execution?time.?The?formula?is?taken?from?Szeg??Orthogonal?Polynomials?
%?1958?formula?(5.1.10)
%???Author:?Matthias.Trampisch@rub.de
%???Date:?16.08.2007
%???Version?1.2
?
%%?======================================================================?%
%??????????????set?default?parameters?and?rename?input
%?=======================================================================?%
if?(nargin?==?1)????????%only?one?parameter?“n“?supplied
????????n?=?varargin{1};
????????alpha?=?0;??????%set?defaul?value?for?alpha
elseif?(nargin?==?2)????%at?least?two?parameters?supplied
????????n?=?varargin{1};
????????alpha?=?varargin{2};
end;
%%?======================================================================?%
%????????????????????error?checking?of?input?parameters
%?=======================================================================?%
if?(nargin?==?0)?||?(nargin?>?2)?||?(n~=abs(round(n)))?||?(alpha<-1)
????????error(‘n?must?be?integer?and?(optional)?alpha?>=?-1‘);
end;
%%?======================================================================?%
%????????Recursive?calculation?of?generalized?Laguerre?polynomial
%?=======================================================================?%
L=zeros(n+1);??????????%reserve?memory?for?faster?storage
switch?n
????case?0
????????L(1:)=1;
????otherwise???????????%n>1?so?we?need?to?do?recursion
????????L(1:)=[zeros(1n)?1];
????????L(2:)=[zeros(1?n-1)?-1?(alpha+1)];
????????for?i=3:n+1
????????????A1?=?1/(i-1)?*?(conv([zeros(1?n-1)?-1?(2*(i-1)+alpha-1)]?L(i-1:)));
????????????A2?=?1/(i-1)?*?(conv([zeros(1?n)?((i-1)+alpha-1)]?L(i-2:)));
????????????B1=A1(length(A1)-n:1:length(A1));
????????????B2=A2(length(A2)-n:1:length(A2));
????????????L(i:)=B1-B2;????%?i-th?row?corresponds?to?L{i-1?alpha}
????????end;
end;
%%?======================================================================?%
%???????????????????????????????Define?output
%?=======================================================================?%
y=L(n+1:);??%last?row?is?the?gen.?Laguerre?polynomial?L{n?alpha}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2846??2015-06-22?20:57??LaguerreGen.m
評論
共有 條評論