1. 程式人生 > >離散基礎 (15). 調和級數分析

離散基礎 (15). 調和級數分析

1. 定義

Hn=k=1n1k

2. 問題描述
調和級數Hn直觀上可以理解為在服從牛頓重力力學原理的前提下,問桌子邊緣能摞起的最大可能的懸空部分的長度是多少?

3. 問題分析
我們假設紙牌的長度為2,

當1張紙牌時,最大可能的懸空部分的長度為1,此時這張紙牌的重心剛好在桌子的邊緣線上;

當2張紙牌時,最大可能的懸空部分的長度為1+12,此時這兩張紙牌的重心剛好在桌子的邊緣線上;

當3張紙牌時,最大可能的懸空部分的長度為1+12+13,此時這三張紙牌的重心剛好在桌子的邊緣線上;

……

類似地,可以歸納,並證明,

n張紙牌時,最大可能的懸空部分的長度為k=1n1k,此時這n

張紙牌的重心剛好在桌子的邊緣線上;

5. Matlab演算法實現
harmonic_plot.m

function harmonic_plot(n)

% compute harmonic numbers, where n > 1
t = 1;
for i = 2:n
    t = [t, t(i-1)+1/i];
end

% plot
plot(t,'linewidth',1.2);
legend('H_n=1+1/2+1/3+1/4+...+1/n');
xlabel('n');
ylabel('H_n');

Terminal

>> harmonic_plot(3000
)

Results
這裡寫圖片描述