• 検索結果がありません。

2 T ax 2 + 2bxy + cy 2 + dx + ey + f = 0 a + b + c > 0 a, b, c A xy ( ) ( ) ( ) ( ) u = u 0 + a cos θ, v = v 0 + b sin θ 0 θ 2π u = u 0 ± a

N/A
N/A
Protected

Academic year: 2021

シェア "2 T ax 2 + 2bxy + cy 2 + dx + ey + f = 0 a + b + c > 0 a, b, c A xy ( ) ( ) ( ) ( ) u = u 0 + a cos θ, v = v 0 + b sin θ 0 θ 2π u = u 0 ± a"

Copied!
32
0
0

読み込み中.... (全文を見る)

全文

(1)

2

次曲線の描画プログラム

理工学部 数理情報学科 T140073 松原 誠智 指導教員 池田 勉 概要   中学生や高校生は、楕円や放物線、双曲線をそれぞれ別々なものとして学んでいるような気がする。しかし、これ  らは2次曲線として統一的に理解できるものである。このことを視覚的に表現するすることを目標として、本研究では  1 2次曲線を統一的に描画するプログラムと2 パラメータ変化にともなう2次曲線の形状変化(楕円 ⇐⇒ 放物線    ⇐⇒ 双曲線)をアニメーションで表現するプログラムを作成した。   2次曲線は、以下の手順で統一的に描画した。 ・2次方程式ax2+ 2bxy + cy2+ dx + ey + f = 0|a| + |b| + |c| > 0)の係数a, b, cからなる行列Aの固有値・固   有ベクトルを計算する。 ・固有ベクトルから得られる回転行列を用いて、2次方程式を交差項xyのない標準形に変形する。 ・得られた2つ固有値の積の符号から、2次曲線を楕円型(固有値の積が正)、双曲線型(固有値の積が負)、放物線型(固   有値の積が0)の3つに分類する。楕円型の2次曲線には、楕円、1点、空集合がある。双曲線型の2次曲線には、双   曲線、交差する2直線がある。放物線型の2次曲線には、放物線、平行な2直線、1直線、空集合がある。 ・分類した中で対応する(交差項のない標準形で与えられる)2次曲線を描画する。楕円は、媒介変数表示 u = u0+ a cos θ,v = v0+ b sin θ  (0≤ θ ≤ 2π)   を利用し描画する。双曲線は、媒介変数表示 u = u0± a cos θ,v = v0+ b tan θ ( π 2 < θ < π 2)   を利用し描画する。放物線は、つぎの媒介変数表示を利用し描画する。 u = u0+ 2pt,v = v0+ pt2 (− ∞ < t < ∞) ・描画した2次曲線と固有ベクトルから得られる回転行列の逆行列を用いて、当初の2次方程式で定まる2次曲線を描   画する。  パラメータの変化にともなう2次曲線の形状推移をアニメートするプログラムは以下の手順で作成した。 ・楕円からスタートする。ac− b2> 0の時、2つの固有値の積はλ1λ2> 0となる。 ・bac− b2= 0になるまで大きくして、2次曲線の形状を楕円から放物線に推移させる。ac− b2= 0の時、   2つの固有値の積はλ1λ2= 0となり、このときに放物線になる。 ・dまたはeを調節して、放物線から平行な2直線に推移させる。 ・平行な2直線の間隔が小さくなり、ついには1直線になるようにfを調節する。 ・fを調節して、平行な2直線に戻す。 ・bを大きくして、平行な2直線から双曲線に推移させる。ac− b2< 0の時、2つの固有値の積はλ 1λ2< 0となる。 ・fを調節して、双曲線から交差する2直線を経て、開き方の違う双曲線と変形させる。

(2)

  2018年度 卒業論文

2次曲線の描画プログラム

龍谷大学 理工学部 数理情報学科 T140073 松原誠智 指導教員 池田 勉

(3)

目次 1 はじめに 1 1.1 2次曲線 . . . 2 2 2次方程式の標準形への変換(線形変換) 2 2.1 行列を用いた2次方程式の変形. . . 2 2.2 固有値の計算 . . . 4 2.3 固有ベクトルの計算 . . . 5 2.4 2次方程式を標準形への変換 . . . 7 2.5 2次曲線の分類 . . . 9 3 各2次曲線の描画 10 3.1 楕円型 . . . 10 3.2 双曲線型 . . . 12 3.3 放物線型 . . . 14 4 2次曲線のアニメーション 21 4.1 2次曲線の描画の全体の流れ . . . 25 5 追加した機能 27 6 おわりに 28 6.1 まとめ . . . 28 6.2 検討. . . 29

(4)

1

はじめに 本稿は、

