JP3372492B2 - 計算装置 - Google Patents

計算装置

Info

Publication number
JP3372492B2
JP3372492B2 JP33036198A JP33036198A JP3372492B2 JP 3372492 B2 JP3372492 B2 JP 3372492B2 JP 33036198 A JP33036198 A JP 33036198A JP 33036198 A JP33036198 A JP 33036198A JP 3372492 B2 JP3372492 B2 JP 3372492B2
Authority
JP
Japan
Prior art keywords
solution
value
calculation
range
initial value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP33036198A
Other languages
English (en)
Other versions
JPH11224247A (ja
Inventor
敏朗 大場
周治 加悦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP5143426A external-priority patent/JPH0721131A/ja
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP33036198A priority Critical patent/JP3372492B2/ja
Publication of JPH11224247A publication Critical patent/JPH11224247A/ja
Application granted granted Critical
Publication of JP3372492B2 publication Critical patent/JP3372492B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明は、電卓(電子式卓上
計算器)、関数電卓、ポケットコンピュータなどの計算
装置に関するもので、特に操作者が入力した式と初期値
から反復解法によって目的値を得る計算装置に関するも
のである。 【0002】 【従来の技術】通常、ニュートン法、最急降下法などの
反復解法では、ある式から、解や極大値、極小値など
(以下、単に「解」という。)を求める場合、初期値X
0から次のX1を求め、次はX1からX2を求め、とい
うように繰り返して計算し、何回か計算を繰り返した後
に最終的に求める値を得る。このとき、初期値によって
解が求められたり求められなかったりする。しかし、ど
の初期値は解が求められるかというのは式によって異な
り、一般的に初期値を設定することはできない。 【0003】そこで、従来の電卓や関数電卓を含む計算
装置では、この反復解法を実行する場合、図8に示すよ
うに行われる。 【0004】まず操作者が計算対象となる式を入力する
とともに(S201)、上記式中の変数の初期値と、必
要ならば解が存在すると思われる範囲(以下「解存在範
囲」という。)を入力する(S202)。次に、入力し
た式、初期値の値より実際の演算処理を行い(S20
3)、解を求めたときは計算結果の数値、エラー時はエ
ラーメッセージなどを表示する(S204)。 【0005】上記演算処理(S203)は、図9に示す
手順で行う。 【0006】まず、演算処理に対する各種ワークエリア
の初期設定を行う(S211)。次に、反復解法の処理
を失敗したときに、カウンタKAISUに初期値を与え
直す回数(ループ回数)を設定する(S212)。例え
ば、ループ回数は9とする。次に、反復解法処理を行う
(S213)。具体的には、図10に示すように、ま
ず、反復解法処理内での各種ワークエリアの初期設定を
行い(S221)、反復解法の最大の試行回数(ループ
回数)をカウンタcountに入れる(S222)。次
に、実際に入力Xから次のXを計算する(S223)。 【0007】例えばニュートン法では、 X=X−f(X)/f’(X) …(1) (ただし、f(X)は操作者が入力した式、f’(X)
はf(x)を微分した式にXを代入した値である。)の
計算を行う。 【0008】この計算で何かエラーが起きたときは(S
224)、この反復解法処理を終了する。エラーが無
く、式(1)の値(新たなX)が計算されていれば、解
に達しているか否かを判定して(S225)、解に達し
ていれば終了する。一方、解に達していなければ、co
untの値から1を引いて、S223に戻り、解に達す
るか、countの値がゼロ(S222で設定されたル
ープ回数が終了)になるまで、S223〜S226の処
理を繰り返す。 【0009】次に、図9に示すように、この一連の反復
解法処理(S213)で、演算エラーが発生したかどう
かを判断する(S214)。演算エラーが発生せず、解
を正しく計算できたとき、式自体に文法的エラー(シン
タックスエラー)が起きたときなどは、そのままこの演
算処理を終了する。そうでなく演算エラーが発生したと
きは、KAISUの値から1を引いて、KAISUの値
がゼロ(S212で設定されたループ回数が終了)にな
れば終了する(S215)。KAISUの値がゼロでな
ければ、上記解存在範囲内で新たな初期値を作成する
(S216)。具体的には、図11に示すように、操作
者が入力した解存在範囲の上限をR.HANI、下限を
L.HANIとし、新たな初期値を入れる場所をXとし
て、まず、XにR.HANIとL.HANIとの間を8
等分した値を入れる(S231)。次に、カウンタAc
cに(9−KAISU)を入れる。つまり、初期値を作
成する度毎に、Accに0,1,2,…,9が順番に入
る。次に、初期値(L.HANI+X*Acc)を計算
してXに入れる(S233)。これにより、図7(a)
に示すように、L.HANIからR.HANIまで、左
側(小さい側)から順番に初期値を得て、KAISUの
値がゼロになるまで、S213〜S216の処理を繰り
返す。そして、上に述べたように、解が途中で求められ
ればその値の表示を、一方どうしても解が求められない
ときはエラーの表示を行う(図8のS204)。 【0010】なお、図12は、関数電卓においてニュー
トン法を実行した場合の表示例を示している。 【0011】同図(a)に示すように、アプリケーショ
ンをスタートさせると、「EQUATION?」と表示
して、操作者に式の入力を促す。操作者が例えば式X2
−2=0を入力し、式中の変数Xの初期値としてゼロを
入力すると、それぞれ同図(b),(c)に示すように
表示される。必要ならば、同図(d)に示すように、解
存在範囲を入力する画面にして、解存在範囲[a,b]
を入力する。この例では、a=−1×1010,b=1×
1010である。演算処理を実行して、同図(e)に示す
ように、結果X=1.4142135の表示を行う。こ
こでは、式の左辺Lと右辺Rの値を同時に表示すること
により、解に至ったか否かを操作者に示している。 【0012】 【発明が解決しようとする課題】しかしながら、前記記
載の技術においては、なお以下のような課題を有してい
る。 【0013】例えばニュートン法で方程式の解を求め
るアプリケーションにおいて(X−2)2+10=0と
なるXを求めることを考えた場合、この式には実数解は
ないため、所定の回数ニュートン法を実行しても解が求
められず、最終的には計算が打ち切られる。しかし、計
算の途中経過を考えると同じ値の辺りを行ったり来たり
しているだけであり、無用な時間がかかっているという
問題がある。 【0014】例えばニュートン法で方程式の解を求め
るアプリケーションにおいてlogX=0となるXを求
めることを考えた場合、logXはX>0の範囲でしか
式の値が定義されていないため、計算の途中経過が一度
でもX≦0の範囲に入ると演算エラーとなる。ここで、
従来の如く解存在範囲を8等分して左側(小さい側)か
ら順番に初期値を与えていく場合、解存在範囲を−10
〜10と設定したとすると、1〜5回目の初期値−1
0,−7.5,−5,−2.5,0ではエラーとなり、
6回目の初期値2.5でやっと解が求められる。つま
り、ある初期値を与えてエラーとなったら、その初期値
に近い値は同じようなエラーが起こり易いにもかかわら
ず、従来は解存在範囲内で左側(または右側)から順番
に初期値を与えているため、一旦エラーになると演算時
間が長くなるという問題がある。 【0015】また、計算途中で一旦エラーとなった場
合、エラー後の処理は、エラー表示を行うか、または、
別の初期値によって反復解法処理を行うかに限られてい
る。このため、その後の初期値設定を補助することがで
きず、結局、解を求めることができない場合ある。 【0016】本発明は、上記問題点を解決するためにな
されたもので、その目的とするところは、反復解法を実
行する場合に、簡単な制御で高速に解を求めることかで
き、しかも、一旦エラーとなっても演算処理を継続で
き、解を求める可能性を高めることができる計算装置を
提供することにある。 【0017】 【課題を解決するための手段】上記本発明の目的を達成
するため、本発明の請求項1に係る計算装置は、入力さ
れた式と、その式中の変数の初期値と、解存在範囲とに
基づいて、制御部によって反復解法による演算処理を行
い、解に達したときは計算結果の数値、エラー時はエラ
ーメッセージを出力する計算装置であって、解存在範囲
の下限、上限をそれぞれ記憶する下限メモリおよび上限
メモリを備え、上記制御部は、反復解法による演算処理
のn次の途中結果Xnから(n+1)次の途中結果Xn+1
を計算した場合、上記Xn+1とXnとの大小を判定して、
上記Xn+1がXnよりも大きいとき上記下限メモリにXn
を格納して上記解存在範囲からXnよりも小さい範囲を
除く一方、Xn+1がXnよりも小さいとき上記上限メモリ
にXnを格納して上記解存在範囲からXnよりも大きい範
囲を除き、上記Xn+1が上記解存在範囲内にあるとき
(n+2)次の計算を行う一方、上記Xn+1が上記解存
在範囲外にあるとき計算を打ち切る制御を行うことを特
徴としている。 【0018】 【0019】 【0020】 【発明の実施の形態】以下に、本発明における計算装置
の実施の形態に関して図面を用いて説明する。 【0021】図1は、本発明における計算装置の外観を
示したものである。 【0022】この装置は、前面に液晶表示素子(LC
D)からなる表示部101と、入力部としてのキー部1
02を備えている。キー部102は、[0],[1],
[2],[3],[4],[5],[6],[7],
[8],[9][.][(−)]で示す数値入力用キー
と、[×][÷][+][−]で示す四則計算用キー
と、[a]〜[z]で示すアルファベット入力用キー
と、[ENTER]で示す登録および計算実行用キーを
有している。さらに、本発明の特徴を実現するために特
に3つのキーを設けている。それらは、[SOLVE
R]キーは反復解法の実行を開始するためのキー、[S
OLVE]キーは演算を実行するためのキー、[RAN
GE]キーは解存在範囲を入力する画面にするためのキ
ーをそれぞれ示している。 【0023】図2に示すように、装置内部には、表示手
段としての表示部101、および入力手段としてのキー
部102、さらに前記表示部101およびキー部102
につながる制御部(制御手段)としてのCPU(中央演
算処理装置)103と、ROM(リード・オンリ・メモ
リ)104と、RAM(ランダム・アクセス・メモリ)
105を備えている。上記CPU103は、キー部10
2からの入力(キー入力)を受けて、後述する処理を実
行し、表示部101に演算、入力情報および演算結果を
表示する制御を行う。また、ROM104は、キーの入
力、演算、入力情報および演算結果の表示の実行、制御
をするための制御プログラムや、各種定数データ、表示
用のキャラクタジェネレータなどを記憶する。また、R
AM105は、表示用エリア(表示用RAM)と作業用
エリア(ワークエリア)とそれ以外のデータ記憶用エリ
ア等から構成されており、これらのエリアには、キーの
入力、演算、入力情報および演算結果の表示の実行、制
御をするための各種情報や、操作者が入力した数値、数
式などを記憶するとともに、演算の途中経過の値や結果
が記憶されている。 【0024】図1に示した本発明の計算装置は、反復解
法を実行する場合、全体としては図8に示したのと同じ
動作を行う。 【0025】すなわち、まず操作者が計算対象となる式
を入力するとともに(S201)、上記式中の変数の初
期値と、必要ならば解存在範囲を入力する(S20
2)。次に、入力した式、初期値の値より実際の演算処
理を行い(S203)、解を求めたときは演算結果の数
値、エラー時はエラーメッセージなどを表示する(S2
04)。 【0026】この計算装置には、この前提のもとに、従
来の処理に対して、以下に述べる、、の3つの改
良が加えられている。 【0027】第1の改良は、図9に示した演算処理のう
ち反復解法の実行処理(S213。詳しくは図10に示
す。)を変更したものである。第2の改良は、図9に示
した演算処理のうち初期値作成処理(S216。詳しく
は図11に示す。)を変更したものである。第3の改良
は、図9の演算処理の流れ自体を変更するとともに反復
解法の実行処理を変更したものである。 【0028】まず、第1の改良について説明する。こ
こでは、従来の反復解法処理(図10)に代えて、次の
ような反復解法処理を行う。 【0029】なお、図2に示したRAM105内のワー
クエリアに、新たに上限メモリとしてR.KEIKA、
下限メモリとしてL.KEIKAが設定されている。ま
た、第1のメモリとしてoldX(1つ前のX)が設け
られている。 【0030】図3に示すように、まず、反復解法処理内
での各種ワークエリアの初期設定を行う(S101)。
ループに入る前に、解存在範囲の上限,下限を表すR.
KEIKA,L.KEIKAを初期設定する。最初は何
も計算されていないので、求めるべき変数の正の限界お
よび負の限界を入力しておく(S102)。また、反復
解法の最大の試行回数(ループ回数)をカウンタcou
ntに入れる(S103)。次に、oldXに現在のX
を保存する(S104)。これは、後のステップS10
8で、新たな途中結果Xと1つ前の途中結果Xとの大小
を比較するためである。次に、実際に入力Xから次のX
を計算する(S105)。 【0031】例えばニュートン法では、 X=X−f(X)/f’(X) …(2) (ただし、f(X)は操作者が入力した式、f’(X)
はf(X)を微分した式にXを代入した値である。)の
計算を行う。 【0032】この計算で何かエラーが起きたときは(S
106)、この反復解法処理を終了する。エラーが無
く、上記式(2)の値(新たなX)が計算されていれ
ば、解に達しているか否かを判定して(S107)、解
に達していれば終了する。 【0033】一方、解に達していなければ、新たなXが
oldX(1つ前のX)に対して右へ進んでいるか、左
へ進んでいるかを調べる(S108)。XがoldXに
対して左へ進んでいる場合(X<oldX)、R.KE
IKAをoldXとする(S109)。続いて、Xが
R.KEIKAの値とL.KEIKAの値とで定まる解
存在範囲を飛び出しているかどうかをチェックする。X
が左へ進んでいる場合であるから、XをL.KEIKA
と比較する(S110)。逆に、XがoldXに対して
右へ進んでいる場合(X>oldX)、L.KEIKA
をoldXとする(S111)。続いて、XがR.KE
IKAの値とL.KEIKAの値とで定まる解存在範囲
を飛び出しているかどうかをチェックする。Xが右に進
んでいる場合であるから、XをR.KEIKAと比較す
る(S112)。上記S110,S112において、X
がR.KEIKAの値とL.KEIKAの値とで定まる
解存在範囲の外に飛び出しているならば、この反復解法
処理を終了する。 【0034】これに対して、XがR.KEIKAの値と
L.KEIKAの値とで定まる解存在範囲内にあるなら
ば、countの値から1を引いて、countの値が
ゼロ(S222で設定されたループ回数が終了)になっ
たかどうかを判断する(S113)。countの値が
ゼロになっていればこの反復解法処理を終了する一方、
countの値がゼロになっていなければ、解が求まる
か、途中結果が解存在範囲を飛び出すまでS104〜S
113の処理を繰り返す。 【0035】このように、計算の途中結果Xnが移動し
た範囲に基づいて解存在範囲を規定し、途中結果Xn
解存在範囲外に出たらその段階で解の探索を打ち切るこ
とによって、無駄な時間を費やすのを避けることがで
き、高速に演算処理を実行することができる。 【0036】次に、第2の改良について説明する。こ
こでは、従来の初期値作成処理(図11)に代えて、次
のような初期値作成処理を行う。なお、図9で示したよ
うに、この初期値作成処理が呼び出される毎に、カウン
タKAISUの値は順番に9,8,7,…2,1に減少
している。 【0037】操作者が入力した解存在範囲の下限(左
端)をL.HANI、上限(右端)をR.HANIと
し、新たな初期値を入れる場所をXとする。 【0038】図4に示すように、まず、カウンタKAI
SUの値をチェックして(S121)、KAISU=9
(1回目の呼出し)のときは、L.HANI(左端)の
値を初期値Xとする(S122)。また、KAISU=
8(2回目の呼出し)のときは、R.HANI(右端)
の値を初期値Xとする(S123,S124)。KAI
SUの値が9でも8でもないときは、R.HANIの値
とL.HANIの値との差を8等分した値をXに入れる
(S125)。次に、KAISUの値によって分岐をす
る(S126)。すなわち、KAISU=7のときは、
カウンタAccに4をセットして(S129)、(L.
HANI+X*Acc)の値を初期値Xとする(S13
0)。このとき、Acc=4であることから初期値Xは
L.HANI(左端)とR.HANI(右端)との間の
2等分点となる。また、S126でKAISUの値が5
または6のときは、Accに(26−KAISU*4)
をセットして(S128)、同様に(L.HANI+X
*Acc)の値を初期値Xとする(S130)。このと
き、上記L.HANI,R.HANIと上記2等分点と
の間の4等分点が初期値Xとなる。また、S126でK
AISUの値が1,…,4のいずれかであるときは、A
ccに(9−KAISU*2)をセットして、同様に
(L.HANI+X*Acc)の値を初期値Xとする
(S130)。このとき、R.HANIとL.HANI
との間の8等分点が初期値Xとなる。 【0039】このようにした場合、図7(b)に示した
ように、解存在範囲内で過去に採用した初期値と最も遠
い位置に存在する初期値を採用することができる。した
がって、従来に比べて、短い施行回数で解を求めること
が期待できる。 【0040】例えば、ニュートン法で方程式の解を求め
るアプリケーションにおいてlogX=0となるXを求
めることを考えた場合、初期値の−10でエラーとなっ
た後、次の初期値として10が採用される。この結果、
2回目の初期値で解が求められる。したがって、先に述
べた従来例(6回)に比べて、短い施行回数で解を求め
ることができる。 【0041】次に、第3の改良について説明する。こ
こでは、従来の演算処理(図9)とそれに含まれる反復
解法処理(図10)に代えて、次のような演算処理とそ
れに含まれる反復解法処理を行う。 【0042】なお、図2に示したRAM105内のワー
クエリアに、制御用フラグとしてFIRST.flag
が新たに設けられる。また、新たに、計算の途中結果を
保存するための第2のメモリoldX2が設けられる。 【0043】この演算処理は図5に示すような手順で行
う。 【0044】図5に示すように、まず、演算処理に対す
る各種ワークエリアの初期設定を行う(S131)。次
に、反復解法の処理を失敗したときに、カウンタKAI
SUに初期値を与え直す回数(ループ回数)9を設定す
る(S132)。次に、FIRST.flagの初期設
定として1を設定する。次に、反復解法処理を行う(S
134)。具体的には、図6に示すように、まず、反復
解法処理内での各種ワークエリアの初期設定を行い(S
141)、反復解法の最大の試行回数(ループ回数)を
カウンタcountに入れる(S142)。次に、ol
dXに現在のXの値を入れて保存した後(S143)、
実際に現在のXから次のXを計算する(S144)。 【0045】例えば上記でのニュートン法と同じ式で
ある X=X−f(X)/f’(X) …(2) (ただし、f(X)は操作者が入力した式、f’(X)
はf(X)を微分した式にXを代入した値である。)の
計算を行う。 【0046】この計算で何かエラーが起きたときは(S
145)、この反復解法処理を終了する。エラーが無
く、上記式(2)の値(新たなX)が計算されていれ
ば、解に達しているか否かを判定して(S146)、解
に達していれば終了する。 【0047】一方、解に達していなければ、新たなXが
正しく計算されたことを表すために、FIRST.fl
agに0を入れる(S147)。また、oldX2に、
上記oldXの値(この時点では1つ前のXの値)を入
れて保存する(S148)。countの値から1を引
いて、S143に戻り、解に達するか、countの値
がゼロ(S142で設定されたループ回数が終了)にな
るまで、S143〜S149の処理を繰り返す。 【0048】次に、図5に示すように、この一連の反復
解法処理(S134)で、演算エラーが発生したかどう
かを判断する(S135)。演算エラーが発生せず、解
を正しく計算できたとき、式自体に文法的エラー(シン
タックスエラー)が起きたときなどは、そのままこの演
算処理を終了する。そうでなく演算エラーが発生したと
きは、KAISUの値から1を引いて、KAISUの値
がゼロ(S132で設定されたループ回数が終了)にな
れば終了する(S136)。 【0049】S136でKAISUの値がゼロでなけれ
ば、FIRST.flag=0であるか否か、すなわ
ち、過去に一度でもXを求める計算(図6のS144)
が正しく実行されたか否かを判断する。同時に、エラー
の起きたのがf(X)の計算時であるかどうかを判断す
る(S137)。これは、少なくとも1回はf(X)を
計算できる位置にあったXが、計算できない領域に入っ
たことを知るためである。S137でFIRST.fl
ag≠0であるか、または、エラーの起きたのがf
(X)の計算時でないときは、操作者が設定した解存在
範囲内で新たな初期値を作成する(S138)。なお、
上記の第2の改良に係る初期値作成処理を採用しても
良い。 【0050】一方、S137でFIRST.flag=
0であり、かつ、エラーの起きたのがf(X)の計算時
であるときは、Xに(oldX+oldX2)/2を入
れる(S139)。このとき、oldXにはエラーを起
こした時の値Xn、oldX2にはoldXの1つ前の
値Xn-1がそれぞれ入っている。そこで、これらold
X,oldX2の中点の値を求めて、新たなXの値とす
るのである。そして、S134に戻って再度同じ反復解
法の計算を行う。Xn-1とXnの中点の値でも同じエラー
となるとき、oldX2はエラーが起こっている間ずっ
とXn-1を保持する。oldXのみ中点の値を入れ直し
ていく。したがって、何かエラーが出なくなるまで、o
ldXの値はoldX2へ近づいてゆき、演算エラーが
発生せず、解を正しく計算できたときは演算処理を終了
する(S135)。 【0051】このように、一旦未定義の領域に入り込み
エラーとなっても、反復解法を継続することができ、し
たがって、従来に比べて、解が求められる可能性を高め
ることができる。また、より広い範囲の初期値から解を
求めることができる。 【0052】なお、初回の計算(S134)でエラーと
なったときは、Xn-1が存在せずoldX2は不定とな
っている。このため、上記Xn-1とXnとの中点を求める
計算(S139)はできない。このときは、S138に
進んで、初期値を作成し直すようにする。 【0053】以上、本発明における計算装置の改良点の
特徴は、下記の(1),(2),(3)の3通りとな
る。 【0054】(1)反復解法においてX0,X1,X2
と計算していくとき、式のグラフが滑らかであるなら
ば、X0よりX1が、X1よりX2が、より真の解に近
づいていることが期待される。 【0055】例えば、X0から次のX1を計算してX0
より右側(大きい側)にきた場合、現在求めている解の
位置はX0よりも右側にあるであろうことが期待され
る。逆に言えば、計算の途中結果XnがX0よりも左側
(小さい側)に来て次のXn+1が右側に来た場合、以後
同じ辺りを行ったり来たりすることが多く、その後計算
を続けても真の解に到達しない公算が大きいと考えられ
る。 【0056】そこで、第1の改良を取り入れた計算装置
では、計算の途中結果Xnに基づいて解存在範囲を限定
し、次の途中結果Xn+1が上記限定した解存在範囲外に
出たら、その時点で解の探索を打ち切ることにする。具
体的には、解存在範囲を記憶しておく下限メモリL.K
EIKA,上限メモリR.KEIKAを設け、初期設定
として数値の定義されている範囲を与えておく。解を求
める過程で、XnからXn+1を計算したとき、Xn+1がXn
より右側ならXnより左側を、Xn+1がXnより左側なら
nより右側を、解存在範囲から除外する。そして、X
n+1がこの範囲外に出れば計算を打ち切る。これによ
り、無駄な時間を費やすのが避けられ、動作が高速にな
る。 【0057】なお、一度同じ辺りを行ったり来たりする
と、その後計算を続けても真の解に到達しないという考
え方は、数学的には正しいものではない。計算を打ち切
らずに継続すれば解ける式が幾つでも存在する。ただ経
験的には、ほとんどの一般的な式は、一度行ったり来た
りするとそれ以後解に至らずに同じ辺りを行き来すると
いうことが言える。この改良は、そのような経験則を実
際の処理に取り入れたものである。 【0058】(2)第2の改良を取り入れた計算装置で
は、操作者が入力した解存在範囲から初期値を作成する
場合、上記解存在範囲内で過去に採用した初期値と最も
遠い位置に存在する初期値を採用する。すなわち、上記
解存在範囲内で2m分割(m=1,2,…)して得た点
の値のうち、分割次数mの低い方から順に、かつ、上記
次数m内で、直前の初期値から最も離間した値を採用す
る。これにより、従来に比べて、短い施行回数で解が求
められる可能性が高まる。 【0059】例えば、図7(b)に例示するように、操
作者が入力した解存在範囲が、L.HANI,R.HA
NIに下限,上限として設定されているものとする。 【0060】まず、L.HANIとR.HANIを順に
初期値として与える(なお、図中の数字は初期値として
採用される順番を示している。)。次に、L.HANI
(左端)とR.HANI(右端)との間の2等分点の値
を初期値として与える。次にL.HANIとR.HAN
Iとの間の4等分点であって2等分点ではない点(L.
HANI,R.HANIと上記2等分点との間の点)の
値を順に初期値として与える。次に、L.HANIと
R.HANIとの間の8等分点であって2等分点,4等
分点ではない点の値を同様にして与える。なお、初期値
計算に際して、何等分点であるかは、カウンタ内に入っ
ている初期値作成の回数に基づいて定めるものとする。 【0061】(3)反復解法の計算途中でエラーが起こ
って計算継続が不可能になった場合であっても、そのエ
ラーの種類と起こった位置によっては、エラーが起こる
以前の途中結果の値を参照することにより解へ到達でき
ることがある。 【0062】具体的には、反復解法による演算処理の
(n−1)次の途中結果Xn-1とn次の途中結果Xnの値
を保存しておく第2,第1のメモリを備える。 【0063】例えば、式f(X)の解を求めている場合
について考える。数回計算を繰り返した後、途中結果X
nに対して次のXn+1の計算している最中、つまりf(X
n)の計算中にエラーが起こったとする。f(Xn-1)の
値が計算できて、解へと近づいてきたのにf(Xn)で
エラーとなったということは、解の位置を飛び越してエ
ラーとなる領域に入った可能性が高く、したがって、X
n-1とXnとの間を調べれば解が存在する可能性が高いと
考えられる。しかし、Xn-1とXnとの間を調べるには、
そこに至った反復解法とは別の方法が必要となる。 【0064】そこで、第3の改良を取り入れた計算装置
では、Xn-1とXnの値を保存しておくメモリエリアを設
けて、エラーが起こった場合Xn-1とXnとの間を調べれ
ば解が存在する可能性が高いとき、上記第2,第1のメ
モリを参照して計算をやり直し、Xn-1とXnとの中点を
nとする。そして、次のXn+1が計算できるまで計算を
繰り返す。これにより、一旦未定義の領域に入り込みエ
ラーとなっても、反復解法が継続される。したがって、
従来に比べて、解が求められる可能性が高まる。また、
より広い範囲の初期値から解が求められるようになる。 【0065】以上、ここまで挙げた実施形態における内
容は、本発明の主旨を変えない限り、上記記載内容に限
定されるものではない。 【0066】 【発明の効果】本発明における計算装置では、各請求項
において以下の効果が得られる。 【0067】本発明の請求項1における計算装置におい
ては、無駄な時間を費やすのを避けることができ、これ
によって、高速に演算処理を実行することができる。 【0068】 【0069】
【図面の簡単な説明】 【図1】本発明における計算装置の外観を示す図であ
る。 【図2】上記本発明の計算装置のハードウエアの構成を
示す図である。 【図3】上記本発明の計算装置の動作フローを示す図で
ある。 【図4】上記本発明の計算装置の動作フローを示す図で
ある。 【図5】上記本発明の計算装置の動作フローを示す図で
ある。 【図6】上記本発明の計算装置の動作フローを示す図で
ある。 【図7】上記本発明の計算装置と従来の計算装置の初期
値の設定順を説明する図である。 【図8】従来および上記本発明の計算装置の動作フロー
を示す図である。 【図9】従来の計算装置の動作フローを示す図である。 【図10】従来の計算装置の動作フローを示す図であ
る。 【図11】従来の計算装置の動作フローを示す図であ
る。 【図12】従来および上記本発明の計算装置の表示例を
示す図である。 【符号の説明】 101 表示部 102 入力部 103 CPU 104 ROM 105 RAM
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 HITACHI HSL2 関数計 算,株式会社日立製作所,1992年 6月 1日,第1版,p.6 ピアソン,FORTRANによる数値 計算,株式会社朝倉書店,1988年10月 5日,第1版,p.3−8 (58)調査した分野(Int.Cl.7,DB名) G06F 17/00 - 17/18 G06F 15/02

Claims (1)

  1. (57)【特許請求の範囲】 【請求項1】 入力された式と、その式中の変数の初期
    値と、解存在範囲とに基づいて、制御部によって反復解
    法による演算処理を行い、解に達したときは計算結果の
    数値、エラー時はエラーメッセージを出力する計算装置
    であって、 解存在範囲の下限、上限をそれぞれ記憶する下限メモリ
    および上限メモリを備え、 上記制御部は、反復解法による演算処理のn次の途中結
    果Xnから(n+1)次の途中結果Xn+1を計算した場
    合、上記Xn+1とXnとの大小を判定して、上記Xn+1が
    Xnよりも大きいとき上記下限メモリにXnを格納して上
    記解存在範囲からXnよりも小さい範囲を除く一方、Xn
    +1がXnよりも小さいとき上記上限メモリにXnを格納し
    て上記解存在範囲からXnよりも大きい範囲を除き、上
    記Xn+1が上記解存在範囲内にあるとき(n+2)次の
    計算を行う一方、上記Xn+1が上記解存在範囲外にある
    とき計算を打ち切る制御を行うことを特徴とする計算装
    置。
JP33036198A 1993-06-15 1998-11-20 計算装置 Expired - Fee Related JP3372492B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33036198A JP3372492B2 (ja) 1993-06-15 1998-11-20 計算装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP5143426A JPH0721131A (ja) 1993-06-15 1993-06-15 計算装置
JP33036198A JP3372492B2 (ja) 1993-06-15 1998-11-20 計算装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP5143426A Division JPH0721131A (ja) 1993-06-15 1993-06-15 計算装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2002277151A Division JP2003150565A (ja) 2002-09-24 2002-09-24 計算装置

Publications (2)

Publication Number Publication Date
JPH11224247A JPH11224247A (ja) 1999-08-17
JP3372492B2 true JP3372492B2 (ja) 2003-02-04

Family

ID=26475161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33036198A Expired - Fee Related JP3372492B2 (ja) 1993-06-15 1998-11-20 計算装置

Country Status (1)

Country Link
JP (1) JP3372492B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826538B1 (en) * 1999-07-28 2004-11-30 I2 Technologies Us, Inc. Method for planning key component purchases to optimize revenue

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HITACHI HSL2 関数計算,株式会社日立製作所,1992年 6月 1日,第1版,p.6
ピアソン,FORTRANによる数値計算,株式会社朝倉書店,1988年10月 5日,第1版,p.3−8

Also Published As

Publication number Publication date
JPH11224247A (ja) 1999-08-17

Similar Documents

Publication Publication Date Title
Kochan Programming in C
Moore et al. A mechanically checked proof of the AMD5K86TM floating-point division program
Richards Advanced mathematical methods with Maple
US8805675B2 (en) Representing a computer system state to a user
Griffiths Programming C# 5.0: Building Windows 8, Web, and Desktop Applications for the. NET 4.5 Framework
CN110413751B (zh) 药品搜索方法、装置、终端设备以及存储介质
US11003426B1 (en) Identification of code for parsing given expressions
Nagar Introduction to Python for Engineers and Scientists: Open Source Solutions for Numerical Computation
Baier et al. Generic emptiness check for fun and profit
Hillegass et al. Objective-c programming: The big nerd ranch guide
US6829626B2 (en) Computer algebra system and method
JP3372492B2 (ja) 計算装置
US5528524A (en) Calculating device capable of quickly finding a solution in an application using the iterative method
Barth et al. Texts in Computational Science and Engineering
US20050091347A1 (en) Reducing recompilation frequency
JP2003150565A (ja) 計算装置
Cadenhead Sams teach yourself Java 6 in 21 days
Newton Representing and computing with types in dynamically typed languages
US20040135806A1 (en) Method for modifying groups of data fields in a web environment
Mukherjee Thinking in LINQ: Harnessing the Power of Functional Programming in. NET Applications
Roberts Art and Science of Java
Mueller et al. C# 7.0 All-in-one for Dummies
Kalicharan Learn to Program with C
Kiong Visual Basic 2010 Made Easy
Colvin et al. Verifying lock-freedom using well-founded orders

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081122

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 7

Free format text: PAYMENT UNTIL: 20091122

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 7

Free format text: PAYMENT UNTIL: 20091122

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 8

Free format text: PAYMENT UNTIL: 20101122

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 9

Free format text: PAYMENT UNTIL: 20111122

LAPS Cancellation because of no payment of annual fees