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)




  • 12
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值