1 円や放物線といった2次曲線の描画、

2 すべての2次曲線を 関連付けるアニメーション、の2点の

CG

の描画をおこなえるプログラムを 作成する方法を考えた論文である。  今回、著者が

1 2次曲線の描画、

2 すべての2次曲線を関連付けるアニ メーション の2点の作成を題材にしたきっかけは、中学生や高校生にとっ て、円や放物線、双曲線を学び理解するには比較的多くの時間を要している と感じたからである。中学校や高等学校では、円や放物線、双曲線は別々に 学ぶことも多く、理解するためには、様々なグラフと見比べたりし、学ぶの で2次曲線を理解するには比較的時間を要する。また、著者は中学校、高等 学校の算数、数学の内容の視覚的にとらえやすい教材開発ついて興味があ り、題材に選んだ。著者は、2次方程式を入力することで、入力された2次 方程式の2次曲線を

OpenGL

で描き、観察することができるような2次曲 線の理解が深まる教材を、大学で学んだプログラミングを用いて作りたいと 考えた。 また、すべての2次曲線を関連付けるアニメーションを作成し、観察するこ とで円や放物線、双曲線は2次曲線の1つであり内容的にはつながってい て、全く異なるものではないことを伝えたいと考えた。2次曲線の描画につ いては、入力された2次方程式を簡単な形に変形した標準形の2次曲線の描 画を先に行い、その際に求められた回転行列と2次曲線の描画から最初に入 力された2次方程式の描画をおこなっている。  さらに、2次曲線の描画後、最初に入力された2次方程式の係数と変化幅 を入力することで、2次方程式を変化させ、2次曲線の変化を観察できる。  2次方程式の標準形への変形をおこなうための計算方法については2節で 説明する。  また、各2次曲線の描画と変化については3節で、すべての2次曲線を関 連付けるアニメーションについては4節で説明をおこない、5節で機能の説 明、6節で本稿を締めくくる。

(5)

1.1 2次曲線 一般に、実数

a, b, c, d, e, f

を使って、

x

y

の2次方程式

ax

2

+ 2bxy + cy

2

+ dx + ey + f = 0

を満たす点

(x, y)

の集まりが作る曲線を2次曲線という。 (ただし、2次方程式のため、

|a| + |b| + |c| > 0

)         次のいずれかの曲線(または直線)になることが分かって いる。 ・2つの直線 ・放物線 ・楕円(円を含む) ・双曲線 これらは、すべて円錐を切ったときに現れる曲線または直線であり、円錐曲 線とも呼ばれる。

([1])

2

2次方程式の標準形への変換(線形変換) 2次曲線の描画を簡単におこなうために、まず簡単に描画ができる標準形 に変形するため、入力された2次方程式を行列を用いた式に変形する。その 後、回転行列を用い、変数変換をおこなって、交差項のない2次方程式(標 準形)に変形する。 2.1 行列を用いた2次方程式の変形 入力された2次方程式が

ax

2

+ 2bxy + cy

2

+ dx + ey + f = 0

  (2次方程式のため

|a| + |b| + |c| > 0)

 とすると

(6)

2次の実対称行列

A =

(

a b

b c

)

,

1×2の実行列

B =

(

d e

)

,

実数

f

を用いて 2次方程式は、

ax

2

+ 2bxy + cy

2

+ dx + ey + f = 0

(

x y

) (

a b

b c

) (

x

y

)

+

(

d e

) (

x

y

)

+ f = 0

(

x y

)

A

(

x

y

)

+ B

(

x

y

)

+ f = 0

 と変形できる。 

([2])

(7)

2.2 固有値の計算 2次曲線の分類や描画のため、2次の実対称行列

A =

(

a b

b c

)

の固有値を求める。 固有方程式 

det

(

λ

− a −b

−b λ − c

)

= 0

を解き固有値を求める。

λ

− a −b

−b λ − c

= 0

2行

2

列の行列式なので

− a)(λ − c) − b

2

= 0

と表せる。λに関する2次方程式

λ

2

− aλ − cλ + ac − b

2

= 0

λ

2

− (a + c)λ + ac − b

2

= 0

となる。

2

次方程式の解の公式を用いて固有値

λ

を求めると

λ =

(a+c)±

(a+c)2−4(ac−b2) 2 固有値

λ

が得られる。 また、

(a + c)

2

− 4(ac − b

2

) = 0

となるとき、固有値は重解となる。

(8)

2.3 固有ベクトルの計算 2次の実対称行列

A

の対角化に必要な回転行列をもとめるため、2次の 実対称行列

A

の固有ベクトルを求める。 前節で求められた2つの固有値をそれぞれ

λ

1

=

a + c +

