wmch85
2008-05-24, 17:46
上次说了三种算法,其实还有一种似乎更为简单,就是通用性差了点
可以直接调用sum函数。
sum(2.^[0:63])
写成通用形式
function s=my_sum(n)
my_sum=sum(2.^[0:63]);
end
当然,通常用的是double型。如果想要运算准确,比如算到第200项
就可用:sum(sym(2).^[0:200])
或:syms k; symsum(2^k,0,200)
结果:3213876088517980551083924184682325205044405987565585670602751
耗时分别为:Elapsed time is 0.015000 seconds.
Elapsed time is 2.266000 seconds.
感觉matlab实在是威力巨大,需要潜心研究,才能体会其中的奥妙。
希望大家多提批评意见,共同进步
可以直接调用sum函数。
sum(2.^[0:63])
写成通用形式
function s=my_sum(n)
my_sum=sum(2.^[0:63]);
end
当然,通常用的是double型。如果想要运算准确,比如算到第200项
就可用:sum(sym(2).^[0:200])
或:syms k; symsum(2^k,0,200)
结果:3213876088517980551083924184682325205044405987565585670602751
耗时分别为:Elapsed time is 0.015000 seconds.
Elapsed time is 2.266000 seconds.
感觉matlab实在是威力巨大,需要潜心研究,才能体会其中的奥妙。
希望大家多提批评意见,共同进步