字典翻译 问答 其它 用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里的每个
问题描述:

用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,'.-')
点击显示
其它推荐
热门其它推荐
  • 其它