2011-11-09 6 views
3

TI-Nspire CAS計算機の関数をコーディングしています。私は表現の2つの部分:(x+2)^2+3を持っています。式が結合されると、結果はx^2+4x+7に展開されますが、それは(x+2)^2+3のままにする必要があります。TI BASIC式展開の防止

私は、両方の部分文字列を作成し、結合後にそれらを式に変換しようとしましたが、これは同じ望ましくない拡張をもたらします。
私ができる最善のおやっ醜いである、連結二つの文字列(各用語を)返します:"(x+2)^2" + "3"

は、この拡大を防ぐために、とにかくはありますか?
それは機能全体を損なう(四角形を完成させる)!

レコードの場合、文字列と連結しても式は展開されます。 (私は本当に奇妙た)

(x+2)^2 + "3" 

戻り

x^2 + 2x + "3" + 4 

+1

2つの連結文字列で何が問題になっていますか? –

+0

'私ができることは、2つの文字列(各用語)を連結して返すことです** **は醜いです** ** "(x + 2)^ 2" + "3" ' –

+0

私はNspire、ちょうどTI-84ですが、まだこの問題がある場合は、各文字を(Nspireのために 'sub('のようなものを使って)ループして一つずつ表示するのはなぜですか? 、拡張せずに、また引用符を持っていないだろう(これが動作するかどうかわからないNspire - ちょうどアイデア) –

答えて

1

あなたがここで見ていると、作業時の自動整理です。そしてそれはそれをオフにする簡単な方法がないことを意味します。

ほとんどの記号代数システム(x + 1)^ 2と(x + 1)^ 2 + 3は自動的に展開されません。しかし、NSpireは後者を喜んで拡張します。この動作を防ぐ方法はありません。

Mathematicaでは、exprを単純化してはならないことを知らせるためにHold(expr)を書くことができますが、その機能はNSpireにはありません。

NSpireの弱点:式の記号操作(例として、パターンマッチングを使って関数を定義する方法がない)がある意味であります。 [Mathematica、Maple、Maximaなどと比較した場合]

最良の回避策は、式で何をしようとしているかによって異なります。それがアルゴリズムの一部であれば、和の式を用語のリストとして表すことができます。そのためには、合計、商品などを実行するためのカスタム関数を書く必要があります。