永发信息网

求助:用C或C++或Matlab编一个以下的程序

答案:2  悬赏:50  手机版
解决时间 2021-12-19 09:40
  • 提问者网友:山高云阔
  • 2021-12-18 22:18
一段长L的钢管切割成m种原料,有n种下料方式,设用第j种下料方式可以得到第i种原料个数是a(ij)(i=1,2,...m)(j=1,2,...n) ,所需这种原料是D(i),,边料为c(j)
目标函数为才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
这个用到库的问题(是matlab库)
开头:
#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"); }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