matlab编写一段函数stmk.m,分别用for和while及不用循环及不用循环语句计算k=0.7的0到N次幂的和,可以指定
matlab编写一段函数stmk.m,分别用for和while及不用循环及不用循环语句计算k=0.7的0到N次幂的和,可以指定不同的N去调用同一个程序计算,输入变量为N,...
matlab编写一段函数stmk.m,分别用for和while及不用循环及不用循环语句计算k=0.7的0到N次幂的和,可以指定不同的N去调用同一个程序计算,输入变量为N,输出量为三种算法的结果及相应程序执行时间
展开
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
望采纳
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
望采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询