MathCAD基础——符号关键字
mathcad吧
全部回复
仅看楼主
level 11
randvac 楼主
这一篇是根据张老在Simwe论坛的旧帖《神通广大的关键字及其修改器》来写的。
张老在贴中详尽地举例说明了每一种关键字的作用,以下是其全部文档:
网盘链接
从下一楼就开始,是我自己对这些内容的理解,权当交流探讨,有许多不成熟的地方,请各位吧友补充。
2015年02月12日 13点02分 1
level 11
randvac 楼主
在讲关键字之前,先复习下关于【符号等号】的相关内容
一、【符号等号】
(一)什么是符号等号
【符号等号】是这个样子的:
左边的黒块是一个占位符(用于标识该处应当有字符输入,具体到此处是[待计算的表达式]),旁边的符号“→”类似于我们常用来表示“推导、推出”的意思。
【符号等号】用于告诉Mathcad进行符号计算,但不限于符号计算(也可以进行数值计算)。
【符号等号】在Mathcad中是一个很关键的等号,几乎每次打开Mathcad都肯定会用到它,在使用各种关键字比如simplify(化简式子)、solve(求解方程)、expand(展开式子)等等时,都会见到【符号等号】。
(二)如何输入符号等号
符号等号通过【CTRL】+【.】输入,也可以通过使用鼠标从【符号关键字工具栏】中点击"→"输入,如下图所示。
(第一行中间那个符号是【符号关键字等号】,与【符号等号】同宗,但它的占位符是[关键字],以后会讲到)
(三)符号等号的作用
1、普通计算
能用【求值等号】(就是"=")求解的场合,都可以用【符号等号】,如下图所示
主要的区别:
【求值等号】只会给出数值解,【符号等号】除可以给出数值解为还可以给出其他形式的解
比如:
上图中的3,两个分数相加通过符号等号得到结果是一个分数(但是小数与分数相加得到的是小数,如图中的4)
上图中的5,开根号,通过符号等号得到的是根号形式的解
上图中的6,根号与根号之间的计算,通过符号等号得到的解是化简后的根号形式
上图中的7,对于有数学常数参与的计算,通过符号等号得到的解中仍然保留数学常数。
2、用于函数的计算
有些函数是必须使用【符号等号】才能进行计算的,比如求极限、求导、求积分等。

