Mathematicaで双曲線をプロット

双曲線 x * y = a をグラフに描くには壁がふたつある

ImplicitPlotを使う

  • ParametricPlotでも出来るが単純なx * y = aの関数形を使えないので不便
  • ただし、ヘルプではParametricPlotしか出てこないので、めったにMathematica使わない人(私)にImplicitPlotの存在は発見されにくい。(第一の壁)

パッケージのロードが必要

  • ImplicitPlotは標準状態では動かずパッケージのロードが必要
<< Graphics`ImplicitPlot`

マニュアルの通りだが、マニュアルの表示だと`と'の区別が付かないので普通の人(私)はまずシングルクォートの'を使うだろう。そしてエラーとなって途方に暮れる。(これが第二の壁)

yの範囲を指定しよう

  • xの範囲指定だけでも表示されるが、縦につぶれたグラフになって双曲線に見えなくてあせる
ImplicitPlot[x * y == 1, {x, -5, 5}]
  • x,yとも範囲を指定すれば見慣れた双曲線が現れる
ImplicitPlot[x * y == 1, {x, -5, 5}, {y, -5, 5}]
  • 私が表示したかったのはこんなグラフ
ImplictiPlot[4 * x * y - x * x - 5 * x + 6 * y +8 ==0, {x,-10,10},{y,-10,10}]

3次元グラフにはImplicitPlotは使えない

  • 本当は3次元グラフ(双曲面)を描きたかったがImplicitPlotが使えるのは2次元グラフまで。3次元グラフではParametricPlot3Dを使うしかない。