数学建模:lingo软件学习心得

(以lingo11为例,记录自己学习lingo软件的一些我感到较难理解语句,可能有理解不对的地方)

一、

   首先以最简单的lingo程序为例

只要把上面的大括号去掉,然后输入界面即可

(先不管最后一项约束条件),运行程序即可求得答案。

但实际问题的决策变量,与约束条件可能有成百上千个,因此,我们需要找到一个更简便的方式来实现程序的编写。

二、

1.

比如遇到这个式子,我们肯定不能挨个写吧

于是我们可以这样定义,product是集合名(可以任取),1..100是定义的元素个数,此条语句可以类比,C语言中的 int x[100],int c[100],还要注意起始句和结束句是固定格式。这样定义虽然比c语言困难,但赋予了变量实际意义(本例代表产品),防止在大型程序中忘了字母是什么含义。

2.

然后还可以定义二维数组(见a)

 这样相当于a定义了6个元素(Ajia,Ayi,Bjia,Byi,Cjia,Cyi)(这个定义字母有重复,因为lingo 不区分大小写,推荐把a和b换一个没出现过的字母)

3.比较特殊的函数

(1)以最上面的那个没数字的例题为例,假设求max = c1*x1+c2*x2

max = c1*x1+c2*x2核心如下:

求和@sum肯定要有,product(j)代表了j在定义x的两个变量jia yi中遍历,就是两次.

(2)求约束条件:

由于没有lingo里没有for函数,故用@for,

对于这个式子

此处相当于有

a11x1 +a12x2= b1

a21x1+a22x2 = b2

相当于for(i=1;i<3;i++)

然后

 

相当于行内各个数相加

然后总的就是

 

 即可。

仅记录自己学习过程中的一些心得

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值