(a + c)

2

− 4(ac − b

2

)

2

λ

2

=

a + c

(a + c)

2

− 4(ac − b

2

)

2

とおく。 固有値が

λ

1 となるとき

,

求める固有ベクトル

A

1 を

A

1

=

(

x

1

y

1

)

とおくと

(

λ

1

− a

−b

−b

λ

1

− c

) (

x

1

y

1

)

= 0

となる。連立方程式にすると

1

− a)x

1

− by

1

= 0

−bx

1

+ (λ

1

− c)y

1

= 0

(2.1)

また、

(2.1)

の上の式より

b

̸= 0

ならば

y

1

=

1

− a)x

1

b

(2.2)

(9)

となる。

(2.2)

より固有ベクトルは、

A

1

=

(

1

1−a) b

)

x

1 となる。

b = 0

である場合は、

A =

(

a 0

0 c

)

となるため、もともと対角行列なので、固有ベクトルを求めない。 次に、固有値が

λ

2 のときの固有ベクトルの求め方も、固有値が

λ

1 の時と同 様なので 固有値が

λ

2 の時の固有ベクトルを

A

2

=

(

x

2

y

2

)

とおくと

(

λ

2

− a

−b

−b

λ

2

− c

) (

x

2

y

2

)

= 0

となる。連立方程式にすると

(10)

2

− a)x

2

− by

2

= 0

−bx

2

+ (λ

2

− c)y

2

= 0

(2.3)

(2.3)

の下の式より

b

̸= 0

ならば

x

2

=

2

− c)y

2

b

(2.4)

となる。

(2.4)

より固有ベクトルは、

A

2

=

(

2−c) b

1

)

y

2 となる。

b = 0

である場合は、

A =

(

a 0

0 c

)

となるため、もともと対角行列なので、固有ベクトルを求めない。 2.4 2次方程式を標準形への変換 2次の実対称行列

A

の固有値、固有ベクトルを求められたので、2次方 程式を回転行列を用いて、標準形へと変換する。 前項2.3により求めた2次の実対称行列

A

の固有値を

λ

1

, λ

2 とし 2次の実対称行列

A

の固有ベクトル

A

1

=

(

x

1

y

1

)

, A

2

=

(

x

2

y

2

)

より得られた回転行列

P =

(

j

−k

k

j

)

 とする。

(11)

2.1

行列を用いた2次方程式の変形 で変形した式

(

x y

)

A

(

x

y

)

+ BP

(

x

y

)

+ f = 0

  に

(

x

y

)

= P

(

u

v

)

と変数変換を施すと        t

P AP =

(

λ1

0

0

λ2

)

より

(

u v

) (

λ1

0

0

λ2

) (

u

v

)

+ BP

(

u

v

)

+ f = 0

   

([3])

λ

1

u

2

+ λ

2

v

2

+ (dj + ek)u + (

−dk + ej)v + f = 0

  と

uv

の係数が0の標準形に変形できる。 回転行列は直交行列であり、合同変換なので、入力された当初の2次方程式 と2次方程式の標準形の描く2次曲線は、合同である。

(12)

2.5 2次曲線の分類  2次方程式が表す図形   2次の実対称行列

A =

(

a b

b c

)

|a|+|b|+|c| > 0)

の固有値を

λ

1

, λ

2とする。 2次方程式

ax

2

+ 2bxy + cy

2

+ dx + ey + f = 0

が表す図形は次の通りで ある。

λ

1

λ

2

> 0

ならば        楕円、1点または空集合

λ

1

λ

2

< 0

ならば           双曲線、または交差する2直線

λ

1

λ

2

= 0

ならば         放物線、平行な2直線、1直線、または空集合  

([2])

  2次の実対称行列

A

から固有値を求めようとすると λ2

− (a + c)

λ

+ (ac

− b

2

) = 0

よって、2つの固有値の積の符号は、 行列

A

を構成する

a, b, c

によって決まることがわかる。 以下のように、

2

次曲線を2次方程式の係数

a, b, c

によって、分類できる。

ac

− b

2

> 0

 ならば 

λ

1

λ

2

> 0

 なので       楕円、1点または空集合  (楕円型)

ac

− b

2

< 0

 ならば 

λ

1

λ

2

< 0

  なので           双曲線、または交差する2直線  (双曲線型)

ac

− b

2

= 0

 ならば 

λ

1

λ

2

= 0

 なので        放物線、平行な2直線、1直線、または空集合 (放物線型)

(13)

3

2

次曲線の描画 3.1 楕円型 3.1.1 楕円、1点 2定点からの距離の和が、一定である点の軌跡を楕円という。2定点を楕 円の焦点、2つの定点の中点を楕円の中心という。本研究の、楕円の描画 は、楕円の中心を用いて描画する。

