MATLAB中勒让德多项式程序 |
您所在的位置:网站首页 › 求函数的勒让德级数展开 › MATLAB中勒让德多项式程序 |
function p = legendre(t,n)
%求勒让德多项式的函数
%计算勒让德多项式中的x^2-1
f = ( t * t - 1)^n;
%对f多项式进行n阶求导
y = diff( f , n);
%求n得阶乘
str = prod(1 : n);
%勒让德多项式的一般表示式
l = (1 / (2^n * str))*y;
%对求出的勒让德多项式进行合并同类项
p = collect(l);
end
%利用勒让德多项式求解函数逼近的脚本 %初始化定义区间[a,b] a = 0; b = 1; %定义符号变量x syms x ; %定义多项式中的n n = 4; h=1; %定义多项式中的中间变量t t =(2 * x - b - a)/(b - a ); %以为MATLAB中定义的collect函数不适用于0,所以要把当n = 0 是单独写出来。 p = 1 %从1开始依次打印出区间[a,b]上的正交多项式 data=[]; for i = 1 : 1 :n %p/(2^i)因为此时t=2*x-1在进行求导的过程中由p函数对t求导转变为对x的求导,t=2*x-1两边同时求导dt=2*dx %所以在最后根据求导的次数要进行相应的除以2^i p = legendre(t,i)/(2^i); s = p*p; h=int(s,0,1); d=h*p; data = [data;d]; end m=sum(data); vpa(m) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |