||
此文为计算方法授课用材料
================
小学生都会用Gauss的办法做下面的求和问题
S(n)= 1 + 2 + 3 + 4 + 5 + ..... + n 。
这个问题的一个自然推广是一般的等幂和问题,
S_k(n) = 1^k + 2^k + 3^k + ....... + n^k .
这样的问题需要一点技巧,计算也很复杂。
这样的求和问题,让人想起相应的对幂函数x^k的积分问题。所以一个自然的猜测是,S_k(n) 是n的一个(k+1)次多项式。我们可以利用S的前k+2个值定下此多项式的系数。
下面是相应的matlab程序。
clear all; close all; clc;
alpha = 3; N = 100;
sum = zeros(N,1);
sum(1) = 1 ;
for s = 2 : N
sum(s) = sum(s-1) + s^alpha;
end
vanM = zeros(alpha + 2);
for s1 = 1 : alpha+2
for s2 = 1 : alpha +2
vanM(s1, s2) = s1.^(s2-1);
end
end
coeff = vanM\sum(1:alpha+2)
%------------
在上面k=3,程序返回的系数数组为
coeff =
0
0
0.2500
0.5000
0.2500
所以我们知道,S_3(n) = (1/4) n^4 + (1/2) n^3 + (1/4) n^2. 利用归纳法,很容易验证此表达式是对的。这是数值方法对解析研究提供帮助的一个简单实例。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-22 01:03
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社