私はGNU Octave 4.4.1(Arch Linuxのx86_64-pc-linux-gnu)を使用していますが、fplot機能に問題があります。理由を知りたい
fplot(@(x) 1/(1+25*x.^2),[-1,1])
他の結果が出る
fplot(@(x) (1+25*x.^2).^-1,[-1,1])
(後者は正しいグラフを返します)
持っていたまったく同じ問題私は学生と一緒にWindowsバージョンのOctave 4.4.1を使用しています。
これが実際のバグなのか、それとも後者のコマンドが正しいのか、最初のコマンドは間違った理由の素晴らしい説明があるのだろうか? (だから生徒にGNU Octaveを使うべきだと説得することができます。わかりました、試してみましょう。とにかくそうです)。
答え1
問題は、「.」がありませんが、Octaveは表示されないエラーメッセージを生成する必要があります。違いを示すためにプロットする値を計算するだけです。
octave:16> x=linspace(-1,1,11)
x =
Columns 1 through 8:
-1.00000 -0.80000 -0.60000 -0.40000 -0.20000 0.00000 0.20000 0.40000
Columns 9 through 11:
0.60000 0.80000 1.00000
octave:17> 1/(1+25*x.^2)
error: operator /: nonconformant arguments (op1 is 1x1, op2 is 1x11)
octave:17> 1./(1+25*x.^2)
ans =
Columns 1 through 7:
0.038462 0.058824 0.100000 0.200000 0.500000 1.000000 0.500000
Columns 8 through 11:
0.200000 0.100000 0.058824 0.038462
したがって、正しい形式は
fplot(@(x) 1./(1+25*x.^2),[-1,1])