ac

− b

2

> 0

ならば

λ

1

λ

2

> 0

となるので       2次曲線は 楕円、1点または空集合 (楕円型) 楕円を描画するために、入力された2次方程式を変形した標準形

λ

1

u

2

+ λ

2

v

2

+ (dj + ek)u + (

−dk + ej)v + f = 0

(3.1)

を、楕円の方程式

x

2

a

2

+

y

2

b

2

= 1

(a > 0, b > 0)

(3.2)

の形に変形する。 2次方程式(

3.1

)を平方完成すると

λ

1

(u+

dj + ek

1

)

2

2

(u+

−dk + ej

2

)

2

+f

−λ

1

(

dj + ek

1

)

2

−λ

2

(

−dk + ej

2

)

2

= 0

(3.3)

u

0

=

dj+ek1

, v

0

=

−dk+ej2 とすると(

3.3

)は

λ

1

(u + u

0

)

2

+ λ

2

(u + v

0

)

2

+ f

− λ

1

(u

0

)

2

− λ

2

(v

0

)

2

= 0

(3.4)

両辺を

f

− λ

1

(u

0

)

2

− λ

2

(v

0

)

2 で割ると

λ

1

(u + u

0

)

2

+ λ

2

(u + v

0

)

2

λ

1

(u

0

)

2

+ λ

2

(v

0

)

2

− f

= 1

(14)

λ

1

(u + u

0

)

2

λ

1

(u

0

)

2

+ λ

2

(v

0

)

2

− f

+

λ

2

(u + v

0

)

2

λ

1

(u

0

)

2

+ λ

2

(v

0

)

2

− f

= 1

(3.5)

3.5)

で入力された2次方程式を、楕円の方程式の形にできた。 (

3.2)

の楕円の媒介変数表示は、

x = a cos θ

y = b sin θ

なので、(

3.5)

より 入力された2次方程式(楕円型)の媒介変数表示は、

a

1

=

λ1(dj+ek2λ1 )22(−dk+ej2λ2 )2−f −λ1

,

b

1

=

λ1(dj+ek2λ1 )22(−dk+ej2λ2 )2−f −λ2 とおくと

u =

−u

0

+ a

1

cos θ

  (

0

≤ θ ≤ 2π

)  

v =

−v

0

+ b

1

sin θ

  (

0

≤ θ ≤ 2π

) となり、

θ

を変化させることで描画をおこなう。 このとき、楕円の中心は(

− u

0

,

−v

0

)

となる。 図1 楕円

(15)

3.1.2 空集合 空集合は、描画をおこなわない。 3.2 双曲線型 3.2.1 双曲線 2つの定点からの距離の差が一定である点の軌跡を双曲線という。 これら2つの定点を双曲線の焦点という。 また、焦点の中点を双曲線の中心という。     

([5])

本研究の双曲線の描画は、双曲線の中心を用いて描画する。

ac

− b

2

< 0

ならば

λ

1

λ

2

< 0

となるので      2次曲線は、双曲線、または交差する2直線 (双曲線型) 双曲線を描画するために、入力された2次方程式を変形した標準形

λ

1

u

2

+ λ

2

v

2

+ (dj + ek)u + (

−dk + ej)v + f = 0

(3.6)

を、双曲線の方程式

x

2

a

2

y

2

b

2

= 1

(a > 0, b > 0)

(3.7)

      の形に変形する。 2次方程式(

3.1

)を平方完成すると

λ

1

(u+

dj + ek

1

)

2

2

(u+

−dk + ej

2

)

2

+f

−λ

1

(

dj + ek

1

)

2

−λ

2

(

−dk + ej

2

)

2

= 0

(3.8)

u

0

=

dj+ek1

, v

0

=

−dk+ej2 とすると(

3.3

)は

(16)

λ

1

(u + u

0

)

2

+ λ

2

(v + v

0

)

2

+ f

− λ

1

(u

0

)

2

− λ

2

(v

0

)

2

= 0

(3.9)

f

− λ

1

(u

0

)

2

− (λ

2

)(v

0

)

2 を移項し、両辺を

−(f − λ

1

(u

0

)

2

− λ

2

(v

0

)

2

)

で割ると

λ

1

(u + u

0

)

2

+ λ

2

(v + v

0

)

2

λ

1

(u

0

)

2

+ λ

2

(v

0

)

2

− f

= 1

λ

1

(u + u

0

)

2

λ

1

(u

0

)

2

+ λ

2

(v

0

)

2

− f

+

λ

2

(v + v

0

)

2

λ

1

(u

0

)

2

+ λ

