グラフ(関数)の拡大縮小、平行移動

シェアする

  • このエントリーをはてなブックマークに追加
最近の記事
  • 7/6 【参考書籍】画像処理・機械学習プログラミング OpenCV 3対応
  • 6/20 【Python,matplotlib】動くグラフをAnimationGifに保存する方法
  • 6/17 シグモイド関数の微分
  • 6/15 シグモイド関数
  • 6/13 合成関数の微分
  • 6/12 WordPressで数式エディタ風に数式を入力したい
  • 6/11 PythonをVisual Studioでインストールする方法
  • 6/9 【Python】OpenCVをAnacondaでインストール(Windows編)
  • 6/6 【Python】Anacondaで複数バージョンの環境切り替え
  • 6/6 画像センシング展2017に出展します。
  • 6/1 【Office365】Web版Outlookのフォントサイズ変更
  • 6/1 【Anaconda】モジュールのアップデートでエラー発生
  • 6/1 【Anaconda】コマンドリストの表示
  • 5/29 Windows10パソコン購入
  • 5/24 Anacondaのアンインストール
  • 5/24 【Jupyter Notebook】新規プログラムの作成
  • 5/23 【Python】開発環境の構築
  • 5/23 Pythonはじめました
  • 4/6 【Office365】Web版Outlookのスレッド表示を解除する方法
  • 4/5 【Excel】フーリエ解析(FFT)
  • 3/20 Canny edge detection
  • 3/20 【Excel2016】分析ツールの表示
  • 3/5 【Visual Studio】黒い背景色を白に変更する方法
  • 2/8 【Windows10】拡張モニタに表示されたウィンドウを元に戻す
  • 2/7 複素数の計算
  • 1/18 【Excel】棒グラフの横軸の目盛を0始まりにする
  • 1/16 【Excel】フーリエ変換
  • 1/6 【OpenCV】疑似カラー(カラーマップ)
  • 11/8 【Visual Studio】検索結果のウィンドウ表示
  • 11/3 ニコン 一眼レフカメラ D5500レビュー
  • 10/26 カラーカメラはモノクロカメラを兼ねない
  • 9/6 (Free Soft)Animation GIF Builder
  • 8/30 【C#】タブの無いTabControlっぽいものを作る
  • 8/29 【OpenCvSharp】サンプルプログラムの公開
  • 8/28 【PowerPoint】部分的にカラーにする(セレクトカラー処理)
  • 8/27 【C#】引数の値渡し、参照渡し(ref, out)
  • 8/26 【Word/Excel】図形内に文字を挿入する
  • 8/25 【C#】NumericUpDownコントロール
  • 8/24 ニコン D3400 VS D5500 仕様比較
  • 8/22 【C#】MDIフォームにリサイズ可能なPanelを設置する
  • 8/20 【Visual Studio 2015】文字の色が変、かすむ
  • 8/20 【Visual Studio】行のコピー、切り取り、貼り付け
  • 8/20
  • 8/16
  • 7/7 標準偏差のよくある誤解
  • 6/17 ホーム
  • 6/15
  • 6/15
  • 6/15
  • 6/15

  • 拡大、縮小

    XとYであらわせる関数

    関数の式

    X軸方向に SxY軸方向に Sy 倍の拡大縮小すると

    グラフの拡大縮小

    となります。

    (拡大の場合、Sx,Syは1以上、縮小の場合、Sx,Syは1以下となります。)

    回転移動

    関数 f(X,Y)を原点周りにθ度回転すると

    グラフの回転

    となります。

    平行移動

    関数 f(X,Y)をX軸方向に TxY軸方向に Ty だけ平行移動すると

    グラフの平行移動

    となります。

    拡大縮小してから平行移動した場合は

    グラフの拡大縮小、平行移動

    となります。

    考え方

    グラフ(関数)を拡大、縮小、回転、平行移動するときに、実際にX、Yの値の変換は全て逆!つまり

    拡大の場合 縮小
    θ度回転の場合 -θ度回転
    +方向へ移動の場合 -方向へ移動

    の処理をしています。
    何だかとっても違和感がありますが、グラフ(関数)を移動していると思うのではなく、グラフ(関数)はそのままに、XY軸を変換していると思うと、少しはしっくり来るでしょうか...

    グラフの拡大

    グラフの回転

    グラフの平行移動

    また、拡大縮小、回転、平行移動を同時に行う場合は、変換の順番に注意が必要です。

    行列の計算と同じように、計算の順番が異なると計算結果も異なります。基本的には

    拡大縮小 ⇒ 回転 ⇒ 平行移動

    の順番で変換を行うのが、一番よいでしょう。

    もちろん、分かっていて別の順番で変換するのは構いません。

    具体例

    半径1の円の式、グラフは

    円の式

    円のグラフ

    となり、このグラフをX軸方向に Sx 、Y軸方向に Sy 倍の拡大縮小すると

    円の拡大縮小

    楕円のグラフ

    となります。

    式を変形すると楕円の公式そのものとなります。

    楕円の公式

    さらにX軸方向に Tx 、Y軸方向に Ty だけ平行移動すると

    楕円の平行移動

    楕円グラフの平行移動

    となり、円のグラフを拡大縮小、平行移動することで楕円の一般式となります。

    応用例

    2点を通る直線の式を、グラフの平行移動の考え方を用いて求めます。

    2点を通る直線の式

    2点を通る直線の式は

    直線の式

    より、よくある直線の式の解き方は、XとYに2点の座標を代入して、2つの式を作成し、連立方程式を用いて、未知数の  と  を求めると思います。

    しかし、直線の傾き  はグラフを見て分かる通り、(Yの増分)/(Xの増分)であるから

    直線の傾き

    となり、あとは切片の  を求めるだけになります。

    ここで、少し見方を変えて、原点を通る傾き  のグラフを下図のように

    原点(0,0)から点(X1、Y1)へ平行移動します。

    直線の平行移動

    これを式であらわすと

    直線の式の求め方

    となり、直線の式を求めることができます。
    この式をそのまま覚えている方もいると思いますが、グラフの拡大縮小、平行移動の
    考え方は汎用的に使うことができ、応用範囲がとても広がります。

    他にも

    Y = sinθ

    という波形に関して、

    Y軸方向の拡大率は振幅
    θ軸方向の拡大率は周期
    θ軸方向の平行移動は位相のズレ

    というように、置き換えて考えることもできます。

    このように考えるようになると、高校時代に一生懸命覚えたけど、すぐに忘れてしまうこのへんの公式↓

    sin ( – θ ) = – sin θ cos ( – θ ) = cos θ
    sin ( 90°+ θ ) = cos θ sin ( 90°- θ ) = cos θ
    cos( 90°+ θ ) = – sin θ cos ( 90°- θ ) = sin θ
    sin ( 180°+ θ ) = – sin θ sin ( 180°- θ ) = sin θ
    cos ( 180°+ θ ) = – cos θ cos ( 180°- θ ) = – cos θ

    は全て拡大縮小、平行移動として考えることが出来ます。

    例えば sin ( 90°- θ ) は sin ( -(θ – 90°) ) と書きかえると

    sin波形をθ方向に-1倍(Y軸に対して対称移動)してから、+θ方向に90°平行移動すれば良い事が分かります。

    最初に手元にsin波形を描いておけば、変換後、どのような波形になるのか?は見ればわかりますよね?!

    使える数学へ戻る