EasySolve使用教程
EasySolve使用教程
Section titled “EasySolve使用教程”EasySolve是由浙江大学SCOOL实验室开发的模型求解计算平台,模型输入简易,求解算法丰富,求解速度高效。
基础功能介绍
Section titled “基础功能介绍”EasySolve是模型求解计算平台,您可以根据需要选择您的求解模式。本平台提供四种求解模式,分别是线性方程组求解(Ax=b)、非线性方程组求解(f(x)=0)、混合整数线性规划(MILP)、非线性规划(NLP),各个模式的格式见EasySolve求解模式。
您可以通过手动输入求解内容,也可以通过import自动上传求解模型。点击Clear可以清空输入窗口内容,重新进行书写。完成书写后,点击Solve,EasySolve会进行求解,并在右侧result页面输出结果。您可以点击Export输出结果,将生成一个excel表格存放结果;也可以选择Copy复制结果。您可以通过点击Verbose/Simple键切换结果显示的模式。
您可以在设置中更改设置,在右侧历史记录中查询历史版本。
EasySolve求解模式
Section titled “EasySolve求解模式”按照求解模型的不同需求,EasySolve分成四种不同的求解模式。
| 求解模式 | 模式名称 | 含义 |
|---|---|---|
| Ax=b | 线性方程组求解 | 对非齐次线性方程组进行求解 |
| f(x)=0 | 非线性方程组求解 | 对齐次线性方程组进行求解 |
| MILP | 混合整数线性规划 | 混合整数线性规划问题求解 |
| NLP | 非线性规划 | 非线性规划问题求解 |
Ax=b(线性方程组求解)
Section titled “Ax=b(线性方程组求解)”可求解非齐次方程组 Ax = b,其中 A 为系数矩阵,x 为未知数组成的向量,b 为常数项向量。
在该模式下进行模型求解时,首先分行列写各方程,在最后一行列写所有变量,以**,**隔开。点击Solve,即可进行求解,在右侧result页面中输出结果。
#1)方程组:# <方程式1>; <方程式2>; ...
#2)变量声明:# <变量名1>,<变量名2>,...例:`x1+3/3*x3+min(2,5)*x3=11*3*x2=4*31*3*x2+sin(8-4)*x3=7x1,x2,x3f(x)=0(非线性方程组求解)
Section titled “f(x)=0(非线性方程组求解)”可求解齐次方程组 f(x)=0,在书写方程组时只需写出左侧表达式,默认右侧为0。
书写方法与**Ax=b(非齐次方程组求解)**一致,先分行列写各方程,最后一行列写所有变量。点击Solve,即可进行求解,在右侧result页面中输出结果。
#1)方程组:# <方程式1>; <方程式2>; ...
#2)变量声明:# <变量名1>,<变量名2>,...
注:为了使计算收敛,变量必要时需要赋初值,格式为<变量名:初值>;例:`x1^2-10*x1+x2^2+8x1*x2^2+x1-10*x2+8x1,x2MILP(混合整数线性规划)
Section titled “MILP(混合整数线性规划)”用于在给定可行域内,求解线性约束下线性目标函数的最优解及最优值。
MILP全称为Mixed-integer linear programming,即混合整数线性规划,指目标函数和约束条件均为线性,部分决策变量限制为整数的数学规划问题。具体来说,其约束条件支持等式约束及不等式约束;变量类型包括 0-1变量、整型变量、实数型变量。
混合整数线性规划(MILP)的设置参数包括:
#1)目标函数:# min/max(<表达式>)#2)约束条件:# <bool表达式1>; <bool表达式2>; ...#3)变量声明:# <变量名1>:<变量类型1>, <变量名2>:<变量类型2>, ...其中变量类型包括以下三类:
| 变量类型 | 含义 |
|---|---|
| 1 | 0-1二进制变量 |
| 2 | 整型变量 |
| 3 | 实数型变量 |
实际列写时,按顺序写下目标函数、约束条件、变量声明的标准格式式子即可,上例中##间的备注内容不必写入。
例:max((5*1)*x1+3*x2+2*x3+(10-3)*x4+4*x5)2*x1+(2*4)*x1+4*x3+2*x4+max(1,5)*x5<=5*2x1:1,x2:1,x3:1,x4:1,x5:1NLP(非线性规划)
Section titled “NLP(非线性规划)”此动作用于在给定可行域内,求解约束下目标函数的最优解及最优值,其中目标函数和约束条件至少有一个为非线性。
NLP全称为Nonlinear programming,即非线性规划,指目标函数和约束条件至少有一个为非线性的数学规划问题。具体来说,其约束条件支持等式约束及不等式约束;变量类型包括 0-1变量、整型变量、实数型变量。
#1)目标函数:# <表达式>#2)约束条件:# <表达式1>:[表达式下限/表达式上限]; <表达式2>:[表达式下限/表达式上限]; ...#3)变量声明:# <变量名1>:[变量下限/变量上限/初始值], <变量名2>:[变量下限/变量上限/初始值], ...
注:1.若无上下限对应位置不写,如x[/3]表示变量x≤3;2.变量声明若无初始值要求,可简写为[变量下限/变量上限]。例:x1*x4*(x1+x2+x3)+x3x1*x2*x3*x4:[25/2e19]x1^2+x2^2+x3^2+x4^2:[40/40]x1:[1/5],x2:[1/5],x3:[1/5],x4:[1/5],x5:[1/5]EasySolve可以直接将某一数值或表达式赋给某个变量。赋值号为冒号:或等号=,推荐使用冒号:,赋值顺序为将赋值号右边的值赋给左边。
相关示例如下:
#示例1:直接将值1赋给变量State_POINTState_POINT: 1;
#示例2:将由变量Cartset_POINT与Cart_POINT组成的表达式的值赋给变量ECarEcar: Cartset_POINT - Cart_POINT;基本数值运算
Section titled “基本数值运算”EasySolve可完成的基本数值运算及涉及的运算符如下表所示。
| 名称 | 运算符 |
|---|---|
| 四则运算 | + - * / |
| 关系运算 | < <= > >= == != |
| 逻辑运算 | && || |
| 取余运算 | % |
| 幂运算 | ^ |
| 位运算 | & | ^^ ~ << >> @ |
相关示例如下:
#示例3:简单四则运算Iout: Iout + Igain * Ecarn1 * Ts;
#示例4:多种运算混合Ilimout: (Iout <= Iuplim && Iout >= Idownlim) * Iout + (Iout > Iuplim) * Iuplim + (Iout < Idownlim) * Idownlim;EasySolve内置多种常用数学函数及实用时间获取函数,可通过向括号内传入参数进行直接调用,支持的函数及其具体功能如下表所示。
| 函数 | 功能 |
|---|---|
| abs() | 求绝对值 |
| sqrt() | 求平方根 |
| exp() | 求以e为底的指数 |
| ln()、log10() | 求自然对数(以e为底)、求常用对数(以10为底) |
| sin()、cos()、tan() | 正弦函数、余弦函数、正切函数,单位为弧度 |
| asin()、acos()、atan() | 反正弦函数、反余弦函数、反正切函数 |
| sinh()、cosh()、tanh() | 双曲正弦函数、双曲余弦函数、双曲正切函数 |
| asinh()、acosh()、atanh() | 反双曲正弦函数、反双曲余弦函数、反双曲正切函数 |
| floor() | 向下取整,即取不大于传入参数的最大整数 |
| ceil() | 向上取整,即取不小于传入参数的最小整数 |
| round() | 将传入参数进行四舍五入 |
| signum() | 符号函数,指出参数正负号,若为正则返回1;零返回0;负返回-1 |
| atan2() | 计算方位角,弧度表示 |
| max()、min() | 求多个参数的最大值/最小值,参数用“,”分隔 |
数字表示约定
Section titled “数字表示约定”EasySolve支持的数学常数和数字表示约定如下表。
| 圆周率 | pi | |
| 自然常数 | e | |
| 科学计数法 | 1e-2 1E-3 | |
| 十六进制表示 | x123 _123 $123 |