[Ruby] 루비로 tan 그래프 구현하기

PersesTitan·2023년 4월 12일
0

Ruby

목록 보기
24/24

관련된 글

[Ruby] 루비로 sin 그래프 구현하기
[Ruby] 루비로 cos 그래프 구현하기

풀이

sin과 cos과 마찬가지로 tan또한 tan을 사용하면 됩니다. 하지만 그래프가 이상하게 나오는 것 처럼 보이는데 tan는 점근선이 존재하기 때문에 점근선이상의 값을 가지게 된다면 출력1과 같이 그래프가 이상하게 나오게 됩니다.

따라서 점근선까지 범위를 제한하면 원하는 그래프를 출력할 수 있게 됩니다.
pi/2까지가 점근선이므로 단순하게 계산하여 pi를 3으로 생각하고 1.5를 범위를 지정하여 출력2와 같이 수정하였습니다.

코드1

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

출력1

코드2

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

출력2

profile
안녕하세요 페르세스 티탄입니다! 부족한 부분이 많이 있겠지만 잘부탁드립니다.

0개의 댓글