JP2003323413A - 単位操作機能を持つ数式演算処理プログラム - Google Patents

単位操作機能を持つ数式演算処理プログラム

Info

Publication number
JP2003323413A
JP2003323413A JP2002166337A JP2002166337A JP2003323413A JP 2003323413 A JP2003323413 A JP 2003323413A JP 2002166337 A JP2002166337 A JP 2002166337A JP 2002166337 A JP2002166337 A JP 2002166337A JP 2003323413 A JP2003323413 A JP 2003323413A
Authority
JP
Japan
Prior art keywords
unit
mathematical expression
conversion
formula
mathematical
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.)
Pending
Application number
JP2002166337A
Other languages
English (en)
Inventor
Hiroshi Tsuchida
博 槌田
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.)
Individual
Original Assignee
Individual
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
Application filed by Individual filed Critical Individual
Priority to JP2002166337A priority Critical patent/JP2003323413A/ja
Publication of JP2003323413A publication Critical patent/JP2003323413A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Calculators And Similar Devices (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】従来の数式演算処理プログラムには、次の課題
がある。電子式計算機が数値の演算時に単位を考慮しな
いため、単位系を整えることはプログラマや操作者の責
任になっている。ひとつのシステムに複数の単位系が混
在すると、多大な困難と細心の注意が求められる。論文
や教科書などの文章中の数式中では、一般的な慣例とし
て、単位が[]記号で明示されることがある。しかしな
がら、文章中の数式に書かれた単位をそのまま解釈演算
できる数式演算処理プログラムはない。 【解決手段】数式中に記述される単位操作には、単位定
義と単位変換演算の2つがあることを発見した。本発明
で具現化した数式演算処理プログラムは、単位操作の記
述を含む数式を解釈演算でき、その演算結果は数値だけ
でなく単位を属性として持つ。これにより、数式ごとに
任意の単位系で計算式を記述できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータやプ
ログラム電卓等の電子式計算機に搭載して、任意の数式
を含むプログラムに従って演算処理を行なう数式演算処
理プログラム(表計算、コンパイラ、インタプリタな
ど)に適用可能な単位操作技術に関する。
【0002】
【従来の技術】コンピュータやプログラム電卓等の電子
式計算機は、数値の演算をできるが、演算時に数値の単
位を考慮しない。
【0003】あるいは、特開平05−298258公報
の数式演算処理装置は、プログラム実行時において、数
式中に含まれる予め単位設定された変数に対し異なる単
位の数値が代入された場合には、該異なる単位間の所定
の単位換算値に基づき単位換算を行ない上記予め設定さ
れた単位に応じた数値演算を実行すると共に、数式中各
項目の次元を、例えば単位・次元テーブルより得て、次
元式演算処理も実行しその次元の一致を判断確認するも
のがある。
【0004】出願者が公表したインタプリタに属する数
式演算処理プログラムであるCALC(株式会社日本ソ
フトバンク発行「Oh!98」第6巻第8号、昭和62
(1987)年10月10日発行)およびNIFE(槌
田博・加藤龍夫:数理モデルの構築と運用のための会話
型計算システムの開発−環境拡散モデルを例として−,
横浜国立大学環境科学研究センター紀要,17(1),
pp.1−8(1991))には、演算結果と伴に演算
式のコメントに記載された単位を表示する機能がある。
【0005】論文や教科書などの文章中の数式中では、
一般的な慣例として、単位が[]記号で明示されること
がある。
【0006】
【発明が解決しようとする課題】しかしながら、文章中
の数式に書かれた単位をそのまま解釈演算できるプログ
ラムはない。
【0007】電子式計算機において、数値の単位を統一
的に管理するのは、操作者の責任となっている。操作者
は数式内における数値や変数の単位を予め想定してプロ
グラムを組み、忘備録としてコメントなどに単位を書い
ている。このようにして作成されたプログラム実行の際
に、変数値等として扱いたいデータの単位が上記プログ
ラム作成時における想定単位とは異なっている場合、そ
の入力数値をマニュアルで単位換算する必要がある。
【0008】あるいは、特開平05−298258公報
の数式演算処理装置は、変数への代入時に単位換算を行
うものであり、プログラム中の全域にわたり1つの変数
にはたった1つの単位しか対応しない。そのため、計算
する数式の数が増えるに従い、プログラム作成者や操作
者はこの整合性を維持するために、かなりの労力を必要
とする問題がある。
【0009】さらに、公式集や計算事例集などの文献か
ら計算する数式を引用する場合に、文献で使用されてい
る単位系がプログラムで想定していた単位系と異なる
と、そのままでは計算できない。たとえば、宇宙論の場
合、恒星と恒星の距離には[光年]という単位がふさわ
しいが、恒星の運動を支配する物理法則の公式で距離は
[m]という単位で記載されている。従来のプログラム
手法では1つの変数を複数の単位で表現できないため、
極めて見通しの悪い数式になる。
【0010】請求項2について、例えば5[km]の長
さと30000[cm]の長さを加えるとき、単位操作
のない従来のプログラムでは、しばしば、5+3000
0=30005という重大な間違いの原因になってい
る。
【0011】
【課題を解決するための手段】数式中に記述される単位
操作には、単位定義と単位変換演算の2つがあることを
発見した。
【0012】本発明で具現化した数式演算処理プログラ
ムは、単位操作の記述を含む数式を解釈演算でき、その
演算結果は数値だけでなく単位を属性として持つ。これ
により、数式ごとに任意の単位系で計算式を記述でき
る。そのために付属する手段として、単位の属性を伴う
数値もしくは変数を含む数式を入力する手段と、単位換
算のための係数もしくは換算関数を入力する手段、およ
び出力手段を備える。これを図1に示す。
【0013】さらに、数式に含まれる加減算および比較
演算においては、その二つの項の単位が一致していなけ
ればならない。そこで、請求項2の数式演算手段は、同
演算される2つの項の単位が異なる場合には、単位操作
の記述がなくても、数式演算手段が自動で単位換算を行
う。
【0014】
【発明の実施の形態】本発明の数式演算手段は、四則演
算や関数演算など従来の数式演算機能に加え、単位操作
機能をもっている。つまり、単位定義や単位変換演算の
単位操作の記述を含む数式を解釈し、その演算結果は数
値だけでなく単位を属性として持つ。
【0015】
【実施例】本発明は、数式を演算させるあらゆるプログ
ラム(表計算、コンパイラ、インタプリタなど)に適用
可能であるが、出願者が著作したNIFEという数理モ
デルの構築と運用のための会話型計算システム(インタ
プリタに属する)の改訂版における数式演算手段の実施
例について説明する。
【0016】単位は、[]で囲まれた文字列である。
【0017】単位定義は、数式に単位を定義する操作で
ある。
【0018】本実施例では、数式の最後に空白を置いて
単位を記述することにより、その演算結果に記載の単位
が付与される。
【0019】例えば、加速度aのときt秒後の速さを求
める数式は、(1/2)at^2(^記号は累乗の演算
子である)であるから、この数式に単位定義したもの
は、次に示す数式1となる。
【0020】
【数1】(1/2)at^2[m/s]
【0021】関数定義は、関数名に数式を登録する操作
である。
【0022】たとえば、速さvを数式1と定義するに
は、次に示す数式2と記述する。
【0023】
【数2】v=(1/2)at^2[m/s]
【0024】数式2の単位が[m/s]になるために
は、加速度aの単位が[m/s2]であり、時間tの単
位が[s]であることが必要であるが、従来の技術で
は、それぞれの単位をそろえることをプログラマもしく
は操作者にゆだねていた。本発明では、次の単位換算演
算を用いて、数式中で単位を指定する。
【0025】単位換算演算は、数式中の要素の単位を変
換する操作である。演算対象となる要素は、定数、変
数、関数、および()で囲まれた数式である。
【0026】本実施例では、演算対象要素の直後(空白
を置かず)に単位を記述する。演算対象要素の単位が未
定義のときには、数値はそのままで記載の単位を付与す
る。また、演算対象要素の単位と記載の単位が一致して
いるときには、なにもしない。両者の単位が一致しない
場合は、単位換算のための係数もしくは換算関数を入力
する手段によって入力された情報に基づいて、値を変換
した後、記載の単位を付与する。情報が足りなくて変換
方法が判らない場合には演算結果がエラーとなる。操作
者が単位変換方法を追加入力後に、再び計算することが
できる。
【0027】数式2に単位変換演算を追記すると、次に
示す数式3となる。
【0028】
【数3】v=(1/2)a[m/s2]t[s]^2
[m/s]
【0029】数式3によるvの定義に続き、必要な値を
入力手段から入力する。例えば、a=0.98[m/s
2]、t=10[min]とする。また、単位換算係数
は[min][s]=60である。
【0030】このとき数値演算手段の記憶域の状態は、
図2のようになる。入力された定義式が記憶されるが、
値は計算前で確定していない。
【0031】操作者がvの値を求めるよう指示すると、
数値演算手段は、まず、vの定義式を参照して、左から
解釈演算を始める。(1/2)は0.5。aは定義によ
り0.98[m/s2]であり、単位変換演算[m/s
2]と一致しているので、値がそのまま採用される。t
は定義により10[min]であるが、単位変換演算
[s]により、この式での値が600[s]となる。結
局、0.5×0.98×600^2=176400と計
算され、最後に単位定義[m/s]により、v=176
400[m/s]という結果が表示される。
【0032】本実施例では乗除算などを含む数式の単位
は未定義になるが、その後の単位定義操作により、明示
的に単位が指定される。
【0033】このときの記憶域の状態は、図3のように
なる。vの計算式に含まれるt[s]は600[s]と
単位変換されたが、tの値はあくまでも定義通りの10
[min]である。
【0034】つぎに、請求項2についての実施例を述べ
る。
【0035】一般に加減算や比較演算をするためには、
その2つの項の単位が揃っていることが必要である。
【0036】例えば、5[km]の長さと30000
[cm]の長さを加える数式を素直に記述すると、次に
示す数式4のようになる。
【0037】
【数4】5[km]+30000[cm]
【0038】本実施例の数式処理手段は、この数式をそ
のまま解釈演算する。すなわち、加算実行時に、二つの
項の単位を比較し、単位が異なることを検知すると、後
ろの項の単位を前の項の単位と同一になるように自動単
位換算する。
【0039】つまり、あらかじめ読み込んである図4に
示すような単位換算の諸定義を利用して、[km][c
m]の単位換算係数が100000であることを算出
し、30000[cm]=0.3[km]のように値を
換算する。
【0040】次に、5[km]+0.3[km]を計算
し、正しい解である5.3[km]が得られる。
【0041】項の順序を逆にすると、30000[c
m]+5[km]=530000[cm]となる。
【0042】これは、変数をつかった代数計算でも同様
であって、例えば、a=5[km];b=30000
[cm];c=a+b と定義して、cの値を求める場
合は、図5に示すように、c=5.3[km]が得られ
る。
【0043】cの単位を[cm]で得たい場合は、c=
a[cm]+bのように加算演算の第1項に単位変換演
算を指定する方法と、c=(a+b)[cm]のように
加算した結果の和について単位変換演算で目的の単位に
換算する方法がある。
【0044】なお、代入式においても、その両辺の単位
が一致していなければならない。しかし、本実施例の数
式処理手段は、代入時には単位変換を行わず、代入後の
変数に、右辺の数式の演算結果の数値と単位をそのまま
設定して解決する。
【0045】
【発明の効果】数式中に単位操作(単位定義と単位変換
演算)を明示できることにより、どんな単位で計算が行
われるかが明瞭になり、数式が理解されやすく、プログ
ラムの保守管理が容易になる。
【0046】それぞれの数式の中だけで単位系を統一す
ればよく、別の数式では別の単位系を使うことができ、
複数の単位系が混在するシステムを容易に記述できる。
【0047】どんな単位系で記述されている公式集で
も、操作者がシステムで使用して単位系に書き換える必
要がなく、そのまま引用することができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係わる数式演算処理プログ
ラムの構成を示すブロック図である。
【図2】図1の数式演算処理プログラムで、諸定義の入
力が終わった段階の記憶域(24)の状態図である。
【図3】図1の数式演算処理プログラムで、速さvの演
算をして結果を表示した段階の記憶域(24)の状態図
である。
【図4】図1の数式演算処理プログラムで、単位換算の
ための諸定義の数例を表示した記憶域(24)の状態図
である。
【符号の説明】
10 入力手段 20 数式処理手段 21 四則演算 22 関数演算 23 単位操作 24 記憶域 25 制御操作 30 出力手段
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成14年7月18日(2002.7.1
8)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0019
【補正方法】変更
【補正内容】
【0019】例えば、初速0で加速度aのときt秒後の
位置を求める数式は、(1/2)a t^2(^記号は
累乗の演算子である)であるから、この数式に単位定義
したものは、次に示す数式1となる。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正内容】
【0020】
【数1】(1/2)a t^2[m]
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0022
【補正方法】変更
【補正内容】
【0022】たとえば、位置xを数式1と定義するに
は、次に示す数式2と記述する。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0023
【補正方法】変更
【補正内容】
【0023】
【数2】=〔1/2〕a t^2[m]
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0024
【補正方法】変更
【補正内容】
【0024】数式2の単位が[m]になるためには、加
速度aの単位が[m/s2]であり、時間tの単位が
[s]であることが必要であるが、従来の技術では、そ
れぞれの単位をそろえることをプログラマもしくは操作
者にゆだねていた。本発明では、次の単位換算演算を用
いて、数式中で単位を指定する。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0028
【補正方法】変更
【補正内容】
【0028】
【数3】=(1/2)a[m/s2]t[s]^2
[m]
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0029
【補正方法】変更
【補正内容】
【0001029】数式3によるの定義に続き、必要
な値を入力手段から入力する。例えば、a=0.98
[m/s2]、t=10[min]とする。また、単位
換算係数は[min][s]=60である。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0031
【補正方法】変更
【補正内容】
【0031】操作者がの値を求めるよう指示すると、
数値演算手段は、まず、の定義式を参照して、左から
解釈演算を始める。(1/2)は0.5。aは定義によ
り0.98[m/s2]であり、単位変換演算[m/s
2]と一致しているので、値がそのまま採用される。t
は定義により10[min]であるが、単位変換演算
[s]により、この式での値が600[s]となる。結
局、0.5×0.98×600^2=176400と計
算され、最後に単位定義[m]により、=17640
[m]という結果が表示される。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0033
【補正方法】変更
【補正内容】
【0033】このときの記憶域の状態は、図3のように
なる。の計算式に含まれるt[s]は600[s]と
単位変換されたが、tの値はあくまでも定義通りの10
[min]である。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】図面の簡単な説明
【補正方法】変更
【補正内容】
【図面の簡単な説明】
【図1】本発明の一実施例に係わる数式演算処理プログ
ラムの構成を示すブロック図である。
【図2】図1の数式演算処理プログラムで、諸定義の入
力が終わった段階の記憶域(24)の状態図である。
【図3】図1の数式演算処理プログラムで、位置xの演
算をして結果を表示した段階の記憶域(24)の状態図
である。
【図4】図1の数式演算処理プログラムで、単位換算の
ための諸定義の数例を表示した記憶域(24)の状態図
である。
【図5】図1の数式演算処理プログラムで、単位の異な
る数値の加算演算をして、結果を表示した段階の記憶域
(24)の状態図である。
【符号の説明】 10 入力手段 20 数式処理手段 21 四則演算 22 関数演算 23 単位操作 24 記憶域 25 制御操作 30 出力手段
【手続補正10】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図4】
【図2】
【図3】
【図5】

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】単位の属性を伴う数値もしくは変数を含む
    数式を入力する手段と、単位換算のための係数もしくは
    換算関数を入力する手段と、単位操作の記述を含む数式
    演算手段と、出力手段を備えた数式演算処理プログラ
    ム。
  2. 【請求項2】上記数式演算手段において、加減算または
    比較の演算を実施する時に演算される2つの項の単位が
    異なる場合には、単位操作の記述が無くても自動で単位
    換算を行うことを特徴とする請求1記載の数式演算処理
    プログラム。
JP2002166337A 2002-05-01 2002-05-01 単位操作機能を持つ数式演算処理プログラム Pending JP2003323413A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002166337A JP2003323413A (ja) 2002-05-01 2002-05-01 単位操作機能を持つ数式演算処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002166337A JP2003323413A (ja) 2002-05-01 2002-05-01 単位操作機能を持つ数式演算処理プログラム

Publications (1)

Publication Number Publication Date
JP2003323413A true JP2003323413A (ja) 2003-11-14

Family

ID=29545855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002166337A Pending JP2003323413A (ja) 2002-05-01 2002-05-01 単位操作機能を持つ数式演算処理プログラム

Country Status (1)

Country Link
JP (1) JP2003323413A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007529801A (ja) * 2004-03-15 2007-10-25 シーメンス アクチエンゲゼルシヤフト 信号処理方法
JP2009507309A (ja) * 2005-09-06 2009-02-19 ザ マスワークス, インク モデリング言語における物理計量単位
JPWO2021161426A1 (ja) * 2020-02-12 2021-08-19

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007529801A (ja) * 2004-03-15 2007-10-25 シーメンス アクチエンゲゼルシヤフト 信号処理方法
JP2009507309A (ja) * 2005-09-06 2009-02-19 ザ マスワークス, インク モデリング言語における物理計量単位
JPWO2021161426A1 (ja) * 2020-02-12 2021-08-19
WO2021161426A1 (ja) * 2020-02-12 2021-08-19 日本電信電話株式会社 プログラム生成装置、プログラム生成方法及びプログラム
JP7310943B2 (ja) 2020-02-12 2023-07-19 日本電信電話株式会社 プログラム生成装置、プログラム生成方法及びプログラム

Similar Documents

Publication Publication Date Title
Codsi et al. GEMPACK: General-purpose software for applied general equilibrium and other economic modellers
Schneider On concurrent programming
US5526475A (en) Method for live symbolic calculations in a mathematical document editor
Windley The formal verification of generic interpreters
JPH03268058A (ja) 文書作成方法及びその装置
Du Plessis Poor man's explanation of Kalman filtering
Bowman An Introduction to Programming with IDL: Interactive data language
WO2005098660A1 (ja) 文書処理装置及び文書処理方法
WO2005098658A1 (ja) 文書処理装置及び文書処理方法
JP2003323413A (ja) 単位操作機能を持つ数式演算処理プログラム
JPH0916382A (ja) プログラム開発支援システム
Tesler Programming languages
Wechselberg et al. Augmenting state models with data flow
Cotton Testing R Code
Krueger et al. Automatically Building Diagrams for Olympiad Geometry Problems.
EP4107649A1 (en) Spreadsheet with reuse functionality
Charalambidis et al. Categorical Approximation Fixpoint Theory
Senese Symbolic Mathematics for Chemists: A Guide for Maxima Users
Unpingco Getting started with scientific python
Carter et al. A web-based toolkit for mathematical word processing applications with semantics
Spencer SAS programming: the one-day course
CN118193333B (zh) 安卓平台汽车诊断报告生成方法、设备及介质
Gagniuc Variables
Houbak SIL-a simulation language: user's guide
Horton et al. Beginning C++ 23: From Beginner to Pro