• 沒有找到結果。

MathCAD学步随笔 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "MathCAD学步随笔 - 万水书苑-出版资源网"

Copied!
22
0
0

加載中.... (立即查看全文)

全文

(1)

第 2 章

符号运算关键字启蒙

MathCAD中的“关键字”,誉之为“神通广大”不算溢美。它的符号工具栏包含全部可用 关键字的按钮列表。要使用它们时,可以信手拈来,方便快速。如果使用得当,常常会感到“左 右逢源”之乐。 比如,我们常常苦于 MathCAD 的“一步到位”的显示方式,特别在计算某个表达式时, 想看看运算的中间结果,因为看不见,一些不深入的朋友还会误以为 MathCAD 没有这个功能, 其实有机地运用“关键字”就能实现。现在就来用这个例子作为本篇的开锣戏,不过这个例子 只起一个“跳加官”的作用。 看见中间结果了吗,这里运用了关键字 ,关于这个关键字我们后面还要讲,在这 里就先卖一个关子。下面就对最主要最常用的关键字进行详细介绍。 本章要仔细地说一说这些为 MathCAD 符号运算锦上添花的关键字们。我们有以下两种方 法来使用关键字:  单一使用法:从每个关键字显示结果,点击符号工具栏中的相应关键字,在占位符中 输入想求符号值的表达式;或者按组合键 Ctrl+Shift+.,然后把关键字输入到空占位 符中。  堆叠使用法:陆续在占位符上输入多个关键字,形成程序风格竖条,应用所有关键字 后显示最后结果。 上述两种方法我们都会在后面有机地举例说明。

2.1 float 的浮点运算

这个关键字把你给出的符号结果改写为可用数值的结果,使用浮点运算将这些数值简化 为指定精度。调用 float 的最简单的方法是在符号工具栏中单击 float 按钮,当然也不排除按

2

(2)

Ctrl+Shift+.(按了这个组合键就会出现一个空占位符,后面紧跟一个→符号)把 float 打入空 占位符,如果要指定精度,则输入一个逗号,在其后打入要求的位数。这个指定精度的功能也 就是 float 的修改器。 比如计算一些数学常数,要指定计算精度为 40 位,则如下样式输入计算: 2.1.1 使用关键字 float 来改变计算精度 不用经常去菜单中改变系统默认的计算结果的小数位数即可任意指定计算结果的精度,如 下例: 用计算等号算出的结果小数点后只有 3 位,是系统默认的。 使用关键字 float 之后,可以任意规定小数点后的位数为 30 位,而且什么时候想改变就什 么时候变。 2.1.2 使用关键字 float 来实现符号运算 一些系统的符号函数值也可以用 float 显示出足够精度的浮点数。MathCAD 的内置符号 函数只有使用符号等号或“符号”菜单才能计算,它是不允许使用键盘等号求值的。因此,它 们的计算结果只能是符号结果。要想得到浮点数结果,只有使用 float 关键字。如下例: 实例 2-1 计算正弦积分。 下面的正弦积分表达式不能用求值等号求值。如果用符号等号,求出的结果是: 。这时可以用浮点数来计算这个符号函数的数值,要用到 float 关键字。如下: 实例 2-2 计算 dilog(x)——双对数函数。 用符号等号求出的结果是这样的:

要想用浮点数计算这 个符号函数的数值结果,只有使用 float 关键字。如下:

2.2 关键字 rectangular

关键字 rectangular(直角的)是复数结果标准化关键字,它返回包含分隔为实数部分和虚 数部分的标准直角坐标形式的复数结果。其输入调用方法和上一节相同,后面不再赘述。下面

(3)

令: 这个复数如果是在符号运算中得到的是符号结果,如下: 用关键字 rectangular 可以把它化为规范的“实部”+“虚部”的形式: 如果与关键字 float 连用,可以直接把结果表示为指定精度的浮点数的形式:

2.3 关键字 assume

