MATLAB中勒让德多项式程序

您所在的位置:网站首页 求函数的勒让德级数展开 MATLAB中勒让德多项式程序

MATLAB中勒让德多项式程序

2024-07-11 06:47| 来源: 网络整理| 查看: 265

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