2019年9月2日月曜日

Fourier seriesのグラフをグラフ電卓で表示する

Fourier seriesと言っても、一般的な手法ではなく、ここでは次の式のグラフを描てみようと。

sin(x)+sin(3x)/3+sin(5x)/5+ ...

数式処理の出来る電卓なら、無限級数の記述も出来るかも知れませんが、グラフ電卓が高機能と言っても、無限大を扱えるものは少ない。
そこで、級数の項を途中まで計算する事になります。
この項目数を気ままに設定して、グラフの形状が変化する辺りを観察するのも一興ではあります。

さて、上記の式ですが、バカ正直に入力してもいいのですが、高機能電卓の多くに、総和(∑)機能があります。これを使えば、上記の式は、こんな具合で記述できそうです。

∑(sin((2K-1)x)/(2K-1), K, 1, T)

変数Kを1からTまで1づつ増やしつつ、計算式 sin((2*K-1)*x)/(2+K-1)) の総和を求める式です。

この表式は、fx-CG50で使えるのですが、面白いのは、この式をグラフ機能で使うには、チョットばかり手間が必要なのです。
まず、∑計算を入浴するには、Optionキー、CALCメニュー、と進めますが、グラフの式入力では、CALCメニューの中に∑が出てこないのです。マイッタ。
直接、∑の式を入力できないのですが、色々と試した所「抜け穴」がありました。それは、FunctionMemoryを使う方法です。

fx-CG50などの高機能電卓では「自然数式表示」がウリになっておりますが、数式記憶の機能であるFunctionMemoryは、自然数式表示モード (Mathモード)では利用できません。そこで、SetUpからInput/OutputをLinearにしておきます。
そうしてから、上記の式を入力しておき、OptionからFuncMem (メニューの3ページ目にあります)を使って、適当な番号のFunction memoryに保存しておきます。
そして、変数Tに、予め、適当な数を入れておきます。

これで準備が出来ました。グラフ機能を呼び出し、適当な数式メモリーに、先程数式を記憶しておいたFunctionMemoryの番号を指定して、入力します。#1に記憶したならば、こんな風です。

Y1=fn 1

これでグラフを描けば、アラ不思議、Fourier seriesのグラフが描かれましたヨ !
変数Tの値を変えるためには、いちいちRun-Matrixメニューを使う必要がありますが、面白いので、やってみて頂戴 !

4 件のコメント:

Sentaro さんのコメント...

akatuki様、こんにちは!

ちょこっとバタバタで出遅れました。(^^;

グラフ描画での数式メモリの使い方は目からウロコでした。

グラフの[SHIFT]+[4]のCATALOGで入力できることはできるんですが、
数式メモリだと一度記憶させとけば使いまわしできるので便利ですね。

で、実際に描画させようと思ったら、
Syntax Error
で描画できない状況でハマってます。(^^;

ViewWindowの設定を変えても”Syntax Error”連発なので、
Σがエラーになっている感じですが、
電卓本来の機能を使いこなせてないのがバレバレですみません。(^^;

akatuki さんのコメント...

Sentaro 様、お越し !

> で、実際に描画させようと思ったら、
> Syntax Error
> で描画できない状況でハマってます。(^^;
> ViewWindowの設定を変えても”Syntax Error”連発なので、
> Σがエラーになっている感じですが、

そうなんですヨ。グラフ機能では、∑計算でエラーが出ているらしい。
グラフにする式の入力で∑がメニューキーで入力出来ないのは、恐らく、グラフ式に∑を使えないかららしいのです。
グラフにする式の微積分のグラフも描けるので、ある程度、数式分析的に処理してグラフを表示しているのカナ ? という感じで、∑計算を入れてしまうと式の微積分がうまく行かないので、グラフ機能では∑計算を使わないようにしているのかなぁ、と思うのであります。
Formulae memoryに式を記憶、「fn 1」の様にしてグラフ式に書き出すと、数式を最適化する事が出来ず、ひたすら数値を計算してグラフにするしか、やりようがないので、数値グラフを描く、という感じで描けるのではないか、と。裏ワザっぽいやり方ですネ、オソマツ !
実際、少し凝ったグラフならば、最後はプログラム機能を使うだろうという考えなのか、そのためのプログラム機能だったりするのか、とも思うのですが、折角のグラフ機能なので。もう少し活用出来たら素敵だと思うのであります。

Sentaro さんのコメント...

akatuki様、こんにちは!

あ、これは計算できないので正解だったのですね。(^^;

しかし、なぜにΣ計算を全面的に出来なくしてるんでしょう。
出来るΣ計算もあるはずなのに何か納得いかないかもですね。

ここはひとつプログラムを組んで描きさなさいということでしょうかね。(^^;

akatuki さんのコメント...

Sentaro 様、遅くなってしまい、申し訳ない。

> あ、これは計算できないので正解だったのですね。(^^;

どうも、そのようではあります。

> しかし、なぜにΣ計算を全面的に出来なくしてるんでしょう。
> 出来るΣ計算もあるはずなのに何か納得いかないかもですね。

当方が思うのは、最初の仕様でこうした制約を設定しておき、改良によって徐々に解決していこうと、そうした考えなのではないか、と。
確か、昔のCASIOポケコンでは、三角関数のパラメタの範囲が±4π radだったのでしたが、今日、その範囲はかなり拡大されております。
また、fx-5800Pでは、複素数計算機能は四則演算に限定されておりましたが、fx-CG50では、指数・対数まで拡張されてきました。
∑計算も、最近のグラフ電卓で採用されていて、その利用用途がどこまであるのか、それをユーザーのフィードバックを聞きながら、改良を進めていくのだろうと期待したいのです。fx-CG50ならば、ファームウェアの更新もOKですからネ。

> ここはひとつプログラムを組んで描きさなさいということでしょうかね。(^^;

仰るように、そういう事を考えているから、プログラム機能なのかなぁ ? fx-CP400系統は、数式の加工、CASとかも出来たはずですから、Σ計算とかをグラフで使いたい場合には、こうした製品をどうぞ、なのか ? ウーン。だったら、fx-CP400系統も、国内で販売してほしいところではあります。そういう需要が少ないので、国内で販売されていないのが実情だったりしますが。