[Ruby] 루비로 sin 그래프 구현하기
[Ruby] 루비로 cos 그래프 구현하기
sin과 cos과 마찬가지로 tan또한 tan을 사용하면 됩니다. 하지만 그래프가 이상하게 나오는 것 처럼 보이는데 tan는 점근선이 존재하기 때문에 점근선이상의 값을 가지게 된다면 출력1과 같이 그래프가 이상하게 나오게 됩니다.
따라서 점근선까지 범위를 제한하면 원하는 그래프를 출력할 수 있게 됩니다.
pi/2까지가 점근선이므로 단순하게 계산하여 pi를 3으로 생각하고 1.5를 범위를 지정하여 출력2와 같이 수정하였습니다.
require 'gnuplot'
Gnuplot.open do |g|
Gnuplot::Plot.new(g) do |plot|
x = (-5..5).step(0.1).collect { |v| v.to_f.round 1 }
y = x.collect { |v| Math.tan v }
plot.y
plot.data << Gnuplot::DataSet.new([x, y]) do |d|
d.with = "lines"
d.linewidth = 2
end
end
end
require 'gnuplot'
Gnuplot.open do |g|
Gnuplot::Plot.new(g) do |plot|
x = (-1.5..1.5).step(0.1).collect { |v| v.to_f.round 1 }
y = x.collect { |v| Math.tan v }
plot.y
plot.data << Gnuplot::DataSet.new([x, y]) do |d|
d.with = "lines"
d.linewidth = 2
end
end
end