うしブログ

Geogebraの使い方、応用など

Geogebraで曲線と直線との交点を全て求める方法

はじめに

Geogebraは、2次関数や3次関数のグラフと直線との交点であれば、Intersect[ ]コマンドで、全ての交点を求めることができます。

f:id:usiblog:20160707063635p:plain

しかし、それ以外の関数(三角関数など)のグラフと直線との交点については、単純にIntersect[ ]コマンドを実行しただけでは、すべての交点を表示することができません。

f:id:usiblog:20160707064332p:plain

上記の曲線で、交点をすべて表示させるには、どうすれば良いでしょうか。

 

グラフをPolyline[ ]で作成する

その方法の一つとして、グラフを折れ線Polyline[ ]として作成するというやり方があります。

数値オブジェクトfreq(0〜100、増分1)を用意します。

係数a,b,c,dを適当に用意したのち、以下のように点列(list1)を作成します。

Sequence[(t / freq, a sin(t / freq)³ + b sin(t / freq)² + c sin(t / freq) + d), t, 0, 10freq]

これは、関数上の点を、0<x<10の範囲で1/freqごとにプロットするものです。

f:id:usiblog:20160707065320p:plain

freq=1の場合。x=0からはじめて、1刻みでグラフ上の点をプロットしている。

 

f:id:usiblog:20160707065422p:plain

freq=2の場合。こんどは1/2刻みでグラフ上の点をプロットしている。

 

このようにして作成した点列(list1)を、折れ線で結びます。

PolyLine[list1]

f:id:usiblog:20160707065707p:plain

freq=2の場合。折れ線はまだギザギザしている。

 

f:id:usiblog:20160707065818p:plain

freq=100の場合。ここまでくるとなめらかな曲線になる。freqを大きくするほど、折れ線はより関数のグラフに近づく。

 

そして、Polyline[ ]で作成した折れ線オブジェクトと直線との交点であれば、Intersect[ ]コマンドで全て求めることができます。

 

f:id:usiblog:20160707070145p:plain

以上が、今回思いついた方法となります。

 

参考として、アプレットを掲載します。