求助:用C或C++或Matlab编一个以下的程序
- 提问者网友:山高云阔
- 2021-12-18 22:18
目标函数为才c1*x1+c2*x2+...+c(n)x(n)
约束条件 a11+a12+....+a1j=D(1)
a21+a22+...+a2j=D(2)
am1+am2+...+amj=D(m)
编程1.、确定所有可能的下料方式并计算相应边料长度 即通过嵌套循环穷举出原料个数a(ij)和c(j),将其存在数据文件中,把下料方式n作为决策变量的个数
2、从数据文件中读出a(ij)和c(j),生成目标函数
3、使用单纯形法求最优解
- 五星知识达人网友:第幾種人
- 2022-01-22 06:16
开头:
#include mex.h
库函数(4个参数)//名字忘了太长了
{
//自己的程序;
}
解释:
matiab 的核心有pascal 到c
有了了很大的改进;不仅支持c /java等
我只用着2个;其他没有用过;c++也支持;
自己查查函数手册;旧知道了
增加以下:哪个函数为MexFuction(4参数)
{
//自己的代码
}
- 1楼网友:第幾種人
- 2022-01-22 06:37
#include "stdio.h" #include "math.h" #include "equation.h" int newton_iterative(itep np, nlfp fp) { int l; double eps,y[2],d,p,x0,x1;
eps=np->eps; x0=np->x; nlf2(fp,x0,y); l=np->iter; d=eps+1.0; while ((d>=eps)&&(l>0)) { if (fabs(y[1])<0.0000001) { printf("error\n"); return(-1); } x1=x0-y[0]/y[1]; nlf2(fp,x1,y); d=fabs(x1-x0); p=fabs(y[0]); if (p>d) d=p; x0=x1; l--; } np->x=x1; return(np->iter - l); }
main() { double a[] = { -1.0, 0.0, -2.0, 1.0 }; nlf fa = { 3, a}; ite nit = { 50, 0.000001, 2.5 }; int k; if ((k=newton_iterative(&nit, &fa))>=0) printf("\nk=%d x=%13.7e\n", k, nit.x); printf("\n"); }