注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mr.Right

不顾一切的去想,于是我们有了梦想。脚踏实地的去做,于是梦想成了现实。

 
 
 

日志

 
 
关于我

人生一年又一年,只要每年都有所积累,有所成长,都有那么一次自己认为满意的花开时刻就好。即使一时不顺,也要敞开胸怀。生命的荣枯并不是简单的重复,一时的得失不是成败的尺度。花开不是荣耀,而是一个美丽的结束,花谢也不是耻辱,而是一个低调的开始。

网易考拉推荐

勒让德多项式MATLAB生成范例  

2015-10-04 18:21:59|  分类: 编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
% The Legendre polynomial P(n,x) can be defined by:
%        P(0,x) = 1
%        P(1,x) = x
%        P(n,x) = (2*n-1)/n * x * P(n-1,x) - (n-1)/n * P(n-2,x)

% Given nonnegative integer n, compute the Legendre polynomial P_n. 
% Return the result as a vector whose mth element is the coefficient of x^(n-m+1).
% polyval(pk, x) evaluates P_n(x).

clear; close all;
n = 5; % Legendre Polynomial order, the polynomial length is n+1

if n==0 
    pk = 1;
elseif n==1
    pk = [1 0]';
else
    % initial values
    pkm2 = zeros(n+1, 1); % pkm2 denotes p(k - 2)
    pkm2(n + 1) = 1; % P(1, x) = x
    pkm1 = zeros(n+1, 1);
    pkm1(n) = 1; % P(0, x) = 1

    for k=2:n
        pk = zeros(n+1, 1);
        for e = n-k+1:2:n % e corresponds to p(k - 2)
            pk(e) = (2*k-1)*pkm1(e+1) + (1-k)*pkm2(e); % n-k+1
        end
        pk(n+1) = pk(n+1) + (1-k)*pkm2(n+1);  % zero order, constant
        pk = pk/k;
        if k<n
            pkm2 = pkm1;
            pkm1 = pk;
        end
    end
end

x = -1:0.1:1;
y = polyval(pk, x);
figure; plot(x, y, 'LineWidth', 2);


  评论这张
 
阅读(214)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016