我正在參加MATLAB課程並編寫了下面的代碼。一個是FOR LOOP,另一個是矢量化。 FOR LOOP返回正確的結果,但矢量化沒有。任何人都可以告訴我我編碼不正確嗎?MATLAB矢量化代碼返回錯誤結果
應該用於下面的等式。
1 - 1/3 1/5 + - + 1/7 1/9 - ... - 一千〇三分之一(總和爲0.7849 - 收斂 慢慢到pi/4)
for循環
clc
clear
tic
sign = -1;
y=0;
for x=1:2:1003
sign=-sign;
y=y+sign/x;
end
disp(['For Loop calculated ' num2str(y), ' and ran for ' num2str(toc)])
使用矢量
clear
tic
n=1:2:1003;
x=sum(1./n -1./(n+2));
disp(['Vectorization calculated ' num2str(x), ' and ran for ' num2str(toc)])