用 matlab 求 两个函数间对应点的误差值 和 计算到每一步时的程序运行总耗时.

f1=∏(上标N,下标n=1)(1+2/n);求积.f2=1/2(N+1)(N+2).N=20:20:1000,是个矩阵.希望运行一段程序,能显示出对于N里的每个元素,f... 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分.
展开
 我来答
tianxiawulang
2012-09-27 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2561万
展开全部
% 其实计时没有太大意义,因为采用不同的方法差别会很大
% (例如,使用循环或是向量化运算,是否预置,是否递推,等等)
% 更重要的是,计算耗时太少,根本无法计量(总耗时都近似为0,更不要说单步耗时了)

NN=20:20:1000;
e = []; % 用于存储f1-f2的误差
t = []; % 用于存储单步计算耗时
t0 = clock;
for N=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, '.-')
周永红_ZYH
2012-09-27 · TA获得超过2911个赞
知道大有可为答主
回答量:1455
采纳率:90%
帮助的人:676万
展开全部
N = 20:20:1000;
NL = length(N);

e = zeros(1,NL); % 用于存储f1-f2的误差
t = zeros(1,NL); % 用于存储单步计算耗时

for i = 1:NL
tic
n = 1:N(i);
f1 = prod(1+2./n);
f2 = 1/2*(N(i)+1)*(N(i)+2);
e(i) = f1 - f2;
t(i) = toc;
end

% 总耗时
T = sum(t)

% 画图,上面是误差,下面是耗时
subplot(2,1,1),plot(N, e, '.-')
subplot(2,1,2),plot(N, t, '.-')
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式