问题标题:
用matlab求两个函数间对应点的误差值和计算到每一步时的程序运行总耗时.f1=∏(上标N,下标n=1)(1+2/n);求积.f2=1/2(N+1)(N+2).N=20:20:1000,是个矩阵.希望运行一段程序,能显示出对于N里的每个
问题描述:
用matlab求两个函数间对应点的误差值和计算到每一步时的程序运行总耗时.
f1=∏(上标N,下标n=1)(1+2/n);求积.
f2=1/2(N+1)(N+2).
N=20:20:1000,是个矩阵.
希望运行一段程序,能显示出对于N里的每个元素,f1(N)和f2(N)的误差值(f1-f2)是多少,以及程序每计算一个元素的耗时.比如计算到f1(20)-f2(20)这一步时程序总共运行了多长时间?然后运算到f1(40)-f2(40)这一步时程序总共又运行了多长时间.(可能是用tic/toc做...不懂.)
要对整个矩阵里的元素都这么做,程序该怎么写...
今天之内解决的话再加20分.
江皞回答:
%其实计时没有太大意义,因为采用不同的方法差别会很大
%(例如,使用循环或是向量化运算,是否预置,是否递推,等等)
%更重要的是,计算耗时太少,根本无法计量(总耗时都近似为0,更不要说单步耗时了)
NN=20:20:1000;
e=[];%用于存储f1-f2的误差
t=[];%用于存储单步计算耗时
t0=clock;
forN=NN
tic
n=1:N;
f1=sum(1+2./n);
f2=1/2*(N+1)*(N+2);%不确定这个是不是你要的公式?
e(end+1)=f1-f2;
t(end+1)=tic;
end
%总耗时
etime(clock,t0)
%画图,上面是误差,下面是耗时
subplot(2,1,1),plot(NN,e,'.-')
subplot(2,1,2),plot(NN,t,'.-')
点击显示
其它推荐
热门其它推荐