用 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分. 展开
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分. 展开
2个回答
展开全部
% 其实计时没有太大意义,因为采用不同的方法差别会很大
% (例如,使用循环或是向量化运算,是否预置,是否递推,等等)
% 更重要的是,计算耗时太少,根本无法计量(总耗时都近似为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, '.-')
% (例如,使用循环或是向量化运算,是否预置,是否递推,等等)
% 更重要的是,计算耗时太少,根本无法计量(总耗时都近似为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, '.-')
展开全部
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, '.-')
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, '.-')
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |