3

我正在为我的 TI-Nspire CAS 计算器编写一个函数。我有一个表达式的两个部分:(x+2)^2+3。加入表达式后,结果将扩展为,x^2+4x+7而我需要它保持为(x+2)^2+3.

我尝试制作两个部分字符串,并在加入后将它们转换回表达式,但这会导致相同的不需要的扩展。
我能做的最好的就是返回连接的两个字符串(每个术语),这很难看: "(x+2)^2" + "3"

有没有办法阻止这种扩展?
它破坏了整个功能(完成了正方形)!

对于记录,即使与字符串连接,表达式也会被扩展。

(x+2)^2 + "3"  

返回

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

(我觉得很奇怪)

4

1 回答 1

1

您在这里看到的是工作中的自动简化器。这意味着没有简单的方法可以将其关闭。

在大多数符号代数系统中 (x+1)^2 和 (x+1)^2+3 不会自动展开。然而 NSpire 很乐意扩展后者。没有办法阻止这种行为。

在 Mathematica 中,可以编写 Hold(expr) 以表示不应简化 expr - 然而 NSpire 缺少该功能。

从某种意义上说,您发现了 NSpire 的弱点:表达式的符号操作(例如:无法使用模式匹配来定义函数)。[与 Mathematica、Maple、Maxima 等相比]

最好的解决方法取决于您尝试对表达式执行的操作。如果它是算法的一部分,您可以将求和表达式表示为术语列表。这需要您编写自定义函数来执行 sum 、 products 等。

于 2015-05-01T07:35:55.500 回答