3、其他方面的运用
以我当前的经验还不足以举出更多更好的例子,请其他吧友补充吧。
2015年02月12日 13点02分 2
level 12
嗯,整理zpz老师的基础应用贴需要些耐心。
直接输入带有关键字占位符的符号等号,快捷键是ctrl + shift + .
2015年02月12日 16点02分 3
level 11
randvac 楼主
三、MC15[M030]内置关键字
不同版本的MC,内置关键字存在不同,以下关键字均在Mathcad15(版本M030)中通过实测。
(一)float
名称:【符号浮点计算】(知道这个名称就可以在MC帮助中进行查询)
【帮助——目录——符号和关键字——符号浮点计算】
作用:使用符号浮点进行计算,直观的现象就是,计算结果是小数
用途:
1、直接使用,显示20位有效数字的浮点结果
如图所示,当使用了float关键字后,MC将计算出数值结果来,在默认情况下,这个结果有20位有效数字。
2、显示指定精度的计算结果(带参数的float)
在float关键字后面键入逗号“,”(英文字符),然后再跟上一个【正整数】,用以指定输出结果的【有效数字位数】(不是小数位数)。例如:
这里的正整数,是float关键字的参数!许多关键字都可以带参数。
如果关键字输入不正确,MC会报错。
3、其他使用【求值等号】计算不出数值的场合
MC中【求值等号】(就是直接输入“=”)能处理的最大值是10^307,当超出这个值后,MC就不能正常计算了。
比如这个函数:
当t=71时,能够计算出f(71)的值,但是当t取72时,MC报错了“发生浮点错误”。
因为将f(72)的值超过了10^307,求值等号不能正常计算出结果。
但是可以使用float得出结果:
这个结果的数量级是10^309,【求值等号】办不到,但是【float】办得到。
2015年02月14日 03点02分 5
level 12
MuPad符号引擎提供了几个早期Maple引擎所没有的关键字,我觉得你可以安装一个MC2001或者2001i,然后对比着试试看。Maple引擎里的trig关键字很牛,到了MuPad里就变成了Rectangular,在功能上是有些区别的。
2015年02月14日 03点02分 6
我想我还是先面向MC15的初学者吧,这种对比和应用方面的见解,还是让已经有所研究的人补充比较好,这样也能发挥各方的所长。
2015年02月14日 04点02分
回复
angelycs
:呵呵,好吧,听你的。
2015年02月14日 04点02分
level 11
randvac 楼主
(二)expand
作用:展开表达式【帮助中索引“展开表达式”】
示例:
用法:
1、直接使用
如上图所示,在表达的后面直接使用expand关键字,可以将表达式展开。
图中的3,虽然使用的【展开表达式】expand关键字,但是实现的是将三角函数进行了化简,这在MC看来是一种展开。
要注意的是,expand只会展开,不会化简,比如上图中最后一行,尽管sin²(x)+cos²(x)可以进一步化简为1,但是只使用expand的情况下,MC是不会主动继续化简的。
要使得MC一步到位将其化简,可以使用【关键字叠加】的方法,告诉MC先【展开】(expand)然后再【化简】(simplify),就像这样:
要注意的是,expand必须在simplify的上面,因为【叠加关键字】的执行顺序是从上往下的,这也是为什么要把编辑线置于expand关键字【后面】再点击simplify的原因。
如果我们非要把simplify放到expand的前面,会出现这样的结果:
MC按照【从上往下】的顺序,先执行了【化简】simplify(而化简的结果正如上图中第二条式子),MC并不能将其简化,然后再执行【展开】expand,于是MC很勤劳地将原始展开了。
所以,使用MC并不能总是指望使用单个关键字来实现想要的效果,MC有自身的局限,使用者也有自身的局限,只有彼此扬长避短才能发挥更大的作用,况且这样灵活的组合方式能够激发更多的想象力,所以这其实算不上是MC的局限。
sin(2x)+1仍然不是最简化的式子,因为sin(2x)还可以进一步化简(如第一张图片中的3),只是化简sin(2x)这个式子需要用的关键字不是simplify,而是expand,所以,还可以再叠加一次关键字,成为这样:
对于【关键字叠加】,这里只是简单地展示一下MC里有这么一种用法,关于【关键字叠加】的详细使用留待后文讲解和其他吧友补充。
2、指定参数,不展开某些项
在expand的后面添加参数,可以使得表达式中的某些项不被展开,比如:
(1+x)作为expand的参数,在结果中得以保留。
还可以指定多个参数,彼此之间使用逗号(英文逗号)隔开,保留多个项不被展开
为什么要保留某些项不展开呢?这个得根据需要来,结合实际情况吧。
2015年02月14日 05点02分 7
level 11
randvac 楼主
(三)factor
作用:因式分解,将表达式化为多个式子的乘积
示例:
用法:
1、直接使用
如上图所示,可以直接使用factor关键字对那些可以进行因式分解的表达式或者数字进行因式分解。
不过我没有搞明白的一点是,为何将(x+1/2)^2展开后再因式分解不能返回原有形式?
如果要得到原有形式,该怎么做呢?
对了,这里用到了在expand的展开结果中继续使用关键字的用法,在MC中,计算结果也是可以继续使用关键字的。
2、使用参数
(1)指定了参数的factor,在进行因式分解时,会将参数包含在因式分解的结果中,可以有多个参数,使用英文逗号隔开。
默认情况下,factor只会在有理数范围中进行因式分解,对于某些表达式,MC不会自动计算并分解,例如x^2-5,在有理数范围内不能进行因式分解,但是可以在实数范围内分解,只有手动给出它的解√5作为参数,factor也可以将它因式分解。
所以factor的参数并不是可以随意指定的,必须是表达式的根。
比如:
图中x^2-2在给定参数√2后,可以因式分解,因为√2是x^2-2的根,所谓“根”,即x^2-2=0的解,-√2也是x^2-2的根,所以将参数改为-√2也可行。
如何才能知道表达式的根呢,可以使用后面会讲到的solve(求解方程)关键字。
(2)除了直接将根作为参数外,还可以指定值域,将值域扩大到实数范围,像这样:
domain和real都是Mathcad中内置的一种特殊字符,在帮助中这种特殊的字符被称为【修饰符】或【修改器】(帮助——目录——符号和关键字——修饰符)。
domain的含义是“值域”,real的含义是“实数”,domain=real则表示“值域更改为实数范围”,要注意的是,这里的“=”是【逻辑等号】,不是【求值等号】,通过【CTRL】+【=】输入。
这样MC就会在实数范围内进行因式分解,而且会给出数值解。
这里又使用了【关键字叠加】,float,4的作用前面已经讲过了,用来控制输出结果中小数的有效位数个数,如果不使用它的话,会是这样的:
使用float,4关键字叠加,只是为了缩短这个式子的长度,当然这样会丢失一定的精度,毕竟√2与1.414是不相等的。
举一反三,把值域扩大到复数范围内:
2015年02月14日 08点02分 8
domain=real,直接输入么? 还有rectangular
2018年07月21日 12点07分
@loveliut21 我怎么输入不行啊
2018年07月22日 03点07分
@loveliut21 字母直接输入,等号要使用 ctrl+= 来输入
2019年04月26日 01点04分
level 12
domain和degree很精彩,第一次知道还有这两个修饰词,谢谢哈!太棒了,继续挖掘哈!
2015年02月14日 14点02分 10
level 11
randvac 楼主
(五)parfrac
作用:将有理式转换成部分分式
实际上如果不查阅资料的话,我已经忘记“部分分式”是什么了,所以感觉在讲这些时会误人子弟。
用法:
1、单个变量时不需要带参数,多个变量时,需要指明对哪个变量进行操作。
2、要操作的变量必须是有理式,否则会报错
3、同factor一样,parfrac默认值域在有理数范围内,可以用参数指明根
4、同样,可以使用domain改变值域
莫非domain的应用范围挺广的?
根据MC的帮助中“修饰符”一节显示,domain可以应用的关键字也就factor和parfrac这两个了。
如果属实的话,以后的部分也许就不会再见到“domain”了。
再见,domain。
2015年02月17日 09点02分 11
你试试看,这个关键字看上去很强大哈。
2015年02月17日 14点02分
回复
���Ͻ���
:我印象中应该还有其他关键字能用上domain。
2015年02月18日 03点02分
level 11
randvac 楼主
接上一楼,把遗憾的部分补上——和差化积
图中的1展示了MC能够展开sin(A+B)和cos(A-B)之类有多个变量的表达式,但是不能展开只有单个变量的sin和cos,如图中2所示。
在这个认知上,图中的3使用了substitute关键字【替换变量】,将x替换成(A+B)/2,y替换成(A-B)/2,然后就可以得到多个变量的表达式,于是MC可以将其展开(展开),得到关于A和B的结果,最后再将A和B替换成原来的x和y。
文字很乱,看下图吧:
或者下面这个图(两个图是其实一样的)
(由于这一行比较长,缩略图会缩小,你也许需要点击图片再放大来查看)
这里要再强调以下,MC中【关键字堆叠】的执行顺序是从上往下,所以要注意关键字的上下顺序。如果改变顺序就会像下面这样:
好歹是在MC中弄出了和化积差,尽管绕了点路。
若有更简洁直接的办法,还请吧友补充。
2015年02月18日 04点02分 13
level 11
randvac 楼主
(七)rewrite
作用:使用指定的方式转化表达式,比如将sin转换成cos,将复数形式转换成三角函数形式等等
用法:
需要将【修饰符】作为参数一起使用,可以使用的修饰符有:
acos ---------反余弦
acot ---------反余切
asin ---------反正弦
atan ---------反正切
cos ----------余弦
cosh ---------双曲余弦
cot -----------余切
coth ---------双曲余切
exp ----------指数
gamma -----伽玛
ln -------------自然对数
log----------- 以 10 为底的对数
signum -----Signum (正负号函数,这个不知道用在什么场合rewrite)
sin----------- 正弦
sincos -------正弦或余弦
sinh ---------双曲正弦
sinhcosh----双曲正弦或双曲余弦
tan ----------正切
tanh ---------双曲正切
rewrite还有一个用处,看下面这个图
看起来函数f(t)随t的增大逐渐收敛于0,用求极限运算符试试看:
没有能够得到数值结果,加上float也不好使......这是为什么呢?
据吧主说,原因是这样的:
事实证明,这样确实是可行的:
所以在MC15(M030)中,rewrite还可以充当救火员的作用。
希望下一个版本中,lim运算符可以解决这个问题。
2015年02月18日 05点02分 14
rewrite也写不出来
2018年07月22日 05点07分
level 12
边学边试,你进步嗖嗖的[THUMBS UP SIGN][THUMBS UP SIGN][THUMBS UP SIGN]。
就得这么玩儿才好。搞MC的不二法门就是自己动手整,“在游泳中学会游泳”。
你把这几个关键字都摸一遍之后,建议你再试试关键字的组合技巧,以及符号计算与数值计算、编程板、求解命令块等的联用,把这一遭都走过一遍了,MC符号计算的基本功能、高级应用什么的,我相信你即便算不上完全掌握,也是都领略过一次了。而且我感觉吧友也会很有所得的!谢谢@angelycs 的精彩图解[CLAPPING HANDS SIGN][CLAPPING HANDS SIGN][CLAPPING HANDS SIGN][CLAPPING HANDS SIGN]!
2015年02月18日 09点02分 15
level 11
randvac 楼主
(八)rectangular
作用:将复数表达式转换成“实部”+“虚部”的形式
例如
要注意复数单位"i"(或"j")的输入方式:
为了将复数单位与普通变量"i"、"j"区分开,用"1i"(或"1j")来表示复数单位,也就是一个"1"和一个"i"(或"j")连续输入,中间不需要乘号。
2015年02月26日 13点02分 16
level 1
楼主幸苦了
2016年04月21日 06点04分 18
level 1
好东西,学习了
2016年09月28日 03点09分 19
level 7
你真牛逼
2016年09月29日 08点09分 20
level 9
学习了,非常感谢,解释了一些困惑。
2016年12月04日 09点12分 22
level 1
厉害了word哥
2016年12月05日 08点12分 23
level 7
专门过来致敬楼主和朱老剑客的,我学习mc是从你们的帖子开始的,尽管吧里不热闹,但是你们先前种过的树依然给很多人带来阴凉。
2016年12月31日 14点12分 25
1 2 尾页