matlab编写一段函数stmk.m,分别用for和while及不用循环及不用循环语句计算k=0.7的0到N次幂的和,可以指定

2025-04-04 08:27:55
推荐回答(1个)
回答1:

函数部分:

function [y,t]=stmk(k,N)

y=zeros(1,3);%赋初值,求和
t=zeros(1,3);%赋初值,耗时

t0=cputime;
for i=0:N,
y(1)=y(1)+k^i; %for结果
end
t(1)=cputime-t0;

t0=cputime;
i=0;
while(i<=N)
y(2)=y(2)+k^i;%while结果
i=i+1;
end
t(2)=cputime-t0;

t0=cputime;
y(3)=(1-k^(N+1))/(1-k);%不用循环,按等比数列求和
t(3)=cputime-t0;

使用部分:
[y,t]=stmk(0.7,200000)
y =
3.3333 3.3333 3.3333
t =
0.3438 0.3125 0

望采纳