【作者声明】
本文所有文字均为作者原创,所有图片均为作者本人真实制作。
版权所有,仅供阅读欣赏,严禁任何单位或个人以任何形式转载、复制、引用、抄袭、截图、模仿、翻译本文的部分或全部内容(包括但不限于文字、图片)。
作者保留所有权利。
请尊重作者劳动成果,谢谢合作。
前言
在《谈谈卡西欧科学计算器上的“编程”》系列文章中,我们已经知道了如何使用卡西欧科学计算器的多语句表达式功能(冒号)进行简单的“编程”,也就是表达式的连续计算。由于需要人工制造语法错误以及利用 STO 功能赋初值的原因,在执行连续计算以前,表达式输入的效率实际上是不太高的。因此,推出这篇文章的目的,主要是讲解 fx-991CN X 计算器特有的实现连续计算功能的另外一种方法:利用 CALC 功能。通过这种方法,我们可以省去制造语法错误以及人工使用 STO 功能赋初值的步骤,使连续表达式的输入更加高效。
本篇文章的操作需要您对卡西欧科学计算器的连续计算功能有一定的了解,因此在阅读本文章之前,建议您首先阅读以下的文章:
小林露露:谈谈卡西欧科学计算器上的“编程”(基础篇)zhuanlan.zhihu.com![568f1237393172ce16713a57fc4839d4.png](https://i-blog.csdnimg.cn/blog_migrate/edd209af3d79d24047bdd9e0d52f510d.jpeg)
本篇文章中的 CALC 功能除了适用于 fx-991CN X 计算器以外,也适用于以下的型号(仅列出中国大陆市场在售或者曾经销售过的型号):
- fx-MS 系列:fx-100MS、fx-570MS、fx-991MS;
- fx-ES 系列:fx-991ES;
- fx-ES PLUS 系列:fx-991ES PLUS;
- ClassWiz 系列;fx-991CN X。
对于 ClassWiz 以前的旧型号计算器,CALC 界面内的部分操作会与本篇文章介绍的有所不同,您可以参阅计算器的使用说明书获取详细信息。
CALC 功能使用基础
熟悉 fx-991CN X 计算器操作的朋友可能知道,fx-991CN X 内置一个非常方便的功能:表达式计算(CALC)。通过这个功能,我们可以首先输入一个带有字母的表达式,然后按下计算器的 [CALC] 键,按照屏幕提示指定所有字母的值,然后按下 [=] 即可快速得到表达式的结果。
例如我们可以利用 CALC 功能求一元二次方程的根,我们以求解方程
![94ab29867c5fbf5ee49e8a74eab54af8.png](https://i-blog.csdnimg.cn/blog_migrate/4c2aeabb291aad603ec8c85a6c7c6500.jpeg)
首先输入 6,然后按 [=] 给 B 赋值,以此类推,按 1、[=]、[(-)]、7、[=] 输入 A 和 C 的值。
![6806e7d2f48bd479b121b64a3e207f5b.png](https://i-blog.csdnimg.cn/blog_migrate/3e8be652667bfd952c53d6f546d5f0f6.jpeg)
在所有变量初值输入完毕后,再按一下 [=] 即可得到结果:
![02f1f15dffe522d324d03ac6650cabd2.png](https://i-blog.csdnimg.cn/blog_migrate/f7d4494ffe1be3ff4aa1e6adb0a4aea5.png)
同理我们也可以利用 CALC 功能得到方程的另外一个根。第二次进入 CALC 界面计算时,CALC 功能会自动记录上一次赋予各变量的值,因此我们可以直接按下 [=] 得到方程的第二个根:
![b028097ee60195b61b61a3257ef752ca.png](https://i-blog.csdnimg.cn/blog_migrate/b1c76bd399c07f2dc67789adceee5cb3.jpeg)
在这种情况下,如果需要改变各变量的值,我们需要按计算器的 [上] 键和 [下] 键,浏览到需要改变值的那个变量,输入新的值,然后按 [=]。在所有变量的值改变完毕后,再按一下 [=] 得到新的结果。
例如我们将 C 更改为 8,那么在进入 CALC 界面后,我们需要按两下 [下] 键浏览到变量 C,输入 8,然后按两下 [=] 得到新方程的根:
![45b189e746dc433fa031fcb4c10b11c2.png](https://i-blog.csdnimg.cn/blog_migrate/b8a32c9c1189a38e7010296dfde884d4.jpeg)
如果不使用 CALC 功能计算这些表达式,我们就需要先利用 STO 功能,在没有计算器提示的情况下,预先为变量 A、B、C 进行赋值,然后再输入表达式,按 [=] 得到结果;如果我们不小心遗漏了某个变量的赋值,则就会直接得到错误的结果。
执行连续计算
除了简单的表达式计算以外,fx-991CN X 的 CALC 功能还支持另外两种较为复杂的表达式。这三种表达式的类型,由 fx-991CN X 使用说明书的第 35 页摘录如下:
表达式:2x+3y、2Ax+3By+C、A+Bi
多重语句:x+y:x(x+y)
等式左侧为单个变量,等式右侧为含变量的表达式:A=B+C、y=x^2+x+3
第一种表达式就是上节中介绍的 CALC 功能的基本用法。而本节中将要介绍的连续计算功能,就是通过后两种表达式进行组合来实现的。
在介绍连续计算功能之前,首先我们来看看第三种表达式(等式左侧为单个变量,等式右侧为含变量的表达式)是如何工作的,这是我们利用 CALC 进行连续计算的基础。我们就以 A=B+C 为例,在计算器中输入表达式(等于号是 [ALPHA][CALC]),然后按 [CALC],计算器提示我们输入 B 的值而不是 A:
![710d022e715729f9df20561c1b02f05c.png](https://i-blog.csdnimg.cn/blog_migrate/100bdb038ad44dd9d02d79cd83275a21.png)
这里我们指定 B=2, C=3,输入完毕后按 [=],计算器给出了 B+C 的计算结果 :
![2dec93f806e20416a7da427947622b96.png](https://i-blog.csdnimg.cn/blog_migrate/1dffff38669831e04082889e149b85ca.png)
那么这和直接计算表达式 B+C 有什么区别呢?我们不妨看看变量 A 在这个表达式中到底有什么作用。我们按 [SHIFT][调用]:
![d5db421a606026633364e8103c457f3c.png](https://i-blog.csdnimg.cn/blog_migrate/906de4c160d12142258a39c34cf7d7a9.png)
我们发现 A 现在的值是 5。也就是说,表达式 A=B+C 的功能,不仅仅是计算了 B+C 的值,还将 B+C 的值赋给了等号左侧的 A。
利用 CALC 功能的这个特性,再结合上节所述 CALC 功能会自动记录上一次赋给各变量的值的特性,我们就可以正式引入利用 CALC 功能进行连续计算的方法了。
我们以之前讲解过多次的问题为例,介绍 fx-991CN X 利用 CALC 功能进行连续计算的方法。
【问题】设数列
不利用 CALC 功能,利用计算器“编程”求解这个问题的语句如下:
2A/(B-A)→C:M+C→M:B→A:C→B:X+1→X:√(49-X)
我们知道利用 CALC 功能,A=B+C 这个表达式可以将 B+C 的结果赋值给 A。将这个特性应用到上述的语句当中,我们就可以将上述语句改写为利用 CALC 功能进行连续计算的形式:
C=2A/(B-A):M=M+C:A=B:B=C:D=D+1:√(49-D)
这里将 X 改为 D,是因为由于未知的原因,在上述的多语句表达式中,CALC 不会提示为 X 赋初值。在计算器中输入上述语句后,按下 [CALC] 来执行连续计算:
![ea4112e99bdd59d7bbe1e682419c905a.png](https://i-blog.csdnimg.cn/blog_migrate/2d0d6dda95977a37ae7c8c8eb553b2eb.jpeg)
我们输入初值 A=1,B=3,M=4,D=2:
![98ba635ff6145721e059ee68f8f869c5.png](https://i-blog.csdnimg.cn/blog_migrate/ad458489aca76f713be3f2598a8efabd.jpeg)
此处我们需要特别注意,建议在任何情况下都按照 1、[=]、3、[=]、4、[=]、2、[=] 的按键顺序来确保给所有的变量赋初值。如果我们不希望改变某个变量的初值,就务必要按计算器的 [下] 键手工浏览到下一个变量,而不能直接按 [=]。否则,计算器就会跳过其他未赋初值的变量直接进行计算,产生错误的结果。
例如在进入 CALC 界面以前,B 已经有值 3,其他变量 A、M、D 的值都为 0,当按键 1、[=] 之后,计算器显示 B 的初值已经等于 3:
![c3fd460c57efd3d30015dd059408eb8d.png](https://i-blog.csdnimg.cn/blog_migrate/47bce5926434584d954698dc319b3e1a.png)
如果我们不想再输入一次 3、[=],就必须按计算器的 [下] 键,确保能够输入其后变量的初值:
![37b7ac9cf50502d857901e64922b3a7d.png](https://i-blog.csdnimg.cn/blog_migrate/dba23dc20791d3794d8ab99672cf58df.png)
为避免混淆引起输入错误,我们建议在执行连续计算之前,先按 [SHIFT][9][2][=] 清除计算器的所有存储器:
![2c8ea9df54868ac9f8674ea78ecdfc79.png](https://i-blog.csdnimg.cn/blog_migrate/095d8e132e3917a34b954b54ab167a68.jpeg)
确保所有的初值都已经正确输入后,我们按 [=] 离开 CALC 界面,此时将会计算第一个表达式 C=2A/(B-A) 的结果,同时计算器屏幕右上角显示一个“暂停”符号,提示计算还未完成:
![e679cfdcb851cb44ff20c3053363b698.png](https://i-blog.csdnimg.cn/blog_migrate/53685faeee36ad585d0df8ad2de02550.png)
继续按 [=],我们就可以看到表达式就像之前我们介绍过的一样开始连续执行,直到右上角的“暂停”符号消失,表示完成了一次循环:
![5f72d8bd7d79b80be90b1f7945e34b02.png](https://i-blog.csdnimg.cn/blog_migrate/5948c5ae44b6d2c4d4499bea2e0ffaa4.png)
此时再次按 [=],我们可以看到计算器再次进入了 CALC 界面。此时如果按 [下] 键浏览各变量的初值,我们就会发现,CALC 自动记录了执行一次连续计算的循环之后,各变量最终的值,这也是 CALC 功能能够执行连续计算的关键所在:
![fbb6367484f50e6af455094e409ab7bf.png](https://i-blog.csdnimg.cn/blog_migrate/6928f79d11ae55ff03780bd5b63086c8.jpeg)
此时我们不应该改变任何变量的值,而是直接按 [=] 进行第二次循环:
![07eb59e8f7d4f9314e288348c22629da.png](https://i-blog.csdnimg.cn/blog_migrate/82aea2a66b08a41180864af6336a348e.png)
在此之后我们就可以不看计算器的屏幕,不断地连续按下 [=] 键,直到满足最终的循环条件 (D≥50),计算器出现数学错误,此时变量 M 的值即为
![496f20f058503ca4d6b22a1296117ca3.png](https://i-blog.csdnimg.cn/blog_migrate/6fc2d06e68311e414adeb691f88b1c91.jpeg)
综合应用:高斯-赛德尔迭代法求解方程组
【例】利用高斯-赛德尔迭代法求解以下的方程组:
这个方程的高斯-赛德尔迭代公式是:
这个迭代公式中涉及到
设
我们在计算器的“计算”模式中,即可按照高斯-赛德尔迭代公式以及上述的隐含条件输入以下的多语句表达式:
D=(20+3B-2C)÷8:E=(33-4D+3C)÷11:F=(36-6D-3E)÷12:B=E:C=F
输入完毕后,按 [CALC],输入迭代的初始值。如果迭代的初始值为
![e0e11ba5257f3a72428e989f7644bf16.png](https://i-blog.csdnimg.cn/blog_migrate/5136b890a372794ce62ea0ecc6b53664.jpeg)
在每一次结果记录完之后,继续连续按 [=] 就是循环迭代的过程。观察每次迭代的结果,待每次迭代时变量 D、E、F 的值和上一次迭代时相等,我们就可以近似地认为迭代收敛。此时变量 D、E、F 的值就是方程组的解
![0829064d95486a3e5e6939ae35c561c6.png](https://i-blog.csdnimg.cn/blog_migrate/db5c65ed49cd7b5cb665cf62a9ef2488.png)
更进一步,若是我们希望不观察循环迭代的过程,而是让计算器能够自动判断迭代满足收敛条件,要如何操作呢?可以利用之前我们介绍过的“循环条件“法,添加满足迭代收敛的循环条件,让计算器自动终止计算。
考虑到若高斯-赛德尔迭代能够收敛,则
结合之前介绍过的“循环条件”推导方法,我们就可以得到“循环条件”为:
√(Abs(B-E)-ε)
注意,由于计算器“编程”中“循环条件”的限制,我们只能判断
计算器对于“循环条件”的判断需要在 B 的值被 E 覆盖之前执行。若
D=(20+3B-2C)÷8:E=(33-4D+3C)÷11:F=(36-6D-3E)÷12:√(Abs(B-E)-1*10^-16):B=E:C=F
输入上述表达式,按 [CALC],设置迭代初值全部为 0,连续按 [=] 直到计算器出现“数学错误”,然后查看变量 D、E、F 的值:
![5440ace3202a53fcd8d8a33cf7044178.png](https://i-blog.csdnimg.cn/blog_migrate/9db5544fdfa8d4f0412606d39eda82a2.jpeg)
为了得到计算器内部计算的后 5 位,我们分别计算 D-3.068965517、E-2.137931034、F-0.9310344827:
![d4c2456ca9086295ee00a5d0bd087e63.png](https://i-blog.csdnimg.cn/blog_migrate/809d0ebb14b46754c6a27d80dcb05587.jpeg)
这样我们就可以得到方程组的精确解(
总结
通过这篇文章,我们可以总结出 fx-991CN X 利用 CALC 功能执行连续计算的步骤:
- 将变量赋值表达式写成“A=B+C”的形式;
- 使用多语句分隔符(:)连接一系列的表达式;
- 按 [CALC] 键,指定各变量的初值;
- 连续按 [=] 执行程序直到满足终止条件;
- 调用变量查看需要的结果。
CALC 是 fx-991CN X 上的一个非常强大的功能。可能各位朋友之前只知道 CALC 可以对单个带字母的表达式执行赋值计算,而通过这篇文章的介绍,我们又知道了一种灵活应用 CALC 以及多语句分隔符,实现表达式的连续计算,并且利用其求解某些较为复杂的数学问题的方法。希望这篇文章在让大家熟悉计算器的高级用法的同时,也能够激发大家通过探索,发掘计算器更多功能的热情。