关键字 assume(假定)用来在特定运算中指定符号表达式中变量的工作范围。MathCAD 仅在指定范围中计算这些变量。它通常都是配合一些求值性的关键字使用的,如 (简 化)、solve(求解)等。但关键字 assume 一定要使用在其他关键字后面。 实例 2-3 用 solve 求根,显示一共有三个根。 当叠加使用 assume 关键字并限制变量 b1 运算值域为整数(integer)后,就只给出一个根了。 在叠加使用 assume 关键字并限制变量 b1 运算值域为 b1<1 后,就只给出两个根了。 因为 都小于 1。 实例 2-4 下面的表达式用关键字 simplify 简化后,结果为 csgn(c1),它只有三个返回值, 在 c1 = 0 时将返回 0,在 Re(c1) > 0 或(Re(c1) = 0 且 Im(c1) > 0)时返回 1,其他情况下

(4)

仍返回-1。 当叠加使用 assume 关键字并限制变量 c1 小于 1 或大于 1 时,表达式的简化结果发生改变。 说明 并不是所有表达式或方程在简化或求根时,叠加关键字 assume 限制了演算 范围就会得到相应的不同结果。对于那些无论在何种范围运算都只有相同结 果的表达式或方程来说,叠加了 assume 关键字会如“泥牛入海”毫无作用。

2.4 关键字 solve(求解)

求解关键字 solve 是最活跃的关键字之一,它是一个适应性极强的关键字。使用它既可 以求单变量方程的根,也可以求多变量方程指定变量的根;既可以给出符号的解(如果有), 也可以给出数值解;既可以对任何一元方程求根,也可以对多元方程组求根。与其他关键字连 用,显得更加灵活,使用它允许的修改器作用会更加强大。下面分类举例说明。 2.4.1 单纯使用 solve 下面“等号右边为零”的方程使用 solve 可以只用等号左边的表达式,MathCAD 会自动 把不带等号的表达式默认为等于零。 只要表达式只有一个变量,solve 可以不用任何修改器。 2.4.2 使用 solve 的指定欲解变量修改器 下面的表达式有两个可以定为变量的文字符号,可以利用修改器指定其中任意一个或者 两个全部指定。这样得到三个解答。 当方程表达式具有多个文字符号,我们仅指定求其中一个时,MathCAD 会自动把其他文 字符号保留到解答中。

(5)

a b 当指定求解全部文字符号时,MathCAD 给出数值解,但要注意,这个数值解是准确的数 值解,不是近似的解。它以三种形式给出解答,或者是有理分式,或者是根式,实在无法就用 带 15 位小数的小数给出,以力求其精确。解的形式是一个“行矢量”,每列显示一个变量的根, 每行显示一组解。 这和求解块的解 find(a,b)不同,find 函数给出的根矢量是一个“列矢量”,它每行显示的 是不同的变量的根,而每列显示一组解。 2.4.3 使用 fully(完全)修改器 1.多个根的例子 定义 ,用单纯 solve 求根。 调用 fully 修改器,求本方程的完全解。 这里有必要对解的表达样式做一个说明,它是一个条件表达式,其中判别条件 的 含义是:变量_n 包含在整数集 Z 之中,则 if 之前的函数成立;否则,无解。 常用数集符号:自然数集 N、整数集 Z、有理数集 Q、实数集 R、复数集 C。 显然,表达式 随着 n 的整数取值而变化,因而本方程有无穷多个解。_n 是由 MathCAD 自动生成的变量,简 称为“生成变量”。但是,_n 作为变量,实在太难看了,这是 MathCAD 为了不至于与已经定 义的变量混淆而煞费苦心编造出来的区别样式。如果要使它顺眼,在变量比较少时可以直接把 它改为看来顺眼的名字。比如把_n 改为 n。再规定区间变量,可以直接显示区间中的值。 2.再加上“替代”修改器 using 的例子

替代修改器 using 是 MathCAD14 新增的修改器,这个修改器 using 后跟以布尔等号 一组

(6)