2

(v

0

)

2

− f

= 1

(3.10)

λ

2

< 0

なので、(

3.10)

で入力された2次方程式を、双曲線の方程式の形にで きた。 (

3.7)

の双曲線の媒介変数表示は、

x =

a

cos θ

y = b tan θ

なので、(

3.10)

より 入力された2次方程式(双曲線型)の媒介変数表示は、

a

1

=

λ1(dj+ek2λ1 )22(−dk+ej2λ2 )2−f −λ1

,

b

1

=

λ1(dj+ek2λ1 )22(−dk+ej2λ2 )2−f −λ2 とおくと

u =

−u

0

+

a

1

cos θ

   (

π

2

< θ <

π

2

)  

v =

−v

0

+ b

1

tan θ

   (

π

2

< θ <

π

2

) となり、

θ

を変化させることで描画をおこなう。 この時、双曲線の中心(双曲線の漸近線の交点)は(

− u

0

,

−v

0

)

となる。 3.2.2 交差する2直線 交差する2直線の描画は、前項の

3.2.1

の双曲線と同様の方法で描画して いる。

(17)

図2 双曲線 3.3 放物線型 3.3.1 放物線

1

つの定点とこの点を通らない定直線とから等距離にある点の軌跡を、放 物線という。この定点を焦点という。

([5])

ac

− b

2

= 0

ならば

λ

1

λ

2

= 0

となるので        放物線、平行な2直線、1直線、または空集合 (放物線型)

λ

1

> λ

2 で

λ

1

> 0, λ

2

= 0

の場合 放物線を描画するために、入力された2次方程式を変形した標準形

λ

1

u

2

+ (dj + ek)u + (

−dk + ej)v + f = 0

(3.11)

を、放物線の方程式

y

2

= 4px

(3.12)

の形に変形する。 2次方程式(

3.11

)を平方完成すると

(18)

λ

1

(u +

dj + ek

1

)

2

+ (

−dk + ej)v + f − λ

1

(

dj + ek

1

)

2

= 0

(3.13)

u

0

=

dj+ek1 とすると(

3.13

)は

λ

1

(u + u

0

)

2

+ (

−dk + ej)v + f − λ

1

(u

0

)

2

= 0

(3.14)

移項すると

λ

1

(u + u

0

)

2

=

−(−dk + ej)v − f + λ

1

(u

0

)

2 両辺を

λ

1 で割ると

(u + u

0

)

2

=

−(−dk + ej)v − f + λ

1

(u

0

)

2

λ

1

(3.15)

3.15)

で入力された2次方程式を、放物線の方程式の形にできた。  (

3.12)

の放物線の媒介変数表示は、

x = pt

2

y = 2pt

なので、(

3.15)

より 入力された2次方程式(放物線型)の媒介変数表示は、

p

1

=

−(−dk+ej)1

,

v

0

=

λ1(−fλ1+(u0)2) (−dk+ej) とおくと

u =

−u

0

+ 2p

1

t

  (

0

≤ t ≤ 100

)  

v = v

0

+ p

1

t

2  (

0

≤ t ≤ 100

) となり、

t

を変化させることで描画をおこなう。 この時、放物線の頂点は(

− u

0

, v

0

)

となる。

λ

1

> λ

2 で

λ

1

= 0, λ

2

< 0

となる時 放物線を描画するために、入力された2次方程式を変形した標準形

(19)

λ

2

v

2

+ (dj + ek)u + (

−dk + ej)v + f = 0

(3.16)

を、放物線の方程式

y

2

= 4px

(3.17)

の形に変形する。 2次方程式(

3.16

)を平方完成すると

λ

2

(v +

−dk + ej

2

)

2

+ (dj + ek)u + f

− λ

2

(

−dk + ej

2

)

2

= 0

(3.18)

v

0

=

−dk+ej 2 とすると(

3.18

)は

λ

2

(v + v

0

)

2

+ (dj + ek)u + f

− λ

2

(v

0

)

2

= 0

(3.19)

移項すると

λ

2

(v + v

0

)

2

=

−(dj + ek)u − f + λ

2

(v

0

)

2 両辺を

λ

2 で割ると

(v + v

0

)

2

=

−(dj + ek)u − f + λ

2

(v

0

)

2

λ

2

(3.20)

3.20)

で入力された2次方程式を、放物線の方程式の形にできた。  (

3.17)

の放物線の媒介変数表示は、

x = pt

2

y = 2pt

なので、(

3.20)

より 入力された2次方程式(放物線型)の媒介変数表示は、

p

1

=

−(dj+ek)2

,

u

0

=

λ2(−fλ2+(v0)2) (dj+ek) とおくと

u = u

