数学规划模型的matlab求解_第1页
数学规划模型的matlab求解_第2页
数学规划模型的matlab求解_第3页
数学规划模型的matlab求解_第4页
数学规划模型的matlab求解_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数学规划模型的数学规划模型的 matlab 求解求解 数学规划模型是优化模型的一种, 包括线性规划模型(目标函数和约束条件都是线性函数的优化问题); 非线 性规划模型(目标函数或者约束条件是非线性的函数); 整数规划(决策变量是整数值得规划问题); 多目标规 划(具有多个目标函数的规划问题) ;目标规划(具有不同优先级的目标和偏差的规划问题) 动态规划(求解 多阶段决策问题的最优化方法) 。数学规划模型相对比较好理解,关键是要能熟练地求出模型的解。 以下是解线性规划模型的方法: 1.线性规划问题 线性规划问题的标准形式为: min f *x sub.to:A*xb 其中 f、x、b、beq、lb、ub 为向量,A、Aeq 为矩阵。 MATLAB 中,线性规划问题(Linear Programming)的求解使用的是函数 linprog。 函数 linprog 格式 x = linprog(f,A,b) %求 min f *x sub.to A*x0 表示函数收敛于解 x,exitflag=0 表示超过函数估值或迭代的最大数字,exitflag0,表示函数收敛于 x,若 exitflag=0,表示超过函数估计值或迭代的最大数字, exitflag0 表示函数不收敛于 x;若参数 output=iterations 表示迭代次数,output=funccount 表示函数赋值 次数,output=algorithm 表示所使用的算法。 3.二次规划问题 函数 quadprog 格式 x = quadprog(H,f,A,b) %其中 H,f,A,b 为标准形中的参数,x 为目标函数的最小值。 x = quadprog(H,f,A,b,Aeq,beq) %Aeq,beq 满足等约束条件 。 x = quadprog(H,f,A,b,Aeq,beq,lb,ub) % lb,ub 分别为解 x 的下界与上界。 x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) %x0 为设置的初值 x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) % options 为指定的优化参数 x,fval = quadprog() %fval 为目标函数最优值 x,fval,exitflag = quadprog() % exitflag 与线性规划中参数意义相同 x,fval,exitflag,output = quadprog() % output 与线性规划中参数意义相同 x,fval,exitflag,output,lambda = quadprog() % lambda 与线性规划中参数意义相同 4.极小化极大(Minmax)问题 函数 fminimax 格式 x = fminimax(fun,x0) x = fminimax(fun,x0,A,b) x = fminimax(fun,x0,A,b,Aeq,beq) x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub) x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) x,fval,maxfval = fminimax() x,fval,maxfval,exitflag = fminimax() x,fval,maxfval,exitflag,output = fminimax() x,fval,maxfval,exitflag,output,lambda = fminimax() 5.多目标规划问题 函数 fgoalattain 格式 x = fgoalattain(fun,x0,goal,weight) x = fgoalattain(fun,x0,goal,weight,A,b) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options) x,fval = fgoalattain() x,fval,attainfactor = fgoalattain() x,fval,attainfactor,exitflag = fgoalattain() x,fval,attainfactor,exitflag,output = fgoalattain() x,fval,attainfactor,exitflag,output,lambda = fgoalattain() 6.最小二乘最优问题 有约束线性最小二乘 函数 lsqlin 格式 x = lsqlin(C,d,A,b) %求在约束条件 下,方程 Cx = d 的最小二乘解 x。 x = lsqlin(C,d,A,b,Aeq,beq) %Aeq、beq 满足等式约束 ,若没有不等式约束,则设 A= ,b= 。 x = lsqlin(C,d,A,b,Aeq,beq,lb,ub) %lb、ub 满足 ,若没有等式约束,则 Aeq= ,beq= 。 x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0) % x0 为初始解向量,若 x 没有界,则 lb= ,ub= 。 x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options) % options 为指定优化参数 x,resnorm = lsqlin() % resnorm=norm(C*x-d)2,即 2-范数。 x,resnorm,residual = lsqlin() %residual=C*x-d,即残差。 x,resnorm,residual,exitflag = lsqlin() %exitflag 为终止迭代的条件 x,resnorm,residual,exitflag,output = lsqlin() % output 表示输出优化信息 x,resnorm,residual,exitflag,output,lambda = lsqlin() % lambda 为解 x 的 Lagrange 乘子 非线性数据(曲线)拟合 函数 lsqcurvefit 格式 x = lsqcurvefit(fun,x0,xdata,ydata) x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub) x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options) x,resnorm = lsqcurvefit() x,resnorm,residual = lsqcurvefit() x,resnorm,residual,exitflag = lsqcurvefit() x,resnorm,residual,exitflag,output = lsqcurvefit() x,resnorm,residual,exitflag,output,lambda = lsqcurvefit() 非线性最小二乘 函数 lsqnonlin 格式 x = lsqnonlin(fun,x0) %x0 为初始解向量;fun 为 ,i=1,2,m,fun 返回向量值 F,而不是平方和值, 平方和隐含在算法中,fun 的定义与前面相同。 x = lsqnonlin(fun,x0,lb,ub)%lb、ub 定义 x 的下界和上界: 。 x = lsqnonlin(fun,x0,lb,ub,options) %options 为指定优化参数,若 x 没有界,则 lb= ,ub= 。 x,resnorm = lsqnonlin()% resnorm=sum(fun(x).2),即解 x 处目标函数值。 x,resnorm,residual = lsqnonlin() % residual=fun(x),即解 x 处 fun 的值。 x,resnorm,residual,exitflag = lsqnonlin()%exitflag 为终止迭代条件。 x,resnorm,residual,exitflag,output = lsqnonlin() %output 输出优化信息。 x,resnorm,residual,exitflag,output,lambda = lsqnonlin() %lambda 为 Lagrage 乘子。 x,resnorm,residual,exitflag,output,lambda,jacobian =lsqnonlin() %fun 在解 x 处的 Jacobian 矩。 非负线性最小二乘 函数 lsqnonneg 格式 x = lsqnonneg(C,d) %C 为实矩阵,d 为实向量 x = lsqnonneg(C,d,x0) % x0 为初始值且大于 0 x = lsqnonneg(C,d,x0,options) % options 为指定优化参数 x,resnorm = lsqnonneg() % resnorm=norm (C*x-d)2 x,resnorm,residual = lsqnonneg() %residual=C*x-d x,resnorm,residual,exitflag = lsqnonneg() x,resnorm,residual,exitflag,output = lsqnonneg() x,resnorm,residual,exitflag,output,lambda = lsqnonneg() 6.非线性方程(组)求解 非线性方程的解 函数 fzero 格式 x = fzero (fun,x0) %用 fun 定义表达式 f(x),x0 为初始解。 x = fzero (fun,x0,options) x,fval = fzero()%fval=f(x) x,fval,exitflag = fzero() x,fval,exitflag,output = fzero() 非线性方程组的解 函数 fsolve 格式 x = fsolve(fun,x0) %用 fun 定义向量函数,其定义方式为:先定义方程函数 function F = myfun (x)。 F =表达式 1;表达式 2;表达式 m %保存为 myfun.m,并用下面方式调用:x = f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论