([Ctrl] [=])书写的方程,这样设置生成的变量与新变量相当。但它能一次修改很多个同样前 带下划线的特殊变量名,省去许多麻烦。 using 可以和所有关键字配合使用,也可以单独使用,是一个适应性极强的修改器。 比如前面的方程 R1(x)=0 配合使用 using 如下: 实例 2-5 定义 加上修改器 fully 求其全部解。 再加上修改器 using,把_n 替换成 N。这里要注意的是,using 及其输入参数千万不能用 错大小写,否则 MathCAD 会把 using 以及其参数错认成 fully 的参数而报错,因为 fully 不需 要参数。 假如错用了大写字符,就会像下面一样 MathCAD 会给你一张大红脸,并且告诉你... 2.4.4 求解方程组 1.求解线性代数方程组

↑ ↑ ↑ ↑ 线性代数方程组构成的矢量 关键字 指定变量 a、b、c、d 四个根

(7)

2.求解高次代数方程组 折到下一行 MathCAD 自动给出了完全的解,这个解的意思是说:如果_z 是方程 的根,则这个方程组就有根 ;否则,无解。 现在,先求 MathCAD 给我们生成的这个方程的根 亦即: root给出了两个实根,但这是在-10000 与 10000 之间的根,会不会还有其他的根呢?我们 不妨用这一节的主角 solve 来求证一下。 solve给出了 6 个根,这应该是全部的根了。但其中有 4 个复数根,如果只要求实数根, 那么 root 求出的就足够了。最后,令_z 分别为实根矢量的各个元素,求出这个高次方程组的 全部实根。

(8)

3.求解超越方程组

2.5 关键字 simplify(简化)

关键字 simplify 是用于简化表达式的多用途工具。它采用代数、三角和指数恒等式简化表 达式。这个关键字的用途很广泛,但使用较简单。 实例 2-6 一般表达式简化。 实例 2-7 混合表达式简化。 实例 2-8 堆叠关键字简化。 输入堆叠关键字的操作:首先用编辑框包含本关键字,接着在符号工具栏中点击下一个 关键字。 注意 不要在本关键字后面打逗号。 (1)在 x=0 的特定值的情况下简化。 (2)进行变量替换之后,再分解因式。

2.6 关键字 substitute(代入)

这是一个在表达式中对变量进行置换操作的关键字,它可以使用数字、其他变量或表达 式替换所有出现在表达式中的指定的变量。它与 using 不同,using 只能将解中生成的变量替 换到等式中,且不能改写初定义的表达式的变量,而 substitute 却能改写所有表达式的所有 第一组根 第二组根

(9)

(1)置换变量为数字。 (2)置换变量为其他变量。 (3)变量与表达式置换。 (4)多重置换。

2.7 关键字 factor(因子)

这是提供给我们做因式分解的工具,可以对整数或有理函数的表达式进行因式分解。因 为它可以带参数,适当地给出参数,也可以分解无理表达式。这就是说,应用关键字因式分解 将变换表达式进入乘积样式,这将变换:  多项式为多项式的积。  整数为其因数的积。  有理的表达式变换为单个分式。  对于因数包含根式的表达式,只要为关键字 factor 追加逗号,输入它们包含的根式或 用逗号分开的几个根式,也可以做分解。 2.7.1 整数分解为因数的积 如果要将整数分解为因数的乘积,只需在整数后面加上关键字: 2.7.2 多项式分解 在输入多项式之后,只需在整数后面加上关键字:

(10)

2.7.3 有理式分解 在输入需要简化的式子后,只需在整数后面加上关键字便可进行简化计算: 2.7.4 分解表达式为无理因式 1.分解下面的表达式 如果对右边的进行分解的话,输入后会发现没有变化,还是原样输出出来了。 似乎 MathCAD 不能分解,这主要是因为它有无理因式,我们先求解出无理根: 可以看出,求解的根中包含有无理数 ,这时在 factor 后打入逗号,输入指定分解参数 ,MathCAD 为我们分解出: 2.用根的矢量元素指定分解参数 下面的分解是事先用求解关键字观察了根之后简单地指定 为分解参数而求出来的: 很明显分解并不完全,我们可以看看表达式的根矢量(为节约手续,已经把它定义为矢 量 U): factor 允许用矢量元素作分解参数,因而我们直接在输入参数时输入其根的矢量元素 U0,U1。看看现在的分解结果吧,这样就实现了完全的分解。

