たとえば、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
ですか?今すぐ上記のコードの結果は
x = 0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000
y = 3.6000
f(x)
1つの値だけが存在している
clear all
clc
x = 0:0.3:2
y = (4*x.^2-9)/(2*x-3)
、のは、forループせずにコードを実行してみましょう。誰が何が起こっているのか説明できますか?