0

+ p

1

t

2 (

0

≤ t ≤ 100

)  

v =

−v

0

+ 2p

1

t

 (

0

≤ t ≤ 100

(20)

となり、

t

を変化させることで描画をおこなう。

この時、放物線の頂点は(

− v

0

, u

0

)

となる。

(21)

3.3.2 平行な2直線、1直線 放物線型の2次曲線が平行な2直線になる場合は、  

λ

1

> λ

2 で

λ

1

> 0, λ

2

= 0

となる時に       

− dk + ej = 0

の場合

λ

1

> λ

2 で

λ

1

= 0, λ

2

< 0

となる時に       

dj + ek = 0

の場合        の2パターンである。

λ

1

> λ

2 で

λ

1

> 0, λ

2

= 0

となる時に  

− dk + ej = 0

の場合、2次方程式は、

λ

1

u

2

+ (dj + ek)u + f = 0

(3.21)

2次方程式(

3.21

)を平方完成すると

λ

1

(u +

dj + ek

1

)

2

− λ

1

(

dj + ek

1

)

2

+ f = 0

移項すると

λ

1

(u +

dj + ek

1

)

2

= λ

1

(

dj + ek

1

)

2

− f = 0

両辺を

λ

1 で割り

u

0

=

dj+ek1 とすると

(u + u

0

)

2

=

λ

1

(u

0

)

2

− f

λ

1

u =

−u

0

±

λ

1

(u

0

)

2

− f

λ

1

(3.22)

(22)

よって、

(3.22)

より、平行な2直線の式は

u =

−u

0

+

λ

1

(u

0

)

2

− f

λ

1     

u =

−u

0

λ1

(u

0

)

2

− f

λ1  となる

λ

1

> λ

2 で

λ

1

= 0, λ

2

< 0

となる時に       

dj + ek = 0

の場合 2次方程式は

λ

2

v

2

+ (

−dk + ej)v + f = 0

2次方程式(

3.23

)を平方完成すると

λ

2

(v +

−dk + ej

2

)

2

− λ

2

(

−dk + ej

2

)

2

+ f = 0

移項すると

λ

2

(v +

−dk + ej

2

)

2

= λ

2

(

−dk + ej

2

)

2

− f = 0

両辺を

λ

2 で割り

v

0

=

−dk+ej2 とすると

(v + v

0

)

2

=

λ

2

(v

0

)

2

− f

λ

2

v =

−v

0

±

λ

2

(v

0

)

2

− f

λ

2

(3.23)

(23)

よって、

(3.22)

より、平行な2直線の式は

v =

−v

0

+

λ

2

(v

0

)

2

− f

λ

2    

v =

−v

0

λ

2

(v

0

)

2

− f

λ

2  となる 図4 平行な2直線 3.3.3 空集合 空集合は、描画をおこなわない。

(24)

4

2

次曲線のアニメーション 今回、作成した2次曲線のアニメーションは、2次曲線の全て(空集合を 除く)を変化させていき、描画することで、中学校や高等学校で別々に学ぶ ことが多い円や楕円、双曲線、放物線が2次方程式の係数の違いによるもの であり、2次曲線が視覚的に観察できることを目標としている。今回は、最 初に楕円からはじめて、放物線、平行な2直線、1直線、平行な2直線、双 曲線、交差する2直線、双曲線の順に変化させていく。どのように変化させ たか順に説明する。  最初の2次方程式が

ax

2

+ 2bxy + cy

2

+ dx + ey + f = 0

  (2次方程式のため

|a| + |b| + |c| > 0)

 とすると楕円からはじめるので、 λ1λ2

> 0

となるように 

ac

− b

2

> 0

とする。 図5 楕円

(25)

係数

b

の値を増加させていき、

ac

− b

2

= 0

となるとき、λ1λ2

= 0

となるので、楕円から放物線に推移す る。 図6 放物線 係数

e

の値を増加させていき、

ac

− b

2

= 0

かつ

−dj + ek = 0

となるとき、平行な2直線を描画する。

1

> λ

2 で

λ

1

> 0, λ

2

= 0

となる時

)

図7 平行な2直線

(26)

f

の値を増加させていき、

1

直線を描画する。

図8 1直線

f

の値を減少させていき、平行な2直線を描画する。

(27)

係数

b

の値を増加させていき、

ac

− b

2

< 0

となるとき、λ1λ2

< 0

となるので、双曲線を描画する。

図10 双曲線

f

の値を増加させていき、交差する

2

直線を描画する。

(28)

f

の値を増加させていき、先ほどとは違う開き方の双曲線を描画する。 図12 双曲線 4.1 2次曲線の描画の全体の流れ これまで、2次曲線の楕円や双曲線、放物線の描画について説明したが、 描画までの全体の流れを説明する。

