Diagram Designer 的表达式求值工具(Expression Evaluator)

软件版本:Diagram Designer (Version 1.24)


一、Diagram Designer 的表达式求值工具

下图为 Diagram Designer 的表达式求值工具:

220432_KMGg_1425762.png

在程序的帮助手册中,对这个表达式求值工具的使用有着较为详细的描述。(在【Using Diagram Designer】的【Expression Evaluator】章节,不过内容是英文的)

里面提到了这个表达式求值工具有下面几个特征(Notable Features):

  1. trigonometric functions(计算三角函数)

  2. hyperbolic functions(计算双曲函数)

  3. logical operators(逻辑运算符)

  4. named user variables can be created and used(用户可以自定义命名和使用变量)

  5. recursive descent parsing (ie. handles nested terms) (递归下降分析法)

  6. equations can be programmed and used later(可以编写方程并在之后使用)

  7. multi-line programming with a single result (多行程序输出单个结果)

  8. some constants built-in, more can be added by user using expressions(除了已经被写入的常量,用户还可以加入更多表达式)

  9. equation solving (roots, minimums, etc.) and plotting - plots can be inserted into diagrams(解方程,绘制函数图像)

帮助文档中对于编辑器各部分区域的命名如下图,本文将沿用这些称呼:

221436_kTb5_1425762.png

其中,【Expression Area】(表达式区)是用户键入表达式的地方,【Result Area】(结果区)是工具显示计算结果的地方,左下角的【Available Functions & User Vars, etc】是目前编辑器内已经注册的函数和变量,可以被直接使用。


二、表达式求值方法

用户可以在表达式区里输入下面三种格式的文本:

1):Variable_name=variable_contents;

为变量赋值,可以创建新变量,也可以更新既有变量的值。如 :abc=123; 代表将123赋给变量abc

2):Function_name(function_variable)=expression_in_variable;

创建函数,这里的函数只能有一个自变量,如 :f(x)=x^2; 是可以的,但 :f(x,y)=x^2+y^2; 的不可以的

3)expression_to_evaluate

计算表达式,如输入 sin(1),在结果区会显示“0.841470984808”


三、运算符

表达式求值工具中可以使用下面几个运算符:

运算符说明信息
&逻辑与(非0数字都被视为真)
|逻辑或(非0数字都被视为真)
=等于,等号两侧的值相等则返回1,否则返回0
#不等于,不等号两侧的值相等则返回0,否则返回1
>大于等于,结果为真则返回1,否则返回0
<大于等于,结果为真则返回1,否则返回0
+加法运算
-减法运算,负号
*乘法运算(乘以)
/除法运算(除以)
%求余运算【注】
^求幂运算,x^y 代表 x 的 y 次幂

 【注】:求余运算中,帮助手册里的说法并不准确。帮助中的原文是

 Result is the remainder of integer division, eg. 16.1%3.03 is equivalent to 16/3.  Remainder (result) in this example is 1.

即模除时所有非整数会被转换为整数再做运算,但这个说法经过实施检验不能成立 16/3 的值是1,而 16.1%3.03 的值是0.95


四、常量

表达式求值工具内默认的常量如下:

常量
e2.718281828459 (自然对数)
infinfinity (≈ 1 / 0) (无穷大,值为INF)
kb1024 (2的10次方)
Mb1048576 (2的20次方)
pi3.14159265359 (圆周率)

这里的常量只是几个最为基本的常量


五、函数

1)三角函数

三角函数返回值
cos(x)余弦函数,x为弧度
arccos(x)反余弦函数
sin(x)正弦函数,x为弧度
arcsin(x)反正弦函数
tan(x)正切函数,x为弧度
arctan(x)反正切函数
cot(x)余切函数

注意:这里的三角函数中并没有反余切函数;也没有正割、余割、正矢、余矢等三角函数

2)双曲函数

双曲函数返回值
cosh(x)双曲余弦 cosh(x) = (ex + e-x) / 2
arccosh(x)反双曲余弦
sinh(x)双曲正弦 sinh(x) = (ex - e-x) / 2
arcsinh(x)反双曲正弦
tanh双曲正切 tanh(x) = sinh(x) / cosh(x)
arctanh(x)反双曲正切

3)取整函数

取整函数返回值
ceil(x)取天花板,返回比x大的最小整数
floor(x)取地板,返回比x小的最大整数
frac(x)获取一个实数的分数部分
round(x)类似四舍五入,返回与输入的实数最接近的整数,在这里0.5会被舍而不是入,如4.5会被舍到4,4.51才会被入到5

4)随机数

随机数
返回值
rand(x)返回在0-x间的实数,使用白噪声生成器生成
randn(x)返回高斯随机数,x为标准差

5)指数函数与对数函数

对数函数返回值
exp(x)指数函数 exp(x) = ex
ln(x)以e为底的对数(自然对数)
log10(x)以10为底的对数(常用对数)
log2(x)
以2为底的对数

6)其他函数

其他函数返回值
abs(x)绝对值
bin(x)将二进制数字转换为十进制
fac(x)计算阶乘
sqrt(x)计算算术平方根

六、解方程

Diagram Designer可以解一些最简单的方程,方法如下:

函数说明
num.Guess用于猜测方程的解,单独使用时无意义,默认值为 0.500000001
num.argmin(expression,x)num.argmin(f(x),x),获取函数 f(x)=expression 的最小值,如 num.argmin((x-1)*(x-1)+4,x) 的值是 1.000000001
num.min(expression,x)num.min(f(x), x),获取函数 f(x)=expression 在取到最小值时x的取值,如 num.min((x-1)*(x-1)+4,x) 的值是 4
num.root(expression,x)获取方程 expression=0 在 num.Guess 附近的根,如方程 x^2+5*x+4=0,在num.Guess为0.500000001(默认值)时,num.root(x^2+5*x+4,x)返回-1,在num.Guess为6时,返回4
num.solve(equation,x)获取方程 equation 在 num.Guess 附近的根,如方程 x^2+5*x+5=1,在num.Guess为0.500000001(默认值)时,num.solve(x^2+5*x+5=1,x) 返回-1,在num.Guess为6时,返回4

七、绘制函数图像

绘制函数图像要使用到plot函数,用法为:plot(expression,x)

绘制的图像是函数 f(x)=expression 的图像,输入:plot(4*x^3+3*x^2-2*x+1,x) 得到的图像为:

234516_zjgS_1425762.png

按下Plot窗口中的Copy(复制)按钮,在DiagramDesigner中“Ctrl+V”或鼠标右键菜单中点击“Paste”(粘贴,快捷键Shift+Ins也可以做到),就可以将这个函数的图像复制到DiagramPane上了,如下图所示:

234802_vDoV_1425762.png

END

转载于:https://my.oschina.net/Tsybius2014/blog/465829

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值