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

matlab编写一段函数stmk.m,分别用for和while及不用循环及不用循环语句计算k=0.7的0到N次幂的和,可以指定不同的N去调用同一个程序计算,输入变量为N,输出量为三种算法的结果及相应程序执行时间

函数部分:

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

望采纳
温馨提示:内容为网友见解,仅供参考
无其他回答

matlab编写一段函数stmk.m,分别用for和while及不用循环及不用循环语句...
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(...

相似回答