2次曲線を描画するウィンドウの開く位置や、サイズの指定、軸などの 設定をおこなう。

関数

facilitator

で、2次方程式

ax

2

+ 2bxy + cy

2

+ dx + ey + f = 0

を 入力する。

• display

関数の中の、関数で入力された2次方程式から固有値・固有ベ クトルを計算する。

同じく、

display

関数の中の、関数で回転行列を求め、2次方程式を標 準形に変形する。

その後、2次の実対称行列

A

の2つの固有値(重解の場合は1つ)の積 の符号で、楕円型、双曲線型、放物線型に分類する。

(29)

分類された中で、場合分けをおこない対応する標準形の2次曲線を描画 する。

最初に入力された2次方程式を描画した標準形の2次曲線と回転行列の 逆行列を用いて描画する。

idle

関数でカウントし、ある程度描画したら、終了させる。また、2 次方程式の係数を変化させる。詳しくは、次項で説明する。

 一連の動作を繰り返す。

main

関数  

int main (int argc, char *argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);

glutInitWindowPosition(0, 0);

xsize = 600; ysize = 600;

glutInitWindowSize(xsize, ysize);

glutCreateWindow("quadratic curve");

glClearColor(1.0, 1.0, 1.0, 1.0);

facilitator();

glutDisplayFunc(display);

glutReshapeFunc(reshape);

glutIdleFunc(idle);

glutMainLoop();

return 0;

}

 

(30)

5

追加した機能 2次曲線を描画するうえで、2つの機能を追加した。 1つめの機能は、最初に入力した2次方程式の2次曲線の描画である。最初 に入力した2次方程式を回転行列を用いて標準形に変形しているが、回転行 列は直交行列なので、入力した2次方程式と標準形の2次方程式が描く2次 曲線は、合同である。そのため、回転行列から、何度回転させたのか計算し、 標準形(2次方程式に交差項

xy

のない簡単な形)の描画をおこなったあと、 標準形への変形に使用した回転行列

P

の逆行列用いて、最初に入力した2 次方程式の2次曲線の描画をおこなっている。この機能により、入力した2 次方程式とその2次方程式の標準形の2次曲線が同時に観察できる。使用者 が入力した2次曲線の合同変換を、観察できる。 図13 標準形と入力された2次方程式の描画  2つめの機能は、2次曲線のアニメーションをつくるうえで作成した機能 で、2次曲線を描画をおこなったあと、入力した2次方程式の係数と変化幅 を指定すれば、2次曲線の形状変化を観察できる機能である。図形を大きく していったり、今回作成したアニメーションのように、別の2次曲線へ変化 していく様を観察できる。

(31)

図14 変化前の楕円 図15 変化後の楕円

6

おわりに 6.1 まとめ 本研究では1 2次曲線を統一的に描画するプログラムと2 パラメータ変化にともなう2次曲線の形状変 化(楕円 ⇐⇒ 放物線 ⇐⇒ 双曲線)をアニメーションで表現するプログラムを作成した。 2次曲線は、以下の手順で統一的に描画した。 2次方程式ax2+ 2bxy + cy2+ dx + ey + f = 0(2次方程式のため|a| + |b| + |c| > 0)の係数a, b, c からなる行列Aの固有値・固有ベクトルを計算する。 固有ベクトルから得られる回転行列を用いて、入力された2次方程式を交差項xyのない標準形に変形 する。 得られた2つ固有値の積の符号から、2次曲線を楕円型(固有値の積が正)、双曲線型(固有値の積が 負)、放物線型(固有値の積が0)の3つに分類する。楕円型の2次曲線には、楕円、1点、空集合があ る。双曲線型の2次曲線には、双曲線、交差する2直線がある。放物線型の2次曲線には、放物線、平 行な2直線、1直線、空集合がある。 分類した中で対応する(交差項のない標準形で与えられる)2次曲線を描画する。楕円は、媒介変数表示 u = u0+ a cos θ,v = v0+ b sin θ  (0≤ θ ≤ 2π)   を利用し描画する。双曲線は、媒介変数表示 u = u0± a cos θ,v = v0+ b tan θ (− π 2 < θ < π 2)   を利用し描画する。放物線は、つぎの媒介変数表示を利用し描画する。

(32)

