- 积分
- 0
- 注册时间
- 2007-11-4
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2007-11-4 11:04:06
|
显示全部楼层
来自 浙江台州
SCIE,您好!
我想在vc中调用matlab的线性规划的程序linprog求最优解,程序如下:
#include "stdafx.h"
#include "mex.h"
#include "matrix.h"
#include "matlab.hpp"
#include "fstream.h"
#include "linprog.hpp"
int main(int argc, char* argv[])
{
/*求解线性规划例子:
f=-5x[1]-4x[2]-6x[3];
x[1]- x[2]+ x[3]<=20;
3x[1]+2x[2]+4x[3]<=42;
3x[1]+2x[2] <=30;
x[1]>=0; x[2]>=0; x[3]>=0;
*/
double f_c[]={-5, -4, -6},
A_c[]={1, 3, 3,
-1, 2, 2,
1 , 4, 0},
b_c[]={20, 42, 30},
lb_c[]={1,1,1},
x_c[]={0,0,0};
mwArray * fval=NULL;
mwArray * exitflag=NULL;
mwArray * output=NULL;
mwArray * lambda=NULL;
mwArray f(3,1,f_c);
mwArray A(3,3,A_c);
mwArray B(3,1,b_c);
mwArray Aeq;
mwArray Beq;
mwArray lb(3,1,lb_c);
mwArray ub;
mwArray x0;
mwArray options;
fval=NULL;
exitflag=NULL;
output=NULL;
lambda=NULL;
//在这里输出linprog参数
x0=linprog(fval,exitflag,output,lambda,f,A,B,Aeq,Beq,lb);
//在这里要输出该问题的解
cout<<x0<<endl;
/*该问题的解在matlab输出为:
x =
0.0000
15.0000
3.0000
lambda.ineqlin =
0
1.5000
0.5000
lambda.lower =
1.0000
0
0 //*/
return 0;
}
/////////////////////////
程序complile 通过,但是link 出错。出错如下:
--------------------Configuration: mwArrayIO - Win32 Debug--------------------
Linking...
mwArrayIO.obj : error LNK2001: unresolved external symbol "class mwArray __cdecl linprog(class mwArray *,class mwArray *,class mwArray *,class mwArray *,class mwArray,class mwArray,class mwArray,class mwArray,class mwArray,class mwArray,class mwArra
y,class mwArray,class mwArray)" (?linprog@@YA?AVmwArray@@PAV1@000V1@11111111@Z)
Debug/mwArrayIO.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Creating browse info file...
mwArrayIO.exe - 2 error(s), 0 warning(s)
不知道为什么出错?上述输出linprog参数不知有没有问题?
急盼您或其他高手指点。 |
|