比方說f(x) = (4x^2-9)/(2x-3)
。功能f(x)
未定義在x=3/2
。請注意,可以將該函數考慮爲產生f(x)=2x+3
,但讓我們來檢查第一個等式。在下面的腳本時x=1.5
,功能f(x=1.5)=4.0
我面臨浮點問題嗎?
clear all
clc
x = 0:0.3:2;
for i = 1:length(x)
if x(i) == 1.5 % this line for some reasons is ignored.
y(i) = 6;
else
y(i) = (4*x(i)^2-9)/(2*x(i)-3);
end
end
x
y
上述腳本的輸出
x = 0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000
y = 3.0000 3.6000 4.2000 4.8000 5.4000 4.0000 6.6000
爲什麼y=4.0000
當x=1.5000
?現在讓我們運行的代碼,而無需進行循環,
clear all
clc
x = 0:0.3:2
y = (4*x.^2-9)/(2*x-3)
上述代碼的結果是
x = 0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000
y = 3.6000
只有一個f(x)
值。任何人都可以解釋發生了什麼?