(11)

2.7.5 分解表达式的复因式 实例 2-9 看下式的分解结果: 假如有更高的要求,则求解后观察根矢量。 然后把根矢量中包含的无理数、复数单位 i 指定作分解参数,再分解因式如下: 这样就把复数因式也分解出来了。 实例 2-10 用根矢量元素作分解参数,分解出复因式。 因为 求表达式 的复因式。

2.8 关键字 expand(展开)

expand 关键字也是一个使用方法简单的符号计算工具。它通过将表达式各项相乘得出幂 和积以及将标识符用于普通函数来展开表达式成各项和的形式。 使用 expand 展开表达式,只需在表达式后输入关键字。这个关键字可以带一种修改参数, 只需在 expand 后面先输入逗号,然后在其后输入主表达式的子表达式,则在执行 expand 后, MathCAD 将展开除此子表达式之外的所有项。 实例 2-11 一般表达式展开。

(12)

实例 2-12 指定避免展开的子表达式。 指定不展开子表达式 ,过程如下: 指定不展开子表达式(a+b),过程如下:

2.9 关键字 coeffs(系数)

关键字 coeffs 的功能比较单一,就是提取一个多项式的指定变量的各项系数,它支持两种 修改器:  指定变量的参数(表达式中的变量名)。  修改器 degree,使结果增加一列对应各系数项的幂次数。 它输出的结果为一列矢量或者二列矩阵。在代数多项式的情况下,从 0 行到 n 行显示为 从 0 次(即常数项)项依序增加到 n 次项,缺项的系数 MathCAD 自动补以 0。 这个功能很有实用价值,比如使用 polyroots 查找多项式的所有根,就需要本关键字提取 的系数矢量或矩阵。 2.9.1 单变量多项式系数的提取 可以直接使用 coeffs 关键字来提取单变量多项式的系数,如下: 对于如下乘积运算的表达式,MathCAD 是自动把表达式展开之后再提取系数的,计算所 得的矢量各元素就是展开后的多项式的系数。 0次项系数 1次项系数 2次项系数 3次项系数 4次项系数 5次项系数

(13)

此外,需要注意的是:MathCAD 提取系数时把超越函数作为常系数看待,所以xe 与 -2

都视为常数。原式展开为−x4+3⋅x+

(

xe−2

)

,x 的 4 次项系数为-1,3、2 次项系数均为 0,

常数项(0 次项)系数被视为xe−2。所以提取的系数如下:

而在下式中

展开式4⋅sin x( )+20+(sin x( )+5) x⋅ 3,x 的 1、2 次项系数为 0,4⋅sin x( )+20 被系统视为

常数项,sin x( )+5 是 x 的 3 次项的系数。 2.9.2 多变量多项式系数的提取 在多变量多项式情况下,MathCAD 将非指定变量项一律视为常量。比如指定求变量 x 的 展开式各系数,把含 y 的项视为常量。 指定求变量 y 的展开式各系数,把含 x 的项视为常量。 2.9.3 将系数矢量用于求解多项式的全部根 欲求代数方程 y(u)的全部根,使用 polyroots(v)函数,它的参数 v 就是被解多项式的系数 矢量,所以如下解题: 用关键字 coeffs 求出系数矢量且令其等于 v。 0次项系数 1次项系数 2次项系数 3次项系数 4次项系数

(14)

调用多项式求根函数 polyroots(v),得:

2.10 关键字 collect(合并)

collect会把包含变量幂的项结合起来。简化依指定的特别的变量合并多项式的同类项:输 入想合并的表达式。为了插入占位符要按住 Ctrl+Shift+.。在出现符号等号→后,输入关键字 collect。接着在逗号后打入指定的变量或表达式,按 Enter 键。这样就得到了按指定变量合并 后并作降幂排列的合并了的表达式。 实例 2-13 实例 2-14

2.11 关键字 series(级数)

