0
考慮下面的函數:fzero不能處理不連續性
[email protected](x) tan(x);
x = NaN*ones(100,1); % Initializes x.
starting_points=linspace(0,4*pi,100);
for i=1:100
% Look for the zeros in the function's current window.
x(i)=fzero(fun, starting_points(i));
end
x_unique=x(diff(x)>1e-12)
函數的輸出:
x_unique =
-0.0000 1.5708 3.1416 4.7124 6.2832 7.8540 9.4248 10.9956
我們知道這是不正確的,因爲tan在區間[0,4 * pi]中只有5個根,即0,pi,2 * pi,3 * pi和4 * pi。 問題在於,當函數變爲不連續時,fzero會將x值作爲輸出。如何糾正這個問題?有沒有解決方法?
也許'abs(tan(x_unique))<0.1'?看看值是否接近零。 – Daniel
問題在於fzero會查找函數更改符號的點,而tan()更改周圍(2n-1)pi/2的符號。這與斷斷續續沒有任何關係。 – gariepy
@gariepy所以,我該怎麼做如果只想得到零功能? – Rhinocerotidae