(57)【特許請求の範囲】
【請求項１】
微分演算機能及び合成関数機能を具備する関数電卓であって、
微分方程式を解くモードを設定する設定手段と、
前記設定手段により設定された微分方程式モードにおいて、数字の添え字により微分の階数を表した微分方程式をユーザ操作にしたがって入力する方程式入力手段と、
この方程式入力手段により入力された微分方程式に含まれる添え字付き変数記号の直後に括弧記号「（」が入力されているか否かを判別し、括弧記号「（」が入力されていると判別された際は、前記変数記号と前記括弧記号「（」の間に乗算記号を挿入する乗算記号挿入手段と、
前記乗算記号挿入手段により乗算記号が挿入された微分方程式を表示する式表示制御手段と
を備えていることを特徴とする関数電卓。
【請求項２】
前記乗算記号挿入手段は、前記方程式入力手段により微分方程式が入力された後にＥＸＥキーが操作されることに応じて添え字付き変数記号の直後に括弧記号「（」が入力されているかを判別し、乗算記号を挿入することを特徴とする請求項１に記載の関数電卓。
【請求項３】
前記微分方程式は、高階微分方程式であることを特徴とする請求項２に記載の関数電卓。
【請求項４】
前記微分方程式は、連立微分方程式であることを特徴とする請求項２に記載の関数電卓。
【請求項５】
微分演算機能及び合成関数機能を具備する関数電卓として動作するコンピュータを、
微分方程式を解くモードを設定する設定手段、
前記設定手段により設定された微分方程式モードにおいて、数字の添え字により微分の階数を表した微分方程式をユーザ操作にしたがって入力する方程式入力手段、
この方程式入力手段により入力された微分方程式に含まれる添え字付き変数記号の直後に括弧記号「（」が入力されているか否かを判別し、括弧記号「（」が入力されていると判別された際は、前記変数記号と前記括弧記号「（」の間に乗算記号を挿入する乗算記号挿入手段、
前記乗算記号挿入手段により乗算記号が挿入された微分方程式を表示する式表示制御手段、として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、入力された微分方程式或いは連立微分方程式の解を求める微分演算手段を具備する関数電卓、及びプログラムに関するものである。
【０００２】
【従来の技術】
従来より、関数電卓、ポケットコンピュータその他の電子式計算装置には様々な機能が提供されており、例えば、微分方程式或いは連立微分方程式の解を求める機能（以下、「微分演算機能」と記す。）を有するものもある。この機能を具備する電子式計算装置では、微分の階数を表す添え字が付された変数記号を使用する事により微分方程式を表現している。この様な添え字付きの変数記号を含む数式を「グラフ式」と呼んでいる。例えば、グラフ式３Ｙ２−３Ｙ１＋１において、“Ｙ２”は変数Ｙの２階微分を表し、“Ｙ１”は変数Ｙの１階微分を表している。
【０００３】
また、従来の関数電卓には、微分方程式の解を求める機能に加え、合成関数を定義する機能（以下、「合成関数機能」と記す。）を更に具備する電子式計算装置も提供されている。当該機能においても、関数を定義する為の記号を一般的な変数と区別する為に添え字付きの変数記号を使用している。例えば、変数記号Ｙ１にｘ2＋１という多項式が予め定義されており、変数記号Ｙ２に３ｘという単項式が予め定義されている場合、当該機能によれば、グラフ式Ｙ１（Ｙ２）がＹ１とＹ２との合成関数、即ち、（３ｘ）2＋１なる数式と認識される。
【０００４】
【発明が解決しようとする課題】
しかしながら、微分演算機能と合成関数機能とを兼備する従来の電子式計算装置では、微分方程式を表すグラフ式と合成関数を表すグラフ式とがユーザにとって紛らわしくなってしまうと云う課題があった。具体的には、例えば図６に示す様に微分モードにおいて、Ｙ１（１−Ｙ１）というグラフ式が入力された場合、当該グラフ式は、変数記号Ｙ１に予め定義されている式とグラフ式１−Ｙ１との合成関数なのか、或いは変数記号Ｙ１は変数Ｙの１階微分を表していて、当該Ｙ１と（１−Ｙ１）との乗算を表す微分方程式なのかが判然としない。
【０００５】
従って、ユーザが微分モードにおいて、所望の微分方程式或いは連立微分方程式に対応したグラフ式を入力したつもりであっても、当該入力されたグラフ式が電子式計算装置において合成関数を表すものと認識されてしまう事により、所期の演算結果が得られない場合があった。そして、この様な場合は電子式計算装置においてエラーが表示されないので、ユーザは当該演算結果が正しいものであると誤認してしまう事もあった。
【０００６】
この発明は、上記の課題に鑑みて成されたものであり、ユーザが微分方程式として入力した方程式が、合成関数等を表す方程式であると認識されてしまう事を回避出来る使い勝手の良い関数電卓、及びプログラムを提供する事を目的としている。
【０００７】
【課題を解決するための手段】
本発明は、微分演算機能及び合成関数機能を具備する関数電卓であって、微分方程式を解くモードを設定する設定手段と、前記設定手段により設定された微分方程式モードにおいて、数字の添え字により微分の階数を表した微分方程式をユーザ操作にしたがって入力する方程式入力手段と、この方程式入力手段により入力された微分方程式に含まれる添え字付き変数記号の直後に括弧記号「（」が入力されているか否かを判別し、括弧記号「（」が入力されていると判別された際は、前記変数記号と前記括弧記号「（」の間に乗算記号を挿入する乗算記号挿入手段と、前記乗算記号挿入手段により乗算記号が挿入された微分方程式を表示する式表示制御手段とを備えていることを特徴とする。
【００３６】
【発明の実施の形態】
図１は、本発明が適用された関数電卓１０のブロック図を示す。この関数電卓１０は、ＣＰＵ（Central Processing Unit）１１、ＲＡＭ（Random Access Memory）１２、ＲＯＭ（Read Only Memory）１３、表示部１５、キー入力部１４、及び当該各構成要素を接続するバス等から構成されている。尚、この関数電卓１０は、従来の所謂関数電卓と同様に、微分演算機能や合成関数機能等を具備するのは勿論であるが、ＲＯＭ１３内に乗算記号挿入プログラム１３２を格納した点を特徴としている。
【００３７】
ＣＰＵ１１は、ＲＯＭ１３に記憶されているシステムプログラム１３１等に規定されている手順に従って各構成要素を統一的に制御する事により、この関数電卓１０としての機能を実現する。特にＣＰＵ１１は、ＥＸＥキー１４５の押下信号を契機としてＲＯＭ１３に記憶されている乗算記号挿入プログラム１３２をＲＡＭ１２内のワーク領域１２５に更に展開し、展開したプログラムに基づいて後述する乗算記号挿入処理（図４参照）を実行する。
【００３８】
ＲＡＭ１２は、ユーザによって入力された１階乃至高階の微分方程式或いは連立微分方程式（以下、「微分方程式等」と記す。）が一時的に格納される入力バッファ領域１２１、ＣＰＵ１１によって乗算記号挿入処理が施された微分方程式等が保存される微分方程式格納領域１２２、ユーザによって入力された初期条件が格納される初期条件格納領域１２３、ＲＯＭ１３から読み出される各種プログラム等が展開されるワーク領域１２５、及び図示はしないが変数記号に対して関数を予め定義しておく為の関数定義領域等を備えている。
【００３９】
ＲＯＭ１３は、システムプログラム１３１、乗算記号挿入プログラム１３２、及びアプリケーションプログラム１３３等を記憶している。
システムプログラム１３１は、ＣＰＵ１１に当該関数電卓１０の全体的な基本機能を実現させる為のプログラムである。
乗算記号挿入プログラム１３２は、ＣＰＵ１１に乗算記号挿入処理を実現させる為のプログラムである。
【００４０】
アプリケーションプログラム１３３は、ＣＰＵ１１に周知の所謂関数電卓としての機能を実現させる為のプログラムであり、例えば、微分方程式等の数値解を求める為の微分演算プログラム、得られた数値解をプロットしてグラフを描画する為のグラフ描画プログラム、予め変数記号に定義された関数同士或いは予め定義された関数と指定された単項式或いは多項式との合成関数を求める合成関数プログラム等を含む。
【００４１】
キー入力部１４は、Ｆ１キー１４１ａ，Ｆ２キー１４１ｂ，Ｆ３キー１４１ｃ，Ｆ４キー１４１ｄ，Ｆ５キー１４１ｅ，及びＦ６キー１４１ｆから成るファンクションキー、変数記号等を入力する為の英字キー１４２、初期条件や添え字等を入力する為の数字キー１４３、四則演算記号を入力する為の四則演算記号入力キー１４４、入力した微分方程式等を確定する為のＥＸＥキー（確定キー）１４５、及び微分演算機能その他各種機能を指定する為の機能選択キー１４６から構成されており、ユーザによって押下されたキーに対応する押下信号をＣＰＵ１１へ出力する。
【００４２】
表示部１５は、液晶表示装置（ＬＣＤ；Liquid Crystal Display）により構成されており、ＣＰＵ１１の制御の下、指定された各種のメニュー画面やグラフ等を表示する。
【００４３】
以下、関数電卓１０の動作について説明する。図２は、微分演算機能における関数電卓１０の全体的な動作を説明する為のフローチャートを示し、図３は微分演算機能における表示部１５の表示態様を示す。先ず、ＣＰＵ１１は、機能選択キー１４６の押下信号に基づいて微分演算機能が選択された事を検知すると、表示部１５に微分方程式トップメニュー３１（図３参照）を表示させる（ステップＳ２０）。
【００４４】
この状態で、ＣＰＵ１１は、Ｆ１キー１４１ａの押下信号を検知すると１階の微分方程式（1st Order Equation）を解くモードに移行し（ステップＳ２１）、Ｆ２キー１４１ｂの押下信号を検知すると２階の微分方程式（2nd Order Lin Eq）を解くモードに移行し（ステップＳ２２）、Ｆ３キー１４１ｃの押下信号を検知すると高階の微分方程式（Nst Order Equation）を解くモードに移行し（ステップＳ２３）、Ｆ４キー１４１ｄの押下信号を検知すると連立微分方程式（1st Order System）を解くモードに移行し（ステップＳ２４）、Ｆ５キーの押下信号を検知すると現在のモード（最後に設定されたモード）に戻る（ステップＳ２５）。
【００４５】
ここで、これら各モードにおける処理は概ね同様である為、高階の微分方程式（Nst Order Equation）を解くモード、及び連立微分方程式（1st Order System）を解くモードについて特に説明する。
【００４６】
初めに、高階の微分方程式を解くモードについて説明する。
ＣＰＵ１１は、Ｆ３キー１４１ｃの押下信号を検知して高階の微分方程式（Nst Order Equation）を解くモードに移行すると、ユーザによってグラフ出力リストが設定されるのを待機する（ステップＳ２３１）。ＣＰＵ１１は、Ｆ３キー１４１ｃの押下信号に基づいてグラフ出力リストが設定された事を検知すると、高階の微分方程式と当該微分方程式の初期条件とを入力する為の高階メニュー画面３２（図３参照）を表示部１５に表示させる。ユーザは、この高階メニュー画面３２において所望の高階の微分方程式及び初期条件を入力する（ステップＳ２３２）。
【００４７】
その過程でＣＰＵ１１は、入力される微分方程式をＲＡＭ１２内の入力バッファ領域１２１に格納し、入力される初期条件を初期条件格納領域１２３に格納する（ステップＳ２３３）。
但し、ＣＰＵ１１は、この状態でＦ２キー１４１ｂの押下信号を検知すると、入力バッファ領域１２１に格納されている微分方程式を連立微分方程式に書き換える（ステップＳ２３４）。そして、ＣＰＵ１１は、高階の微分方程式を解くモードから連立微分方程式を解くモードに切り換え、表示部１５に表示されている高階メニュー画面３２を後述する連立メニュー画面３５に遷移させて、その連立メニュー画面３５上に当該連立微分方程式を表示させる。次いで、処理は後述するステップＳ２４３に移行する。
【００４８】
具体的には、図３に示す高階メニュー画面３２では、ユーザによってｙ（３）＝Ｙ１（１−Ｙ１）という微分方程式（グラフ式）が入力され、当該微分方程式が入力バッファ領域１２１に格納されている事を想定しているが、この段階では、当該グラフ式が、変数記号Ｙ１に予め定義されている式とグラフ式１−Ｙ１との合成関数なのか、或いは変数記号Ｙ１は変数Ｙの１階微分を表しており、当該Ｙ１と（１−Ｙ１）との乗算を表す微分方程式なのかが判然としない。
【００４９】
次いで、ＣＰＵ１１は、ＥＸＥキー１４５の押下信号を検知すると、後述する乗算記号挿入処理を実行する事により、入力バッファ１２１においてＹ１と（１−Ｙ１）との間に乗算記号としての“×”を挿入する。そして、ＣＰＵ１１は、乗算記号挿入後の微分方程式を微分方程式格納領域１２２に格納すると共に、当該微分方程式を表示部１５に再表示させる（ステップＳ２３６）。これにより、表示部１５の高階メニュー画面３２は、高階メニュー画面３３へと遷移する。遷移後の高階メニュー画面３３には、Ｙ１と（１−Ｙ１）との間に乗算記号“×”３３１が挿入されて表示される。
【００５０】
次いで、ＣＰＵ１１は、Ｆ６キー１４１ｃの押下信号を検知すると、微分演算プログラムの計算ルーチンの実行に基づいて、初期条件格納領域１２３内の初期条件について、微分方程式格納領域１２１内の微分方程式の数値解を求め（ステップＳ２３７）、求めた数値解をワーク領域１２５に一時格納する。
【００５１】
次いで、ＣＰＵ１１は、グラフ描画プログラムの実行に基づいてワーク領域１２５に一時格納した数値解を描画する事により、表示部１５にグラフ・出力リスト画面３４（図３参照）を表示させる（ステップＳ２３８）。
次いで、ＣＰＵ１１は、表示部１５に微分方程式トップメニュー画面３１を再び表示させる。これにより、当該処理は再びステップＳ２０に戻る。尚、ＣＰＵ１１は、ステップＳ２０に戻った状態で、Ｆ５キー１４１ｅの押下信号を検知すると、現在のモードである高階の微分方程式を解くモード、即ちステップＳ２３に移行する。
【００５２】
次に、連立微分方程式を解くモードについて説明する。
ＣＰＵ１１は、Ｆ４キー１４１ｄの押下信号を検知して連立微分方程式を解くモードに移行すると、ユーザによってグラフ出力リストが設定されるのを待機する（ステップＳ２４１）。ＣＰＵ１１は、Ｆ３キー１４１ｃの押下信号に基づいてグラフ出力リストが設定された事を検知すると、連立微分方程式と当該連立微分方程式の初期条件とを入力する為の連立メニュー画面３５を表示部１５に表示させる。ユーザは、この連立メニュー画面３５において所望の連立微分方程式及び初期条件を入力する（ステップＳ２４２）。
【００５３】
次いで、ＣＰＵ１１は、ステップＳ２３４において高階の微分方程式から書き換えた連立微分方程式、或いはステップＳ２４２においてユーザによって入力される連立微分方程式をＲＡＭ１２内の入力バッファ領域１２１に格納し、入力される初期条件を初期条件格納領域１２３に格納する（ステップＳ２４３）。
【００５４】
なお、図３に示す連立メニュー画面３５では、ステップＳ２３３において入力された微分方程式が、ｙ１'＝Ｙ２、ｙ２''＝Ｙ２（１−Ｙ２）という２つの連立微分方程式（グラフ式）に書き換えられ、当該各微分方程式が入力バッファ領域１２１に格納されている事を想定しているが、この段階では、後者のグラフ式が、変数記号Ｙ２に予め定義されている式とグラフ式１−Ｙ２との合成関数なのか、或いは変数記号Ｙ２は変数Ｙの２階微分を表しており、当該Ｙ２と（１−Ｙ２）との乗算を表す微分方程式なのかが判然としない。
【００５５】
次いで、ＣＰＵ１１は、ＥＸＥキー１４５の押下信号を検知すると、後述する乗算記号挿入処理を実行する事により、入力バッファ１２１においてＹ２と（１−Ｙ２）との間に乗算記号としての“×”を挿入する。そして、ＣＰＵ１１は、乗算記号挿入後の微分方程式を微分方程式格納領域１２２に格納すると共に、当該微分方程式を表示部１５に再表示させる（ステップＳ２４５）。これにより、表示部１５の連立メニュー画面３５は、連立メニュー画面３６へと遷移する。遷移後の連立メニュー画面３６では、Ｙ２と（１−Ｙ２）との間に乗算記号３６１が挿入されている。
【００５６】
次いで、ＣＰＵ１１は、Ｆ６キー１４１ｃの押下信号を検知すると、微分演算プログラムの計算ルーチンの実行に基づいて、初期条件格納領域１２３内の初期条件について、微分方程式格納領域１２１内の連立微分方程式の数値解を求め（ステップＳ２４６）、求めた数値解をワーク領域１２５に一時格納する。
【００５７】
次いで、ＣＰＵ１１は、グラフ描画プログラムの実行に基づいてワーク領域１２５に一時格納した数値解を描画する事により、表示部１５にグラフ・出力リスト画面３７を表示させる（ステップＳ２４７）。
次いで、ＣＰＵ１１は、表示部１５に微分方程式トップメニュー画面３１を再び表示させる。これにより、当該処理は再びステップＳ２０に戻る。尚、ＣＰＵ１１は、ステップＳ２０に戻った状態で、Ｆ５キー１４１ｅの押下信号を検知すると、現在のモードである連立微分方程式を解くモード、即ちステップＳ２４１に移行する。
【００５８】
以下、図４に示すフローチャートに従って乗算記号挿入処理について説明する。先ず、ＣＰＵ１１は、ＲＡＭ１２の入力バッファ領域１２１に格納されている微分方程式等を１文字ずつ参照して、変数記号Ｙｎ（ｎは添え字を表す）の直後に括弧を表す記号“（”が隣接している箇所（アドレス）を検索し（ステップＳ４１）、変数記号Ｙｎの直後に括弧を表す記号“（”が隣接している箇所を検出した場合（ステップＳ４１；ＹＥＳ）、当該箇所に乗算記号“×”を挿入する（ステップＳ４２）。
【００５９】
次いで、ＣＰＵ１１は、入力バッファ領域において当該検出した箇所に乗算記号が挿入された微分方程式等の文字列を微分方程式格納領域１２２に保存する（ステップＳ４３）。これにより、ＣＰＵ１１が当該微分方程式等を再び読み出す際には、変数記号Ｙｎが括弧で括られた多項式或いは単項式に掛けられる変数である事を認識出来る。
【００６０】
一方、変数記号Ｙｎの直後に括弧を表す記号“（”が隣接している箇所が無い場合（ステップＳ４１；ＮＯ）は、入力バッファ領域１２１に格納された微分方程式等の文字列をそのまま微分方程式格納領域に保存する（ステップＳ４３）。
【００６１】
次いで、ＣＰＵ１１は、微分方程式格納領域１２２に保存した微分方程式等を読み取って、表示部１５に再表示させる制御を行う（ステップＳ４４）。これにより、表示部１５には、変数記号Ｙｎの直後に括弧を表す記号“（”が隣接している箇所に乗算記号“×”が挿入された微分方程式等が表示される。
【００６２】
以上説明した関数電卓によれば次の様な効果が得られる。
（１）ＣＰＵ１１は、ユーザによって入力された微分方程式等において、変数記号Ｙｎの直後に括弧を表す記号“（”が隣接している箇所（アドレス）を探し当てた場合は、変数記号Ｙｎを当該括弧で括られた多項式或いは単項式に掛けられる変数であると認識して当該入力された式の数値解を求めるので、仮にＲＡＭ１２内において当該変数記号Ｙｎに対し予め関数が定義されている場合であっても、ユーザが微分方程式或いは連立微分方程式として入力した式が合成関数等を表すものと認識されて演算されてしまう事を回避できる。
【００６３】
（２）ＣＰＵ１１は、ユーザによって入力された微分方程式等において、変数記号Ｙｎの直後に括弧を表す記号“（”が隣接している箇所（アドレス）を探し当てた場合は、当該箇所に乗算記号“×”を挿入して、乗算記号挿入後の微分方程式等を表示部１５に再表示させるので、ユーザは、自己が入力した式中における変数記号Ｙｎが当該関数電卓によって括弧で括られた多項式或いは単項式に掛けられる変数であると認識された事を知ることができる。
【００６４】
以上、本発明の好適な実施の形態について説明したが、本発明の技術思想はこれに限られない。例えば、乗算記号挿入処理では、変数記号Ｙｎと括弧を表す記号“（”との隣接箇所に乗算記号“×”を挿入することとしたが、図５に示す様に変数記号Ｙｎを括る括弧を挿入する事により、当該変数記号Ｙｎが掛けられる変数である事を表記する様にしてもよい。
【００６５】
この場合は、当該括弧を挿入すると“（（Ｙｎ））”の様に二重括弧になってしまう場合は当該括弧を挿入する事を回避し、当該変数記号Ｙｎが合成関数に代入される関数であると認識する様にしてもよい。
その他、関数電卓１０の細部構成及び動作についても、本発明の趣旨を逸脱しない範囲で適宜に変更可能である。
なお、この実施の形態では、この発明を関数電卓に適用した場合を例に挙げて説明しているが、関数電卓に限られず、ポケットコンピュータその他の電子式計算装置またはパーソナルコンピューターなどの各種の電子機器に適用するようにしても良い。
【００６６】
【発明の効果】
本発明によれば、微分方程式モードにおいて、数字の添え字により微分の階数を表した微分方程式がユーザ操作にしたがって入力されると、入力された微分方程式に含まれる添え字付き変数記号の直後に括弧記号「（」が入力されているか否かを判別し、括弧記号「（」が入力されていると判別された際は、前記変数記号と前記括弧記号「（」の間に乗算記号を挿入する用にしたので、仮に当該変数記号に対して予め関数が定義されている場合であっても、ユーザが微分方程式或いは連立微分方程式として入力した式が合成関数等を表すものと認識されて演算されてしまう事を回避出来る。
【図面の簡単な説明】
【図１】一実施の形態による関数電卓の内部構成を示すブロック図である。
【図２】図１に示す関数電卓の微分演算機能における全体的な動作を示すフローチャートである。
【図３】図１に示す関数電卓の微分演算機能における表示態様を模式的に表した図である。
【図４】図１に示す関数電卓での乗算記号挿入処理を説明する為のフローチャートである。
【図５】乗算記号挿入処理の変形例を説明する為の図である。
【図６】従来技術における関数電卓の表示態様を表した図である。
【符号の説明】
１０    関数電卓（方程式処理装置）
１１    ＣＰＵ（計算記号挿入手段、式表示制御手段、解表示制御手段）
１４    入力部（入力手段）
１３２    乗算記号挿入プログラム
【図１】
0004218223.tif 000002
【図２】
0004218223.tif 000003
【図３】
0004218223.tif 000004
【図４】
0004218223.tif 000005
【図５】
0004218223.tif 000006
【図６】
0004218223.tif 000007