展开函数成级数,这里是指采用泰勒级数或劳伦级数展开函数。默认情况下,MathCAD 将 展开关于 0 点的函数,并返回级数的前六项(即 0 到 5 次幂的各项)。只要在欲展开函数后简 单地点击符号工具栏中的 series 按钮,不用输入任何参数,MathCAD 就会自动按照默认计算 并输出结果。 如果需要在指定变量的非 0 点展开,则应该在关键字后打入逗号,输入变量名以逻辑等 号规定展开点,如 x=1。如被展开函数中有多个变量名,则应在关键字后打入逗号,然后打入 指定变量名。

(15)

实例 2-15 (默认状态) 要想多返回几项怎么办?只需在关键字后打入逗号输入一个数字,这个数字就是规定的 输出项数,像下面这样输入参数: 注意 在输出中只看到了 6 项,这是因为系数为 0 的项没有显示的缘故。 实例 2-16 t1/3的级数展开。 因为在 x0=0 点,被展开函数的在按 x-x0 的幂排列的泰勒级数展开时“不是解析的”,而 MathCAD默认的展开级数恰好是在按 x-x0 的幂排列按泰勒级数展开,因而导致默认状态不能 展开,由于 t 的三分之一次方在 x0=1 点是解析的,所以只有修改展开点。 这里要注意的是,默认情况下,展开的级数,其变量取值越靠近 0,准确度越高,而改为 对点 1 展开后,展开的级数,其变量取值越靠近 1,准确度越高。一般来说,展开的级数的 近似值只有靠近展开点的小区间中才是有效的。 试看 , ,它的级数展开值的计算如下: 而当在 , ,它的级数展开值的计算如下: 这个展开的误差就几乎不能容忍了。 实例 2-17 来看看它们的近似结果,令

(16)

实例 2-18 在 t1=0 点,其一次导数为无穷大,因而不是解析的。改在 t1=2 点展开。 仅仅取了三项级数,在值 2 处就得到了至少小数点后 7 位的精度。

2.12 关键字 parfrac(部分分式)

这个关键字可以将有理式展开为具有线性分母或二次分母的分数之和。请注意它的展开 对象是“有理式”,不是所有表达式。像 之类,它都是无能为力的。所以该关键字的功能是:展开有理式为部分分式。它可以用逗号后 的参数指定变量。这个关键字无法展开包含带小数点的常数的表达式。但可以选择原式的无理 数根作变量,使其展开的部分分式表达式中包含指定的无理数。 实例 2-19 有理分式也就是多项式的商,如下式: 实例 2-20 可以把上式分解为带其分母的无理根的部分分式。 实例 2-21 可以把一个有理式分解出带复数的部分分式。

(17)

2.13 关键字 explicit(显式的)

这个关键字是 MathCAD14 新增加的,它可以把选定的表达式中指定的变量按你的规定 作置换操作,并且保证仅仅只是置换而不做其他任何操作。可以把它用于符号计算使之在适当 的位置返回带变量值的表达式,但是不去简化数字表达式。这是一种在得到完整的数字结果前 在适当位置显示中间值的方法。 实例 2-22 一般的中间显示 一般的计算 显示置换计算 中间过程显示 单个变量置换 实例 2-23 置换变量为表达式。 实例 2-24 更加顺眼的显示格式。 把下式显示为显式格式 但是,这样并不很符合书写习惯,打印出来也不像计算式子。人性化的 MathCAD 提供了 两个工具,使我们能够“瞒天过海”,让显示与打印出来的计算式子和手写的格式几乎完全相同。 这两个工具一个是“隐藏关键字”,一个是把符号等号→显示为=。 下面就来试一试:最初像下面这样,关键字 explicit 清清楚楚地显示在页面上。只要用 右键点击符号等号左边,在出现的右键菜单上点选“隐藏关键字”和“将运算视为——等号”, 使它们前面自动打上钩,就会出现最下一行的显示效果,如图 2-1 所示。

(18)

图 2-1 它弹出的菜单效果

2.14 关键字 combine(组合)

