MATLAB级数和
我试图使用symsum函数和for循环,但程序耗时太长而崩溃MATLAB级数和,matlab,Matlab,我试图使用symsum函数和for循环,但程序耗时太长而崩溃 for n=[100 1000 10000 100000 1000000] syms i n F1 = symsum(sin(i)/cos(i),i,1,n) end 也许你可以试试下面的代码 n = 10.^(2:8); T = zeros(size(n)); for k = 1:length(n) tstart = tic; sum(sin(1:n(k))).*sum(1./cos(1:n(k))
for n=[100 1000 10000 100000 1000000]
syms i
n
F1 = symsum(sin(i)/cos(i),i,1,n)
end
也许你可以试试下面的代码
n = 10.^(2:8);
T = zeros(size(n));
for k = 1:length(n)
tstart = tic;
sum(sin(1:n(k))).*sum(1./cos(1:n(k)));
T(k) = toc(tstart);
end
loglog(n,T);
xlabel("n");
ylabel("T(n)");
你会得到
发布您的代码。一个有一百万个术语的符号函数?这听起来不合理。我认为你不应该这样解决你的问题。没有理由在这个练习中使用符号变量。对于
n=1000000
matlab需要n^2=1000000000000
iterations,这是很多次,即使对于计算机也是如此。但是请注意,使用(例如,使用n=100):S=sum(sum(sin(1:100))./cos(1:100))