u = u0+ 2pt,v = v0+ pt2 (− ∞ < t < ∞ 描画した2次曲線と固有ベクトルから得られる回転行列の逆行列を用いて、当初の2次方程式で定まる 2次曲線を描画する。  パラメータの変化にともなう2次曲線の形状推移をアニメートするプログラムは以下の手順で作成した。 楕円から描画をスタートする。ac− b2> 0の時、2つの固有値の積はλ1λ2> 0となる。 係数 bac− b2 = 0 になるまで大きくして、2次曲線の形状を楕円から放物線に推移させる。 ac− b2= 0の時、2つの固有値の積はλ 1λ2= 0となり、このときに放物線になる。 係数dまたはeを調節して、放物線から平行な2直線に推移させる。 平行な2直線の間隔が小さくなり、ついには1直線になるようにfを調節する。 • fを調節して、平行な2直線に戻す。 係数bを大きくして、平行な2直線から双曲線に推移させる。ac− b2< 0の時、2つの固有値の積は λ1λ2< 0となる。 • fを調節して、双曲線から交差する2直線へ推移させる。 • fを調節して、交差する2直線から、先ほどと開き方の違う双曲線と変形させる。 6.2 検討 プログラムを作成、試行錯誤する上で、本研究の2次曲線の描画プログラムを使用するには、初回で使用者 が望んだ形の2次曲線の入力が難しかったり、自由な値でパラメータの変化を止められない点が気になった。 今回、実装することができなかったが、2次曲線の変化を体感的に理解しやすい、マウスなどを使って使用者 が、簡単に触れられる機能があるとよりよいと思う。今回のプログラムは、中学生や高校生が使うには、少し 使いにくくなっており、誰でも簡単に気軽に使用できるようにする難しさや、重要性を認識した。 参考文献 [1] 石村園子、征服 微分積分 2次曲線・パラメータ曲線と極微分方程式、東京書籍、2003年 [2] http://www.math.ryukoku.ac.jp/˜tsutomu/LA1/16/lecture16 6.pdf [3] http://www.math.ryukoku.ac.jp/˜tsutomu/LA1/16/lecture16 5.pdf [4] 堂前孝信 吉田大吾、START DASH!! 数学 6 複素数平面と2次曲線、河合出版、2015年 [5] 山崎圭次郎 片山孝次 有馬哲、代数・幾何入門 2次曲線 ベクトル 行列、実教出版、1998年

図 2 双曲線 3.3 放物線型 3.3.1 放物線 1 つの定点とこの点を通らない定直線とから等距離にある点の軌跡を、放 物線という。この定点を焦点という。 ([5]) ac − b 2 = 0 ならば λ 1 λ 2 = 0 となるので        放物線、平行な2直線、1直線、または空集合 (放物線型) λ 1 &gt; λ 2 で λ 1 &gt; 0, λ 2 = 0 の場合 放物線を描画するために、入力された2次方程式を変形した標準形 λ 1 u 2 + (dj + ek)u + ( −dk
図 8 1直線
図 10 双曲線
図 14 変化前の楕円 図 15 変化後の楕円 6 おわりに 6.1 まとめ 本研究では ⃝1 2次曲線を統一的に描画するプログラムと ⃝2 パラメータ変化にともなう2次曲線の形状変 化(楕円 ⇐⇒ 放物線 ⇐⇒ 双曲線)をアニメーションで表現するプログラムを作成した。 2次曲線は、以下の手順で統一的に描画した。 • 2次方程式 ax 2 + 2bxy + cy 2 + dx + ey + f = 0 (2次方程式のため |a| + |b| + |c| &gt; 0 )の係数 a, b, c からなる行列

参照

関連したドキュメント

This concludes the proof that the Riemann problem (1.6) admits a weak solution satisfying the boundary condition in the relaxed sense (1.6c).... The two manifolds are transverse and

Rhoudaf; Existence results for Strongly nonlinear degenerated parabolic equations via strong convergence of truncations with L 1 data..

In [13], some topological properties of solutions set for (FOSPD) problem in the convex case are established, and in [15], the compactness of the solutions set is obtained in

The pa- pers [FS] and [FO] investigated the regularity of local minimizers for vecto- rial problems without side conditions and integrands G having nonstandard growth and proved

We obtain some conditions under which the positive solution for semidiscretizations of the semilinear equation u t u xx − ax, tfu, 0 &lt; x &lt; 1, t ∈ 0, T, with boundary conditions

Thus, Fujita’s result says that there are no global, nontrivial solutions of (1.3) whenever the blow up rate for y(t) is not smaller than the decay rate for w(x, t) while there are

Lemma 4.1 (which corresponds to Lemma 5.1), we obtain an abc-triple that can in fact be shown (i.e., by applying the arguments of Lemma 4.4 or Lemma 5.2) to satisfy the

[30] T. Guerin; Existence of nonnegative solutions to singular elliptic problems, a variational approach, Discrete Contin. Guerin; Multiplicity of weak solutions to subcritical