MathCAD14新增的关键字,它的作用是通过指数函数和初等函数(如 ex 或 ln(x)、sin(x)) 的标识符以组合表达式中的各项,所谓“标识符”就是标识函数类别的符号,如 exp、sin、cos、 ln、log 等。简单地组合表达式只需要在选定表达式后点击符号工具栏中的 combine 按钮即可, 如下: 2.14.1 关键字的修改器应用实例 这个关键字支持较多的修改器,举例如下: atan反正切: exp指数: ln自然对数: log以 b 为底的对数: sincos三角函数: sinhcosh双曲线:

(19)

2.14.2 combine 与 collect 的区别 combine(组合表达式的同类项)、collect(合并表达式的同类项)这两个关键字如此貌似, 这勾起了我们探索它们之间区别的欲望。 二者的相同之处在于都是把被处理表达式的有关项以某种规律合并起来。 二者的不同处之一在于处理对象,collect 是按幂次合并表达式中的代数项并把它们作升 幂或降幂排列,其作用和初等代数中的合并同类项基本相同。而 combine 是把表达式中的超 越函数按修改器指定的标识符进行组合。两者的处理对象是完全不同的。 二者的不同处之二在于处理方法,collect 仅仅是简单的合并与排序,combine 却要对表 达式中的超越函数进行转换与重组。试看下例:

2.15 关键字 rewrite(重写)

这个关键字也是 MathCAD14 新增的,它根据初等函数重写表达式,比如: 而 rewrite 支持所有超越函数标识符作它的修改器。有时候需要指定表达式以某种初等函数 格式表示时,rewrite 显得十分有用。尽管它有时也会显得“力不从心”,但仍然不失为一个有 力的工具。 实例 2-25 假如想把表达式 改写为正弦函数表示的表达式。仅仅使用简化关 键字,会简化成为一个余切函数表达式,如下: 只好使用重写关键字 rewrite 并带上修改器 sin,但改写结果表达式变得十分繁复。

(20)

如果想简化输出的式子,就把重写与简化关键字堆叠使用,有时也会十分奏效,如下例:

实例 2-26 几个各式各样的例子

2.16 关键字 confrac(连分式)

continued fractions(连分式),关键字 confrac 为其简写。这个关键字也是 MathCAD14 新 增的。它的唯一功能就是把表达式(或数字)展开为连分式(或连分数),补充了关键字 series 的某些方面的无力之处。在表达式或数字之后输入了关键字 confrac 后(输入方法同前),点击 工作页的空白点或按 Enter 键,MathCAD 按默认返回连分式的矢量(不是连分式的本身):

(21)

关键字 confrac 带有一个修改器 fraction,在关键字后面打上一个逗号,接上这个修改器, 就可以把表达式直接用连分式表示。 2.16.1 展开数字为连分数 没有用修改器 fraction 生成连分数矢量。 循环小数 有理分数 整数 整数展开的连分数就是整数本身。

(22)

2.16.2 展开表达式为连分式

其第二列是对应的 x 的幂次,列出来方便写出真实的连分式

參考文獻

相關文件

CPTPP 是一个高标准的经贸协议,内含多个新的国际经贸规则,对未来 WTO 改革以及 多边、区域性贸易规则的制定有重要影响。首先,CPTPP

再以后,两个人频繁地约会,她发现他实际上是一个很好的男人,大度、细

1871—1946)和稍晚的塞梵利(F.Severi,1879—1961),他们主要的结果是代数曲面的分类.头一个

衡量一个地区或一个国家水资源的丰歉 程度的指标:

• 这幅由美国航空航天 局提供的影像中,南 极上空的臭氧层空洞 就像一个巨大的蓝色 水滴。美国航空航天 局的科学家2000年9 月8日宣布,南极上

一般说来, 对于一个区间上单调的函数的 图形都存在一个需要判别弧段位于相应的弦线

4、任给空间中某一点,及某一方向,过该定点且垂

这是我国 29 位画家画的“三 毛之父”—— 张乐平爷爷。他们 面对同一个人物,用了不同的表现