VB调用lingo

VB调用lingo,第1张

这个我做过,不简单也不容易,举例说明,你按下面的去做一遍就知道怎么解决

你的问题

了。

在VB里面“工程”菜单下面添加“添加模块”,打开对话框,找到路径:X:\Program

Files\lingo80\Dll(X为驱动盘)下的“Lingd80.bas”,添加到VB中。

在VB

界面

上设计Text1和Text2、Command1。

编写

语句

:

Private

Sub

Command1_Click()

'------------------------

Dim

nError

As

Long

Dim

pLINGO

As

Long

Dim

nPointersNow

As

Long

Dim

cScript

As

String

Dim

Apppath

As

String

Dim

dStatus

As

Double

Apppath

=

"take"

&

Space(1)

&

Right(App.Path,

Len(App.Path)

-

2)

'------------------------

On

Error

GoTo

ERROREXIT

pLINGO

=

LScreateEnvLng()

'------------------------

Dim

x

As

Double,

y

As

Double

x

=

Text1.Text

'------------------------

nError

=

LSsetPointerLng(pLINGO,

x,

nPointersNow)

nError

=

LSsetPointerLng(pLINGO,

y,

nPointersNow)

'------------------------

On

Error

GoTo

ERROREXIT

nError

=

LSexecuteScriptLng(pLINGO,

cScript)

'------------------------

dStatus

=

-1#

nError

=

LSsetPointerLng(pLINGO,

dStatus,

nPointersNow)

'------------------------

cScript

=

"SET

ECHOIN

1"

&

Chr(10)

cScript

=

cScript

&

Apppath

&

"\LINGO1.lng"

&

Chr(10)

cScript

=

cScript

&

"GO"

&

Chr(10)

cScript

=

cScript

&

"QUIT"

&

Chr(10)

cScript

=

cScript

&

Chr(0)

On

Error

GoTo

ERROREXIT

nError

=

LSexecuteScriptLng(pLINGO,

cScript)

'------------------------

LScloseLogFileLng

(pLINGO)

LSdeleteEnvLng

(pLINGO)

'------------------------

Text2.Text

=

y

ERROREXIT:

End

Sub

然后再用lingo8.0编写

代码

(命名为LINGO1.lng,注意要保存为.lng文件):

model:

data:

x=@pointer(1)

enddata

y=x*2

data:

@pointer(2)=y

enddata

end

将.lng文件和VB代码放同一

文件夹

,即可运行VB控制Lingo的输入(本程序是由VB的Text1输入x,由lingo完成y=2x计算,计算结果返回到VB中Text2)。

运行用法如下:

1、根据实际问题,建立数学模型,即使用数学建模的方法建立优化模型。

2、根据优化模型,利用LINGO 来求解模型。主要是根据LINGO软件,把数学模型转译成计算机语言,借助于计算机来求解。

在利用LINGO 求解线性规划时,如自变量都为非负的话,在LINGO 中输入的信息和模型基本相同;如自变量为自由变量,可以使用函数 @free来把系统默认的非负变量定义自由变量,如实例一中的 x3。

Lingo的特点:

Lingo中变量不区分大小写,以字母开头不超过32个字符;算术运算符是针对数值进行 *** 作的;LINGO提供了5种二元运算符:^乘方 ﹡乘 /除 ﹢加 ﹣减;LINGO唯一的一元算术运算符是取反函数“﹣”。

LINGO拥有一整套快速的,内建的求解器用来求解线性的,非线性的(球面&;非球面的),二次的,二次约束的,和整数优化问题。甚至不需要指定或启动特定的求解器,因为LINGO会读取您的方程式并自动选择合适的求解器。

用matlab打开其他程序, 这一句 !E:\FLUIDDYNAMICS\GA MBIT\Fluent.Inc\ntbin\ntx86\gambit,这是路径。我还找到了 一个类似的,可以执行,打开程序后继续执行journal文件, !E:\FLUIDDYNAMICS\FLUENT\Fluent.Inc\ntbin\ntx86\fluent 2ddp -i journal。你按照你的lingo路径写就可以了。不会找我


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11778202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存