저는 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])